From a029bfe96c6542f178720c72a772b7ede9898118 Mon Sep 17 00:00:00 2001 From: Felix Moessbauer Date: Wed, 13 Mar 2024 11:06:45 +0100 Subject: utils: better estimate number of available cpus When running in a cgroup which is limited to a subset of cpus (via cpuset.cpus), cpu_count() should return the number of cpus that can be used instead of the number of cpus the system has. This also aligns the semantics with nproc. Signed-off-by: Felix Moessbauer Signed-off-by: Richard Purdie --- lib/bb/utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/bb/utils.py b/lib/bb/utils.py index ad13d0433..ebee65d3d 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -1142,7 +1142,10 @@ def get_referenced_vars(start_expr, d): def cpu_count(): - return multiprocessing.cpu_count() + try: + return len(os.sched_getaffinity(0)) + except OSError: + return multiprocessing.cpu_count() def nonblockingfd(fd): fcntl.fcntl(fd, fcntl.F_SETFL, fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK) -- cgit 1.2.3-korg