-
Notifications
You must be signed in to change notification settings - Fork 375
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
[PROF-10422] Add GVL profiling as a preview feature #3929
[PROF-10422] Add GVL profiling as a preview feature #3929
Commits on Sep 18, 2024
-
Configuration menu - View commit details
-
Copy full SHA for e53c00f - Browse repository at this point
Copy the full SHA e53c00fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a91954 - Browse repository at this point
Copy the full SHA 5a91954View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1ee127f - Browse repository at this point
Copy the full SHA 1ee127fView commit details -
Configuration menu - View commit details
-
Copy full SHA for f5bcd4f - Browse repository at this point
Copy the full SHA f5bcd4fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 31ce66d - Browse repository at this point
Copy the full SHA 31ce66dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f3dd97 - Browse repository at this point
Copy the full SHA 2f3dd97View commit details -
Configuration menu - View commit details
-
Copy full SHA for 339e18d - Browse repository at this point
Copy the full SHA 339e18dView commit details -
Configuration menu - View commit details
-
Copy full SHA for a8f771b - Browse repository at this point
Copy the full SHA a8f771bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e655976 - Browse repository at this point
Copy the full SHA e655976View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d6e238 - Browse repository at this point
Copy the full SHA 3d6e238View commit details -
Add default arguments handling to _native_sample
This test helper method was getting very annoying to maintain every time we needed to test new features.
Configuration menu - View commit details
-
Copy full SHA for 83e38c6 - Browse repository at this point
Copy the full SHA 83e38c6View commit details -
Switch from hash to array to hopefully avoid flakiness
The flakiness on this spec showed up again when I slightly refactored the `Collectors::Stack::Testing._native_sample` method but goes away if we use an array. I really dislike all the handwaving around this, but I'm not sure what we can do better in this case.
Configuration menu - View commit details
-
Copy full SHA for 135b555 - Browse repository at this point
Copy the full SHA 135b555View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf4d86d - Browse repository at this point
Copy the full SHA bf4d86dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3db9e5f - Browse repository at this point
Copy the full SHA 3db9e5fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 30a245b - Browse repository at this point
Copy the full SHA 30a245bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f61036 - Browse repository at this point
Copy the full SHA 8f61036View commit details -
Add validation that input is thread
We're using low-level Ruby APIs that don't look before they jump, so let's be careful to do our own validation to avoid crashes.
Configuration menu - View commit details
-
Copy full SHA for 206b880 - Browse repository at this point
Copy the full SHA 206b880View commit details -
Configuration menu - View commit details
-
Copy full SHA for e3c1138 - Browse repository at this point
Copy the full SHA e3c1138View commit details -
Extract out ruby version for GVL profiling specs
It occurs to me that I'm sprinkling a lot of conditionals all over the place, and when we want to support 3.2 we'll need to find all of them and if we miss some there won't be anything reminding us it's missing. So by extracting the version to a single location, we'll bump it once and all specs that need to work for 3.2 will be run.
Configuration menu - View commit details
-
Copy full SHA for 1bf6014 - Browse repository at this point
Copy the full SHA 1bf6014View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7faab42 - Browse repository at this point
Copy the full SHA 7faab42View commit details -
Configuration menu - View commit details
-
Copy full SHA for f9c919a - Browse repository at this point
Copy the full SHA f9c919aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 22a54ae - Browse repository at this point
Copy the full SHA 22a54aeView commit details -
Configuration menu - View commit details
-
Copy full SHA for a6f6646 - Browse repository at this point
Copy the full SHA a6f6646View commit details -
Configuration menu - View commit details
-
Copy full SHA for e6093c8 - Browse repository at this point
Copy the full SHA e6093c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for e0ceba5 - Browse repository at this point
Copy the full SHA e0ceba5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 147f227 - Browse repository at this point
Copy the full SHA 147f227View commit details -
Refactor: Introduce
ThreadContext.for_testing
constructorSo far in the profiler, we've been avoiding adding defaults to keyword arguments that are expected to be set in production as, well, those defaults won't match what happens in production (they'll get overridden). This is all fine, but quite annoying when we use our components piecemeal for benchmarking and testing, since adding any new arguments means modifying a gazillion places in the codebase to start passing in that argument. To solve this, let's introduce a `for_testing` helper method that provides defaults that we often use for testing, and that then calls into the regular constructor.
Configuration menu - View commit details
-
Copy full SHA for 6101052 - Browse repository at this point
Copy the full SHA 6101052View commit details -
Make
waiting_for_gvl_threshold_ns
configurable instead of being har……dcoded This setting is going to be the main overhead lever for the Waiting for GVL feature. Having it configurable will allow us to play with it and better find good defaults.
Configuration menu - View commit details
-
Copy full SHA for 524e9d1 - Browse repository at this point
Copy the full SHA 524e9d1View commit details -
Convert
CpuAndWallTimeWorker.new
to use keyword argumentsThis method has way too many positional arguments, let's try to avoid this footgun by using keyword arguments instead.
Configuration menu - View commit details
-
Copy full SHA for 0c7c1b5 - Browse repository at this point
Copy the full SHA 0c7c1b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for d05beb3 - Browse repository at this point
Copy the full SHA d05beb3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 67dc4e7 - Browse repository at this point
Copy the full SHA 67dc4e7View commit details -
Add testing for enabling the GVL profiling hook
+ a small refactor for skipping GVL profiling specs on legacy Rubies
Configuration menu - View commit details
-
Copy full SHA for 491d5dc - Browse repository at this point
Copy the full SHA 491d5dcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 39a0d3d - Browse repository at this point
Copy the full SHA 39a0d3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ceda29e - Browse repository at this point
Copy the full SHA ceda29eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6787399 - Browse repository at this point
Copy the full SHA 6787399View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26914e1 - Browse repository at this point
Copy the full SHA 26914e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for bbebed3 - Browse repository at this point
Copy the full SHA bbebed3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 90f1aa3 - Browse repository at this point
Copy the full SHA 90f1aa3View commit details -
Fix skipping on legacy Rubies not stopping the profiler
This skip was only called after a previous before started the profiler, so this left the test suite in an incorrect state.
Configuration menu - View commit details
-
Copy full SHA for 567a98c - Browse repository at this point
Copy the full SHA 567a98cView commit details -
Split up variants of
_native_gvl_profiling_hook_active
to fix unuse……d argument warning
Configuration menu - View commit details
-
Copy full SHA for ea2bb1b - Browse repository at this point
Copy the full SHA ea2bb1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 82aa51a - Browse repository at this point
Copy the full SHA 82aa51aView commit details
Commits on Sep 20, 2024
-
Configuration menu - View commit details
-
Copy full SHA for c443893 - Browse repository at this point
Copy the full SHA c443893View commit details