-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve slow path performance for allocation #143
Commits on Mar 16, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 1e454cc - Browse repository at this point
Copy the full SHA 1e454ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 91b7e08 - Browse repository at this point
Copy the full SHA 91b7e08View commit details -
Configuration menu - View commit details
-
Copy full SHA for ffb7b82 - Browse repository at this point
Copy the full SHA ffb7b82View commit details -
Change remote to count down 0, so fast path does not need a constant. Use signed value so that branch does not depend on addition.
Configuration menu - View commit details
-
Copy full SHA for 78f40d4 - Browse repository at this point
Copy the full SHA 78f40d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for a22e438 - Browse repository at this point
Copy the full SHA a22e438View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0274b71 - Browse repository at this point
Copy the full SHA 0274b71View commit details -
The fast path of remote_dealloc is sufficiently compact that it can be inlined.
Configuration menu - View commit details
-
Copy full SHA for d080654 - Browse repository at this point
Copy the full SHA d080654View commit details -
Improve fast path in Slab::alloc
Turn the internal structure into tail calls, to improve fast path. Should be no algorithmic changes.
Configuration menu - View commit details
-
Copy full SHA for bac6336 - Browse repository at this point
Copy the full SHA bac6336View commit details -
Refactor initialisation to help fast path.
Break lazy initialisation into two functions, so it is easier to codegen fast paths.
Configuration menu - View commit details
-
Copy full SHA for a52aca6 - Browse repository at this point
Copy the full SHA a52aca6View commit details -
Configuration menu - View commit details
-
Copy full SHA for bd8c443 - Browse repository at this point
Copy the full SHA bd8c443View commit details -
Configuration menu - View commit details
-
Copy full SHA for 267a726 - Browse repository at this point
Copy the full SHA 267a726View commit details -
Refactor semi-slow path for alloc
Make the backup path a bit faster. Only algorithmic change is to delay checking for first allocation. Otherwise, should be unchanged.
Configuration menu - View commit details
-
Copy full SHA for 52c0ff0 - Browse repository at this point
Copy the full SHA 52c0ff0View commit details -
Test initial operation of a thread
The fisrt operation a new thread takes is special. It results in allocating an allocator, and swinging it into the TLS. This makes this a very special path, that is rarely tested. This test generates a lot of threads to cover the first alloc and dealloc operations.
Configuration menu - View commit details
-
Copy full SHA for e563bfb - Browse repository at this point
Copy the full SHA e563bfbView commit details -
Configuration menu - View commit details
-
Copy full SHA for a1d139c - Browse repository at this point
Copy the full SHA a1d139cView commit details -
Large alloc stats aren't necessarily balanced on a thread, this changes to tracking individual pushs and pops, rather than the net effect (with an unsigned value).
Configuration menu - View commit details
-
Copy full SHA for f9e0f64 - Browse repository at this point
Copy the full SHA f9e0f64View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37d7e15 - Browse repository at this point
Copy the full SHA 37d7e15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 075874e - Browse repository at this point
Copy the full SHA 075874eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 68b49df - Browse repository at this point
Copy the full SHA 68b49dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for f8b77a8 - Browse repository at this point
Copy the full SHA f8b77a8View commit details -
Each allocator has a bump ptr for each size class. This is no longer slab local. Slabs that haven't been fully allocated no longer need to be in the DLL for this sizeclass.
Configuration menu - View commit details
-
Copy full SHA for d656232 - Browse repository at this point
Copy the full SHA d656232View commit details -
Configuration menu - View commit details
-
Copy full SHA for 54dcb20 - Browse repository at this point
Copy the full SHA 54dcb20View commit details -
Change to a cycle non-empty list
This change reduces the branching in the case of finding a new free list. Using a non-empty cyclic list enables branch free add, and a single branch in remove to detect the empty case.
Configuration menu - View commit details
-
Copy full SHA for bd19484 - Browse repository at this point
Copy the full SHA bd19484View commit details -
Configuration menu - View commit details
-
Copy full SHA for ed69bbb - Browse repository at this point
Copy the full SHA ed69bbbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 06032f2 - Browse repository at this point
Copy the full SHA 06032f2View commit details -
Use needs initialisation as makes more sense for other scenarios.
Configuration menu - View commit details
-
Copy full SHA for 941e28a - Browse repository at this point
Copy the full SHA 941e28aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a8a2f6 - Browse repository at this point
Copy the full SHA 8a8a2f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2215815 - Browse repository at this point
Copy the full SHA 2215815View commit details -
Configuration menu - View commit details
-
Copy full SHA for a857b92 - Browse repository at this point
Copy the full SHA a857b92View commit details -
Configuration menu - View commit details
-
Copy full SHA for 841314e - Browse repository at this point
Copy the full SHA 841314eView commit details -
Configuration menu - View commit details
-
Copy full SHA for baff3ef - Browse repository at this point
Copy the full SHA baff3efView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6bf7115 - Browse repository at this point
Copy the full SHA 6bf7115View commit details -
Configuration menu - View commit details
-
Copy full SHA for 193e27a - Browse repository at this point
Copy the full SHA 193e27aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6d60feb - Browse repository at this point
Copy the full SHA 6d60febView commit details
Commits on Mar 19, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 04e74c4 - Browse repository at this point
Copy the full SHA 04e74c4View commit details
Commits on Mar 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 0c40c84 - Browse repository at this point
Copy the full SHA 0c40c84View commit details -
Make GlobalPlaceholder zero init
The GlobalPlaceholder allocator is now a zero init block of memory. This removes various issues for when things are initialised. It is made read-only to we detect write to it on some platforms.
Configuration menu - View commit details
-
Copy full SHA for 65bb8c1 - Browse repository at this point
Copy the full SHA 65bb8c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50486c0 - Browse repository at this point
Copy the full SHA 50486c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fd24db - Browse repository at this point
Copy the full SHA 4fd24dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b19611 - Browse repository at this point
Copy the full SHA 4b19611View commit details