Bug 1244585 - Reduce lock contention in __tz_convert()
Summary: Reduce lock contention in __tz_convert()
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: glibc
Version: 6.6
Hardware: All
OS: Linux
Target Milestone: rc
: ---
Assignee: Marek Polacek
QA Contact: Arjun Shankar
Lenka Špačková
Depends On:
Blocks: 1172231 1271375 1322539
TreeView+ depends on / blocked
Reported: 2015-07-20 05:02 UTC by Rogan Kyuseok Lee
Modified: 2019-10-10 09:58 UTC (History)
7 users (show)

Fixed In Version: glibc-2.12-1.174.el6
Doc Type: Release Note
Doc Text:
Reduced lock contention and increased performance for threaded applications calling localtime_r() Lock contention in the localtime_r() function previously decreased performance for threaded applications that needed to call this function frequently. The lock acquisition in the *glibc* library's internal routines has been reorganized to decrease the possibility of lock contention.
Clone Of:
: 1322539 (view as bug list)
Last Closed: 2016-05-10 21:27:23 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2016:0834 0 normal SHIPPED_LIVE glibc bug fix update 2016-05-10 22:41:39 UTC
Sourceware 16145 0 P2 NEW localtime_r etc holds lock via __tz_convert 2020-05-18 03:37:21 UTC

Description Rogan Kyuseok Lee 2015-07-20 05:02:45 UTC
Description of problem:

Customer has found a possible lock contention on glibc's localtime_r() and asked to backport it. All RHEL variables from 4 to 7 don't have this fix.

"This patch is an "easy win" partial fix for BZ #16145, which notes
the heavy contention on tzset_lock when multiple threads are converting
times with localtime_r().

In __tz_convert(), the lock does not need to be held after
__tzfile_compute() / __tz_compute() have been called, so we can move the
unlock up.  At this point there is still significant work to be done in
__offtime(), so we see some improvement (in my testing with 8 cores
banging on localtime_r(), ~20% improvement in throughput)."
-- https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6807b1db8233ed84671f061b5d825622233df303

Version-Release number of selected component (if applicable):
- glibc-2.12-1.149.el6

How reproducible:
- 100% 

Steps to Reproduce:
1. No sure at this moment 

Actual results:
- No fix 

Expected results:
- Apply the upstream fix 

Additional info:

Comment 14 errata-xmlrpc 2016-05-10 21:27:23 UTC
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.