Bug 952422 - sysconf(_SC_NPROCESSORS_ONLN) performance problem
sysconf(_SC_NPROCESSORS_ONLN) performance problem
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: glibc (Show other bugs)
All Linux
high Severity high
: rc
: ---
Assigned To: Siddhesh Poyarekar
Arjun Shankar
: Patch
Depends On:
  Show dependency treegraph
Reported: 2013-04-15 19:19 EDT by Jacob Hunt
Modified: 2016-11-24 07:14 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
This update improves performance of repeated calls of the sysconf function for getting values of _SC_NPROCESSORS_ONLN by caching the value for approximately a second. This could improve performance of some applications that use QReadWriteLocks in the Qt library or any other functionality that involves repeatedly getting the value for _SC_NPROCESSORS_ONLN.
Story Points: ---
Clone Of:
Last Closed: 2013-11-21 05:45:08 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Candidate fix (3.04 KB, patch)
2013-05-29 02:01 EDT, Siddhesh Poyarekar
no flags Details | Diff

  None (edit)
Description Jacob Hunt 2013-04-15 19:19:45 EDT
Description of problem:

We have an application that has a lot of threads and uses QReadWriteLocks to protect data that the threads are accessing. When our server is heavily loaded, the application spends about 60% of it's time in system time as opposed to user time. Further investigation showed that the QMutex class is calling sysconf(_SC_NPROCESSORS_ONLN) for each thread that tries to get a lock where that lock is already locked. Thus most of that system time is spent in this system call.

Version-Release number of selected component (if applicable):

Additional info:
This has been discussed upstream: 
Comment 11 Siddhesh Poyarekar 2013-05-29 02:01:42 EDT
Created attachment 754181 [details]
Candidate fix
Comment 14 errata-xmlrpc 2013-11-21 05:45:08 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.