git: libc - Add poor man's cache coloring optimization to nmalloc module.
dillon at crater.dragonflybsd.org
Fri Jan 4 14:29:18 PST 2013
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Fri Jan 4 14:24:12 2013 -0800
libc - Add poor man's cache coloring optimization to nmalloc module.
* A series of large allocations in excess of 32KB will be offset by 4K from
each other. This fixes performance issues on SandyBridge and later cpus
related to large matrix operations.
This eats an extra 4K of VM for such allocations but does not eat any
additional real memory.
* Greatly improves large FP matrix benchmarks. Real-world effects are more
* The Sandybridge and later cpus use a virtually indexed, physically tagged
L1 cache, and tend to be sensitive to substantially different memory
addresses winding up on the same cache line. Matrix operations (primarily
benchmarks) can cause these sorts of effects.
Summary of changes:
lib/libc/stdlib/nmalloc.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
DragonFly BSD source repository
More information about the Commits