This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
The intention of this series is to improve the performance of ARM atomics and hence malloc. The first patch adds a malloc microbenchmark which is pretty much the same code that I posted earlier in the year but with the support for multiple threads taken out. The threaded aspect of the benchmark appeared to be an area of contention so hopefully this makes things simpler. The second patch widens the range of supported atomic operations in the ARM port which improves the generated code sequences for things like atomic add, or and and. The third patch which can be considered really more of an RFC implements the single-threaded atomic optimization similarly to the implementation for Power that was posted back in August. There is a small performance gain at the cost of some complexity so I wonder whether this optimization is really worth it, I would be interested in people's opinions on that. The resulting atomic.h is hopefully somewhere close to a generic implementation based on the gcc intrinsics so could potentially be used as a base for a generic header. Will Newton (3): benchtests: Add malloc microbenchmark sysdeps/arm/bits/atomic.h: Add a wider range of atomic operations sysdeps/arm/bits/atomic.h: Use relaxed atomics for catomic_* benchtests/Makefile | 2 +- benchtests/bench-malloc.c | 219 ++++++++++++++++++++++++++++++++++++++++ sysdeps/arm/bits/atomic.h | 248 +++++++++++++++++++++++++++++++++++++--------- 3 files changed, 420 insertions(+), 49 deletions(-) create mode 100644 benchtests/bench-malloc.c -- 1.9.3
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |