diff options
author | Andi Kleen <ak@linux.intel.com> | 2014-03-17 05:48:28 -0700 |
---|---|---|
committer | Andi Kleen <ak@linux.intel.com> | 2014-06-13 12:49:03 -0700 |
commit | a832bdd36203fcb37fa5ad25200ef3c1ae205efe (patch) | |
tree | 045064e8ee765c267caab8a76a0a014c39acb787 /sysdeps/unix/sysv/linux/x86/elision-conf.c | |
parent | 995a46bbfba9964e328e3947130919d8bd3cd62a (diff) | |
download | glibc-a832bdd36203fcb37fa5ad25200ef3c1ae205efe.zip glibc-a832bdd36203fcb37fa5ad25200ef3c1ae205efe.tar.gz glibc-a832bdd36203fcb37fa5ad25200ef3c1ae205efe.tar.bz2 |
Add a fast path for C rd/wrlock v2
One difference of the C versions to the assembler wr/rdlock
is that the C compiler saves some registers which are unnecessary
for the fast path in the prologue of the functions. Split the
uncontended fast path out into a separate function. Only when contention is
detected is the full featured function called. This makes
the fast path code (nearly) identical to the assembler version,
and gives uncontended performance within a few cycles.
v2: Rename some functions and add space.
Diffstat (limited to 'sysdeps/unix/sysv/linux/x86/elision-conf.c')
0 files changed, 0 insertions, 0 deletions