summaryrefslogtreecommitdiffstats
path: root/meta/classes/sstate.bbclass
diff options
context:
space:
mode:
authorJose Quaresma <quaresma.jose@gmail.com>2021-08-18 21:29:53 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-20 08:53:03 +0100
commitc5db14b395ee5dc55baae5e84166ccfcdc1ef083 (patch)
treefc01a214a8d431cae044b3d840d709dddafa3265 /meta/classes/sstate.bbclass
parent9986923d05f87101a56f85c9a27258fd82d8b1ef (diff)
downloadpoky-c5db14b395ee5dc55baae5e84166ccfcdc1ef083.tar.gz
sstate.bbclass: get the number of threads from BB_NUMBER_THREADS
- bitbake BB_NUMBER_THREADS uses cpu_count from oe utils that uses the python os.sched_getaffinity and it is more acurrate. grep -nH ^BB_NUMBER_THREADS meta/conf/bitbake.conf meta/conf/bitbake.conf:806:BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}" - multiprocessing.cpu_count() returns the number of CPUs on the host, not the number of usable CPUs on the host. If the user is using scheduler affinity then the number of usable CPUs may be less, so when determining how many cores we can use check the affinity instead. (From OE-Core rev: 45c52f08a289c6eb2329de50634a0406204d1d8e) Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/sstate.bbclass')
-rw-r--r--meta/classes/sstate.bbclass5
1 files changed, 2 insertions, 3 deletions
diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
index 2175ace4c4..d7f1b3f26e 100644
--- a/meta/classes/sstate.bbclass
+++ b/meta/classes/sstate.bbclass
@@ -971,13 +971,12 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True,
971 tasklist.append((tid, sstatefile)) 971 tasklist.append((tid, sstatefile))
972 972
973 if tasklist: 973 if tasklist:
974 nproc = min(int(d.getVar("BB_NUMBER_THREADS")), len(tasklist))
975
974 if len(tasklist) >= min_tasks: 976 if len(tasklist) >= min_tasks:
975 msg = "Checking sstate mirror object availability" 977 msg = "Checking sstate mirror object availability"
976 bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), d) 978 bb.event.fire(bb.event.ProcessStarted(msg, len(tasklist)), d)
977 979
978 import multiprocessing
979 nproc = min(multiprocessing.cpu_count(), len(tasklist))
980
981 bb.event.enable_threadlock() 980 bb.event.enable_threadlock()
982 pool = oe.utils.ThreadedPool(nproc, len(tasklist), 981 pool = oe.utils.ThreadedPool(nproc, len(tasklist),
983 worker_init=checkstatus_init, worker_end=checkstatus_end) 982 worker_init=checkstatus_init, worker_end=checkstatus_end)