mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-08-25 00:23:33 +03:00
PA: move in shard initialization.
This commit is contained in:
parent
a24faed569
commit
8433ad84ea
3 changed files with 37 additions and 26 deletions
33
src/pa.c
33
src/pa.c
|
|
@ -1,2 +1,35 @@
|
|||
#include "jemalloc/internal/jemalloc_preamble.h"
|
||||
#include "jemalloc/internal/jemalloc_internal_includes.h"
|
||||
|
||||
bool
|
||||
pa_shard_init(tsdn_t *tsdn, pa_shard_t *shard, unsigned ind) {
|
||||
/*
|
||||
* Delay coalescing for dirty extents despite the disruptive effect on
|
||||
* memory layout for best-fit extent allocation, since cached extents
|
||||
* are likely to be reused soon after deallocation, and the cost of
|
||||
* merging/splitting extents is non-trivial.
|
||||
*/
|
||||
if (ecache_init(tsdn, &shard->ecache_dirty, extent_state_dirty, ind,
|
||||
/* delay_coalesce */ true)) {
|
||||
return true;
|
||||
}
|
||||
/*
|
||||
* Coalesce muzzy extents immediately, because operations on them are in
|
||||
* the critical path much less often than for dirty extents.
|
||||
*/
|
||||
if (ecache_init(tsdn, &shard->ecache_muzzy, extent_state_muzzy, ind,
|
||||
/* delay_coalesce */ false)) {
|
||||
return true;
|
||||
}
|
||||
/*
|
||||
* Coalesce retained extents immediately, in part because they will
|
||||
* never be evicted (and therefore there's no opportunity for delayed
|
||||
* coalescing), but also because operations on retained extents are not
|
||||
* in the critical path.
|
||||
*/
|
||||
if (ecache_init(tsdn, &shard->ecache_retained, extent_state_retained,
|
||||
ind, /* delay_coalesce */ false)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue