]> sourceware.org Git - glibc.git/commit
linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865]
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 5 Feb 2022 08:00:00 +0000 (08:00 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 7 Feb 2022 20:18:29 +0000 (20:18 +0000)
commite1d32b836410767270a3adf1f82b1a47e6e4cd51
tree25c2462f83936cba66bec85fb38a398eed5a003b
parent1b0c60f95bbe2eded80b2bb5be75c0e45b11cde1
linux: fix accuracy of get_nprocs and get_nprocs_conf [BZ #28865]

get_nprocs() and get_nprocs_conf() use various methods to obtain an
accurate number of processors.  Re-introduce __get_nprocs_sched() as
a source of information, and fix the order in which these methods are
used to return the most accurate information.  The primary source of
information used in both functions remains unchanged.

This also changes __get_nprocs_sched() error return value from 2 to 0,
but all its users are already prepared to handle that.

Old fallback order:
  get_nprocs:
    /sys/devices/system/cpu/online -> /proc/stat -> 2
  get_nprocs_conf:
    /sys/devices/system/cpu/ -> /proc/stat -> 2

New fallback order:
  get_nprocs:
    /sys/devices/system/cpu/online -> /proc/stat -> sched_getaffinity -> 2
  get_nprocs_conf:
    /sys/devices/system/cpu/ -> /proc/stat -> sched_getaffinity -> 2

Fixes: 342298278e ("linux: Revert the use of sched_getaffinity on get_nproc")
Closes: BZ #28865
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
sysdeps/unix/sysv/linux/getsysstats.c
This page took 0.037283 seconds and 5 git commands to generate.