|
Message-ID: <20141130113846.GC9258@port70.net> Date: Sun, 30 Nov 2014 12:38:46 +0100 From: Szabolcs Nagy <nsz@...t70.net> To: musl@...ts.openwall.com Subject: Re: __sched_cpucount returns garbage * Isaac Dunham <ibid.ag@...il.com> [2014-11-29 15:36:33 -0800]: > I noticed that nproc ended up on the toybox TODO list (via Tizen), and went > poking about via strace and ltrace to see where it got the cpu count from. > > In the process, I discovered that __sched_cpucount is returning garbage; works here as expected: #define _GNU_SOURCE #include <sched.h> int main() { cpu_set_t s = {0}; CPU_SET(3, &s); CPU_SET(7, &s); CPU_SET(24, &s); return __sched_cpucount(sizeof s, &s); } returns 3 > on Alpine Linux on my N270-based netbook (1 physical core but > hyperthreading makes it look like 2), > nproc > outputs a random number of CPUs ranging from 413 to 472. see where the cpu_set_t argument comes from (most likely sched_getaffinity syscall) then see why that is broken __sched_cpucount just counts bit flags > ltrace indicates that this is calling __sched_cpucount() and printing > its return value. > > nproc --all > calls sysconf(_SC_NPROCESSORS_CONF) and gets the proper number of CPUs. > > Thanks, > Isaac Dunham
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.