Bottom commits from BatchIt (#675)
* msvc: set __cplusplus to the actual value in use * ds_core/bits: add mask_bits; convert one_at_bit-s * remotecache: enable reserve_space multiple objects * nits * Small changes to tracing - Trace "Handling remote" once per batch, rather than per element - Remote queue events also log the associated metaslab; we'll use this to assess the efficacy of https://github.com/microsoft/snmalloc/issues/634 * freelist builder: allow forcibly tracking length * Try forward declaring freelist::Builder to appease macos-14 * freelist: tweak intra-slab obfuscation keys by meta address * NFC: freelist: allow `next` to be arbitrary value * Switch to a central, tweaked key for all free lists * allocconfig: introduce some properties of slabs We'll use these to pack values in message queues. - Maximum distance between two objects in a single slab - Maximum number of objects in a slab * NFC: Templatize LocalCache on Config * NFC: split dealloc_local_object_slow We'll use the _slower form when we're just stepping a slab through multiple rounds of state transition (to come), which can't involve the actual memory object in question. * NFC: make freelist::Object::T-s by placement new * NFC: CoreAlloc: split dealloc_local_object The pattern of `if (!fast()) { slow() }` occurs in a few places, including in contexts where we already know the entry and so don't need to look it up.
This commit is contained in:
committed by
GitHub
parent
12f2b10122
commit
8b95b9a916
@@ -137,7 +137,8 @@ int main()
|
||||
|
||||
LocalEntropy entropy;
|
||||
entropy.init<DefaultPal>();
|
||||
RemoteAllocator::key_global = FreeListKey(entropy.get_free_list_key());
|
||||
entropy.make_free_list_key(RemoteAllocator::key_global);
|
||||
entropy.make_free_list_key(freelist::Object::key_root);
|
||||
|
||||
auto alloc1 = new Alloc();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user