[v2,0/3] Revert the use of sched_getaffinity on get_nproc

Message ID 20210907122259.79800-1-adhemerval.zanella@linaro.org
Headers
Series Revert the use of sched_getaffinity on get_nproc |

Message

Adhemerval Zanella Sept. 7, 2021, 12:22 p.m. UTC
  The use of sched_getaffinity on get_nproc and
sysconf (_SC_NPROCESSORS_ONLN) done in 903bc7dcc2acafc40 (BZ #27645)
breaks the top command in common hypervisor configurations and also
other monitoring tools.

This patchset revert to previous strategy to obtain the system-wide
information first from sysfs, and then on procfs as a fallback.

The sched_getaffinity is still used on malloc code since it makes more
sense to get the per-process value to tune the maximum arena value.

---
Changes in v2:
 - Added tst-sched_getaffinity.c
 - Use enum for cpu_bits_size
 - Comments cleanup

Adhemerval Zanella (3):
  misc: Add __get_nprocs_sched
  linux: Simplify get_nprocs
  linux: Revert the use of sched_getaffinity on get_nproc (BZ #28310)

 include/sys/sysinfo.h                 |   7 +-
 malloc/arena.c                        |   2 +-
 misc/getsysstats.c                    |   6 +
 posix/Makefile                        |   3 +-
 posix/tst-sched_getaffinity.c         |  47 +++++++
 sysdeps/mach/getsysstats.c            |   6 +
 sysdeps/unix/sysv/linux/getsysstats.c | 195 ++++++++++++++++++++------
 7 files changed, 217 insertions(+), 49 deletions(-)
 create mode 100644 posix/tst-sched_getaffinity.c