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,7 @@ void test_tasks(size_t num_tasks, size_t count, size_t size)
|
||||
ParallelTest<test_tasks_f> test(num_tasks);
|
||||
|
||||
std::cout << "Task test, " << num_tasks << " threads, " << count
|
||||
<< " swaps per thread " << test.time() << "ticks" << std::endl;
|
||||
<< " swaps per thread " << test.time() << " ticks" << std::endl;
|
||||
|
||||
for (size_t n = 0; n < swapsize; n++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user