-
Notifications
You must be signed in to change notification settings - Fork 484
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tcmalloc: implement slab caching for arm
Implement recently added slab pointer caching for arm. Also fix few minor bugs while we are here: 1. TcmallocSlab_Internal_Push used TCMALLOC_INTERNAL_PERCPU_USE_RSEQ_ASM_GOTO macro in asm constraints, while it should use TCMALLOC_INTERNAL_PERCPU_USE_RSEQ_ASM_GOTO_OUTPUT. 2. Both asm chunk claim to not clobber "cc" when !TCMALLOC_INTERNAL_PERCPU_USE_RSEQ_ASM_GOTO_OUTPUT, but that's not true, they do. Also simplify Push implementation, it looks more complex that it can be with all these slabs_size_class_lsl3, slabs_size_class_lsl3_plus_4, slabs_minus_8, region_start_slabs_minus_8. Fast path performance is impoved by 18%: Before: ----------------------------------------------------------------------- Benchmark Time CPU Iterations ----------------------------------------------------------------------- BM_new_sized_delete/1 8.41 ns 8.39 ns 10 After: ----------------------------------------------------------------------- BM_new_sized_delete/1 6.89 ns 6.87 ns 10 PiperOrigin-RevId: 565513762 Change-Id: I6701976de3a334dfe0aa4475be5a281d7087129a
- Loading branch information
1 parent
a368c97
commit 59af0ae
Showing
1 changed file
with
83 additions
and
126 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters