From a4d33e643f3aa8cb5cf8b0555328e846e4f6f9de Mon Sep 17 00:00:00 2001 From: =?utf8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 18 Jan 2018 22:23:13 +0100 Subject: [PATCH] sys-libs/libomp: List broken PDS scheduler versions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 | 5 ++++- sys-libs/libomp/libomp-5.0.1.ebuild | 5 ++++- sys-libs/libomp/libomp-6.0.9999.ebuild | 5 ++++- sys-libs/libomp/libomp-9999.ebuild | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/sys-libs/libomp/libomp-4.0.1.ebuild b/sys-libs/libomp/libomp-4.0.1.ebuild index 299e49921e10..920d364c8a85 100644 --- a/sys-libs/libomp/libomp-4.0.1.ebuild +++ b/sys-libs/libomp/libomp-4.0.1.ebuild @@ -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}]" diff --git a/sys-libs/libomp/libomp-5.0.1.ebuild b/sys-libs/libomp/libomp-5.0.1.ebuild index e53670dab6d4..9075688c9e49 100644 --- a/sys-libs/libomp/libomp-5.0.1.ebuild +++ b/sys-libs/libomp/libomp-5.0.1.ebuild @@ -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}]" diff --git a/sys-libs/libomp/libomp-6.0.9999.ebuild b/sys-libs/libomp/libomp-6.0.9999.ebuild index 461064323a15..5e156aca296c 100644 --- a/sys-libs/libomp/libomp-6.0.9999.ebuild +++ b/sys-libs/libomp/libomp-6.0.9999.ebuild @@ -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}]" diff --git a/sys-libs/libomp/libomp-9999.ebuild b/sys-libs/libomp/libomp-9999.ebuild index 630a7bf4f050..ad6d62ae7449 100644 --- a/sys-libs/libomp/libomp-9999.ebuild +++ b/sys-libs/libomp/libomp-9999.ebuild @@ -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}]" -- 2.26.2