8120f5e2 | 04-Jan-2013 |
Matthew Dillon <dillon@apollo.backplane.com> |
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 Sandy
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 questionable.
* 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.
Reported-by: alexh
show more ...
|
20b2da2c | 25-May-2012 |
Venkatesh Srinivas <me@endeavour.zapto.org> |
libc -- dmalloc: Call malloc_init as-needed, rather than via ctor (#2)
This commit is a second revision of e12d3396c777165504d60d2a1408dcd7cb63660d; for details, see the original commit message.
Th
libc -- dmalloc: Call malloc_init as-needed, rather than via ctor (#2)
This commit is a second revision of e12d3396c777165504d60d2a1408dcd7cb63660d; for details, see the original commit message.
That commit was reverted quickly, as it broke pthreads; this revision does not suffer from that problem, as it preserves the __constructor logic for malloc_init.
Reverts: 4018c6eddd57f4abf9134690cbfa46c9d7103558 (Revert libc ...) Reported-by: marino@ Closes-bug: 2305
show more ...
|