From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-commits+bounces-994103-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by finch.gentoo.org (Postfix) with ESMTPS id 189041381F3
	for <garchives@archives.gentoo.org>; Sat, 30 Dec 2017 22:43:54 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 2D89AE08C3;
	Sat, 30 Dec 2017 22:43:53 +0000 (UTC)
Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id F1CC5E08C3
	for <gentoo-commits@lists.gentoo.org>; Sat, 30 Dec 2017 22:43:52 +0000 (UTC)
Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52])
	(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id 48AEC335C2F
	for <gentoo-commits@lists.gentoo.org>; Sat, 30 Dec 2017 22:43:49 +0000 (UTC)
Received: from localhost.localdomain (localhost [IPv6:::1])
	by oystercatcher.gentoo.org (Postfix) with ESMTP id 97706A8
	for <gentoo-commits@lists.gentoo.org>; Sat, 30 Dec 2017 22:43:47 +0000 (UTC)
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: 8bit
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" <mgorny@gentoo.org>
Message-ID: <1514673819.635af6abf583f1e17860c0eb72cfe74b474bdfdf.mgorny@gentoo>
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/libomp/
X-VCS-Repository: repo/gentoo
X-VCS-Files: sys-libs/libomp/libomp-4.0.1.ebuild sys-libs/libomp/libomp-5.0.0.ebuild sys-libs/libomp/libomp-5.0.1.ebuild sys-libs/libomp/libomp-9999.ebuild
X-VCS-Directories: sys-libs/libomp/
X-VCS-Committer: mgorny
X-VCS-Committer-Name: Michał Górny
X-VCS-Revision: 635af6abf583f1e17860c0eb72cfe74b474bdfdf
X-VCS-Branch: master
Date: Sat, 30 Dec 2017 22:43:47 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
X-Archives-Salt: f4d85353-b1db-4dd4-ac08-b63163dc7445
X-Archives-Hash: 555c9c4ec1649a002dbe8f67648afbc1

commit:     635af6abf583f1e17860c0eb72cfe74b474bdfdf
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 30 22:30:29 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 30 22:43:39 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=635af6ab

sys-libs/libomp: Disallow kernels with PDU scheduler

The PDU scheduler (used e.g. in current versions of -pf kernel) does not
implement the sched_yield() call which is used by the OpenMP
implementation to switch between threads. As a result, using OpenMP with
this scheduler results in horrible performance with 100% CPU usage
on looped noop syscall calls.

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

 sys-libs/libomp/libomp-4.0.1.ebuild | 13 ++++++++++---
 sys-libs/libomp/libomp-5.0.0.ebuild | 13 ++++++++++---
 sys-libs/libomp/libomp-5.0.1.ebuild | 13 ++++++++++---
 sys-libs/libomp/libomp-9999.ebuild  | 13 ++++++++++---
 4 files changed, 40 insertions(+), 12 deletions(-)

diff --git a/sys-libs/libomp/libomp-4.0.1.ebuild b/sys-libs/libomp/libomp-4.0.1.ebuild
index 2eed580030c..299e49921e1 100644
--- a/sys-libs/libomp/libomp-4.0.1.ebuild
+++ b/sys-libs/libomp/libomp-4.0.1.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib python-any-r1
+inherit cmake-multilib linux-info python-any-r1
 
 DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
 HOMEPAGE="https://openmp.llvm.org"
@@ -22,8 +22,7 @@ LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant"
 SLOT="0"
 KEYWORDS="amd64 ~arm64 x86"
 IUSE="hwloc ompt test"
-# Restrict tests to avoid hanging, https://bugs.gentoo.org/638410
-RESTRICT="test"
+RESTRICT="!test? ( test )"
 
 RDEPEND="hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )"
 # tests:
@@ -43,11 +42,19 @@ S=${WORKDIR}/openmp-${PV/_/}.src
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+CONFIG_CHECK="~!SCHED_PDS"
+ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
+pkg_pretend() {
+	linux-info_pkg_setup
+}
+
 pkg_setup() {
+	linux-info_pkg_setup
 	use test && python-any-r1_pkg_setup
 }
 

diff --git a/sys-libs/libomp/libomp-5.0.0.ebuild b/sys-libs/libomp/libomp-5.0.0.ebuild
index f90baa29e66..87c3bfe493f 100644
--- a/sys-libs/libomp/libomp-5.0.0.ebuild
+++ b/sys-libs/libomp/libomp-5.0.0.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib python-any-r1
+inherit cmake-multilib linux-info python-any-r1
 
 DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
 HOMEPAGE="https://openmp.llvm.org"
@@ -22,8 +22,7 @@ LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="hwloc ompt test"
-# Restrict tests to avoid hanging, https://bugs.gentoo.org/638410
-RESTRICT="test"
+RESTRICT="!test? ( test )"
 
 RDEPEND="hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )"
 # tests:
@@ -43,11 +42,19 @@ S=${WORKDIR}/openmp-${PV/_/}.src
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+CONFIG_CHECK="~!SCHED_PDS"
+ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
+pkg_pretend() {
+	linux-info_pkg_setup
+}
+
 pkg_setup() {
+	linux-info_pkg_setup
 	use test && python-any-r1_pkg_setup
 }
 

diff --git a/sys-libs/libomp/libomp-5.0.1.ebuild b/sys-libs/libomp/libomp-5.0.1.ebuild
index f90baa29e66..87c3bfe493f 100644
--- a/sys-libs/libomp/libomp-5.0.1.ebuild
+++ b/sys-libs/libomp/libomp-5.0.1.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib python-any-r1
+inherit cmake-multilib linux-info python-any-r1
 
 DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
 HOMEPAGE="https://openmp.llvm.org"
@@ -22,8 +22,7 @@ LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant"
 SLOT="0"
 KEYWORDS="~amd64 ~arm64 ~x86"
 IUSE="hwloc ompt test"
-# Restrict tests to avoid hanging, https://bugs.gentoo.org/638410
-RESTRICT="test"
+RESTRICT="!test? ( test )"
 
 RDEPEND="hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )"
 # tests:
@@ -43,11 +42,19 @@ S=${WORKDIR}/openmp-${PV/_/}.src
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+CONFIG_CHECK="~!SCHED_PDS"
+ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
+pkg_pretend() {
+	linux-info_pkg_setup
+}
+
 pkg_setup() {
+	linux-info_pkg_setup
 	use test && python-any-r1_pkg_setup
 }
 

diff --git a/sys-libs/libomp/libomp-9999.ebuild b/sys-libs/libomp/libomp-9999.ebuild
index 6b0c0b5b801..4d590521516 100644
--- a/sys-libs/libomp/libomp-9999.ebuild
+++ b/sys-libs/libomp/libomp-9999.ebuild
@@ -8,7 +8,7 @@ EAPI=6
 CMAKE_MIN_VERSION=3.7.0-r1
 PYTHON_COMPAT=( python2_7 )
 
-inherit cmake-multilib git-r3 python-any-r1
+inherit cmake-multilib git-r3 linux-info python-any-r1
 
 DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
 HOMEPAGE="https://openmp.llvm.org"
@@ -24,8 +24,7 @@ LICENSE="|| ( UoI-NCSA MIT ) MIT LLVM-Grant"
 SLOT="0"
 KEYWORDS=""
 IUSE="hwloc ompt test"
-# Restrict tests to avoid hanging, https://bugs.gentoo.org/638410
-RESTRICT="test !test? ( test )"
+RESTRICT="!test? ( test )"
 
 RDEPEND="hwloc? ( sys-apps/hwloc:0=[${MULTILIB_USEDEP}] )"
 # tests:
@@ -43,11 +42,19 @@ DEPEND="${RDEPEND}
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+CONFIG_CHECK="~!SCHED_PDS"
+ERROR_SCHED_PDS="PDS scheduler is not supported as it does not implement sched_yield()"
+
 python_check_deps() {
 	has_version "dev-python/lit[${PYTHON_USEDEP}]"
 }
 
+pkg_pretend() {
+	linux-info_pkg_setup
+}
+
 pkg_setup() {
+	linux-info_pkg_setup
 	use test && python-any-r1_pkg_setup
 }