Improve fast path of handle remote deallocs

This adds some branch predictor and cache hints to the fast path of
processing remote deallocation. It also removes the batching.
This commit is contained in:
Matthew Parkinson
2021-10-28 14:26:41 +01:00
committed by Matthew Parkinson
parent fd408637a7
commit 19de27fdaf
4 changed files with 16 additions and 21 deletions

View File

@@ -457,8 +457,7 @@ namespace snmalloc
[local_state](freelist::QueuePtr p) SNMALLOC_FAST_PATH_LAMBDA {
return capptr_domesticate<SharedStateHandle>(local_state, p);
};
size_t i = 0;
auto cb = [this, local_state, &need_post, &i](freelist::HeadPtr msg)
auto cb = [this, local_state, &need_post](freelist::HeadPtr msg)
SNMALLOC_FAST_PATH_LAMBDA {
#ifdef SNMALLOC_TRACING
std::cout << "Handling remote" << std::endl;
@@ -469,7 +468,7 @@ namespace snmalloc
handle_dealloc_remote(entry, msg.as_void(), need_post);
return (i++ < REMOTE_BATCH);
return true;
};
if constexpr (SharedStateHandle::Options.QueueHeadsAreTame)