Bug 1244585

Summary: Reduce lock contention in __tz_convert()
Product: Red Hat Enterprise Linux 6 Reporter: Rogan Kyuseok Lee <kyulee>
Component: glibcAssignee: Marek Polacek <mpolacek>
Status: CLOSED ERRATA QA Contact: Arjun Shankar <ashankar>
Severity: medium Docs Contact: Lenka Špačková <lkuprova>
Priority: unspecified    
Version: 6.6CC: ashankar, codonell, fweimer, jhan, mnewsome, mpolacek, pfrankli
Target Milestone: rcKeywords: Patch
Target Release: ---   
Hardware: All   
OS: Linux   
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.
Story Points: ---
Clone Of:
: 1322539 (view as bug list) Environment:
Last Closed: 2016-05-10 21:27:23 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1172231, 1271375, 1322539    

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.