glibc/sysdeps/unix
Adhemerval Zanella 342298278e linux: Revert the use of sched_getaffinity on get_nproc (BZ #28310)
The use of sched_getaffinity on get_nproc and
sysconf (_SC_NPROCESSORS_ONLN) done in 903bc7dcc2 (BZ #27645)
breaks the top command in common hypervisor configurations and also
other monitoring tools.

The main issue using sched_getaffinity changed the symbols semantic
from system-wide scope of online CPUs to per-process one (which can
be changed with kernel cpusets or book parameters in VM).

This patch reverts mostly of the 903bc7dcc2, with the
exceptions:

  * No more cached values and atomic updates, since they are inherent
    racy.

  * No /proc/cpuinfo fallback, since /proc/stat is already used and
    it would require to revert more arch-specific code.

  * The alloca is replace with a static buffer of 1024 bytes.

So the implementation first consult the sysfs, and fallbacks to procfs.

Checked on x86_64-linux-gnu.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
2021-09-27 09:18:43 -03:00
..
alpha Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
arm Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
bsd Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
i386 Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
inet
mips Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
powerpc Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sh Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
sysv/linux linux: Revert the use of sched_getaffinity on get_nproc (BZ #28310) 2021-09-27 09:18:43 -03:00
x86_64 Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
getlogin_r.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
getlogin.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
getpagesize.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
grantpt.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
ifreq.c Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
Implies
make-syscalls.sh
Makefile Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
s-proto-cancel.S
s-proto.S
setxid.h
sockatmark.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
syscall-template.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
syscall.S Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
syscalls.list misc: Add time64 alias for ioctl 2021-07-21 11:58:09 +02:00
sysdep.h Linux: Explicitly disable cancellation checking in the dynamic loader 2021-05-10 10:31:41 +02:00