sys-libs/libomp: List broken PDS scheduler versions
authorMichał Górny <mgorny@gentoo.org>
Thu, 18 Jan 2018 21:23:13 +0000 (22:23 +0100)
committerMichał Górny <mgorny@gentoo.org>
Thu, 18 Jan 2018 21:25:17 +0000 (22:25 +0100)
The sched_yield() call has been reintroduced in PDS 0.98i. Improve
the kernel check to explicitly list which PDS versions are affected,
and which -pf kernels are affected (sadly, no fixed version yet).
Big thanks to Holger Hoffstätte for convincing upstream to fix this
and all the research!

Bug: https://bugs.gentoo.org/638410

sys-libs/libomp/libomp-4.0.1.ebuild
sys-libs/libomp/libomp-5.0.1.ebuild
sys-libs/libomp/libomp-6.0.9999.ebuild
sys-libs/libomp/libomp-9999.ebuild

index 299e49921e10a0bd1bf77cbbabc2d3ddb26c3e5a..920d364c8a859f9cb4bdf52b6ed232973c9fbfb2 100644 (file)
@@ -43,7 +43,10 @@ S=${WORKDIR}/openmp-${PV/_/}.src
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
 CONFIG_CHECK="~!SCHED_PDS"
-ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+ERROR_SCHED_PDS="PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels
+>= 4.13-pf11, no fixed release yet) do not implement sched_yield() call which
+may result in horrible performance problems with libomp. If you are using one
+of the specified kernel versions, you may want to disable the PDS scheduler."
 
 python_check_deps() {
        has_version "dev-python/lit[${PYTHON_USEDEP}]"
index e53670dab6d49953a81f261940e2946c167bf213..9075688c9e49730bf6bdbaf1732173df6b15d8eb 100644 (file)
@@ -43,7 +43,10 @@ S=${WORKDIR}/openmp-${PV/_/}.src
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
 CONFIG_CHECK="~!SCHED_PDS"
-ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+ERROR_SCHED_PDS="PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels
+>= 4.13-pf11, no fixed release yet) do not implement sched_yield() call which
+may result in horrible performance problems with libomp. If you are using one
+of the specified kernel versions, you may want to disable the PDS scheduler."
 
 python_check_deps() {
        has_version "dev-python/lit[${PYTHON_USEDEP}]"
index 461064323a1513638aa393670e635325c1588dcd..5e156aca296c16a2097d4da231d6ba369094af8d 100644 (file)
@@ -44,7 +44,10 @@ DEPEND="${RDEPEND}
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
 CONFIG_CHECK="~!SCHED_PDS"
-ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+ERROR_SCHED_PDS="PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels
+>= 4.13-pf11, no fixed release yet) do not implement sched_yield() call which
+may result in horrible performance problems with libomp. If you are using one
+of the specified kernel versions, you may want to disable the PDS scheduler."
 
 python_check_deps() {
        has_version "dev-python/lit[${PYTHON_USEDEP}]"
index 630a7bf4f0501c659bf563b621bd8eb0bff156d1..ad6d62ae7449c91e921306274cc54a44ad13294e 100644 (file)
@@ -43,7 +43,10 @@ DEPEND="${RDEPEND}
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
 CONFIG_CHECK="~!SCHED_PDS"
-ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+ERROR_SCHED_PDS="PDS scheduler versions >= 0.98c < 0.98i (e.g. used in kernels
+>= 4.13-pf11, no fixed release yet) do not implement sched_yield() call which
+may result in horrible performance problems with libomp. If you are using one
+of the specified kernel versions, you may want to disable the PDS scheduler."
 
 python_check_deps() {
        has_version "dev-python/lit[${PYTHON_USEDEP}]"