8342818: Implement CPU Time Profiling for JFR #20752
Copy JFR sampler
476dd27f
Unfinished CPU-time sampler
2923863f
Slight improvements
0278e57f
Merge events
d7bf8941
WIP: merge events and fix bugs
1899627e
WIP: sampling starts working
7432cdc2
Add missing files
c80d20dd
Fix some issues
7b705518
Remove thread array
33d33041
WIP
e153440c
Make crash protected code smaller
7ed0012c
Log how many times queue is full
70c1ea70
Improve
d52b3419
Fix bugs
810e9519
More fixes
3c696702
Add event for full queue
254245a1
Remove some sampled thread states to prevent seg faults
8f7db312
Small change
97ecf4a8
Add jfr view application.cpu-time-failed-samples
711e8634
Disable CPUTimeSampler by default
47fe099e
Don't walk in _thread_in_vm state
dcd011a1
Try to fix thread crash issues
ad4f0605
Add cpu-time-overflowed-samples view
a672610f
Remove unused method
21f4d5ef
Fix bugs
e4df212c
Record "thread in deopt" as failed trace
9aef0392
Configure queue size factor via env variable for testing
39478a19
Record thread obtain failure as failed event
a9b6d58d
Make it compile on mac os
1510787f
First try of a proper lock-less queue
1656e5b4
First try of a proper lock-less queue
4e13e5ca
cpu-time-failed-samples-no-threads
01e3b263
Add failing
5dbadac1
Add failing
efaf1198
Fix bug
4ffbfb5a
Walk in more states but not while in stw
e43dc6ab
Clean up
bf77842c
Remove unused and not required code
ae034dab
Reset stacktraces from samples without threads
50bec768
Only record samples with a valid thread id
5a87cd78
Tiny fix
713ca686
Tiny build fix
d5a0e383
Tiny build fix
8545fe24
Clean up includes
7461a54d
Readd include of osThread.hpp
b7d9bbec
Small reordering
9d4f6c2a
Improve sampler
8c9c6ba5
Improve CPU time sampler
80aef9c2
Use enum for internal error codes
5b759eb5
Tiny fix
2e7490cc
Remove CPUTimeExecutionSample#state
3cbe3895
Clamp queue size
8fd47eea
Clamp queue size
e87e8775
Replace perror with JVM logging
a7539bdc
Reset state at disroll
7f425ba4
Yield after processing nothing
974e0850
Fix main sampler loop
4a8b631c
Tiny fixes
f6a273ff
Test multiple recordings in same JVM process
6df79753
Improve max queue size computation
c5fd9db0
Guard crash protection with lock
6aafc2e7
Fix is_empty
ad29f67b
Implement queue more conservative
d78c0715
Add Jaroslav's fix
8265eb38
Queue head/tail unpacking cleanup
316f00d4
Refactor head/tail retrieval
d0471dca
Avoid mutex assertion failure
80c168d6
Reimplemented concurrent queue for Jfr traces
4b149de4
Get rid of JfrThreadCrashProtection_lock
bbca87b3
Fix walkable assertion
98f10e7d
Remove walkable assertion and add comment
cfabd413
Fix event names and make experimental
6aa57271
Remove trailing whitespace
ccccc367
mgronlun
requested changes
on 2024-09-04
mgronlun
requested changes
on 2024-09-04
mgronlun
requested changes
on 2024-09-05
Rename 'CPUTimeExecutionSampleThrottles' event to 'CPUTimeExecutionSa…
da4e7349
Rename 'dropped' samples to 'lost' samples
09c090c9
Reorg vrame imports
2a95d60f
Add include for 'timer_t' type
8e3cf755
Adjust wording in lost samples event description
4892adda
Update view.ini
ed45394d
Fix CI build issue
8227f152
Simplify enqueue_buffer handling
69803b62
Remove manuall enqueue_buffer handling
4ff59539
Fix view name
334bfe34
Improve view description
46fdf1f2
Small stuff
19ced92d
Small stuff
572477ac
Rename event
8911831b
Split up TestFullStackTrace
d36c70ab
Remove atomic store
7c71946b
Use JFR thread hooks
c00c67d2
Remove newline change
31609b96
Tiny refactorings
422fa475
Revert "Remove manuall enqueue_buffer handling"
5851dabf
Don't check for enqueue buffer fullness level too often
4830bac2
Modify event label
01c091a8
Ensure CPU time tests only run on Linux
928f84a7
Remove printfs
188c841c
Add failed property to CPUTimeSample
c94e618f
Add maxRate property
1deafe0e
Fix compilation error on non-linux systems
16c161f2
Fix tiny bug
eb8c3601
Fix previous commit
d91093f4
Fix maxRate option
66ceb230
Replace maxRate with throttle
1e13100c
Add throttle test case
184c2c42
Fix
1c6ae7e4
Split TestNative
5704222f
Fix settimer issue
421d6649
Split test cases
b3d1d817
Fix throttle parameter setting
eb2d70d6
Record actual period as ActiveSetting event
d50157e6
Implement rate idea
74d31062
Merge rate into throttle
3856771f
Add missing files
796e272b
Change thread and weight name
67f93616
Small clean up
85b1cd1d
Small build fix for non-Linux
09c7a3a2
Small fixes
fbe0622e
Simplify rate parsing
07d8a9b7
Add missing files
58958ec8
Fix threshold setting issue
41c2340d
Fix stackTrace setting issue
efa35f1e
parttimenerd
changed the title CPU Time based profiling for JFR 8342818: Implement CPU Time Profiling 63 days ago
openjdk
changed the title 8342818: Implement CPU Time Profiling 8342818: Implement CPU Time Profiling for JFR 63 days ago
Use try-with-resources in tests
366aced5
parttimenerd
marked this pull request as ready for review 56 days ago
Improve TestLookForUntestedEvents and TimespanRate.of
9bfceee0
Fix tests and other minor improvements
31452ce1
Remove min_valid_free_size_bytes
ddec72bc
Half size of JfrAsyncStackFrame
7ae42465
Tag methods and classes in the signal handler
1e0dbaea
Add worker thread id getter to whitebox
01783bc9
Improve readability of thread_state functions
551f69cf
Add test case for class unloading
1929fa94
Don't crash protect storing walked stack in JFR
65423ad8
Make things static
814bb97b
Only do timer init and removal at global safepoint
96b58e49
Only do timer init and removal at global safepoint
18a83be7
Tiny refactoring
9d6716eb
Tiny refactoring
132779fb
Use ResetNoHandleMark when walking the stack
97014a50
Don't use method-sample-enabled control
7c61bc68
Fix TimespanRate#toString and readd assert
0a4454cd
Make native stack walking code simpler
49e7899a
Add newline to file end
b0fbd431
Don't treat stackTrace attribute specially for CPUTimeSamples
9f96cc0c
Added more comments around queue implementation
027a7e34
Don't walk continuations in signal handler
32d8e642
Fix ActiveSetting event for CPUTimeSamples
26615497
Make parsing rates safer
9cafdbc8
Improve Throttling test case
207f221c
Obtain minimal period via the CONFIG_HZ parameter of the kernel
6bc66b9c
Making queue processing only stoppable in debug builds
2f462fe2
Compute actual sampling period via si_overrun
fef22ffd
Merge remote-tracking branch 'origin' into parttimenerd_jfr_cpu_time_…
f7f8de0b
Simplify #ifdefs to fix minimal and zero builds
46995b6a
Fix zero build
7fff875c
Merge remote-tracking branch 'origin' into parttimenerd_jfr_cpu_time_…
af59d3fb
Fix disenroll issue
092d447b
Merge branch 'master' into parttimenerd_jfr_cpu_time_sampler4
2dbed881
Fix build
020bbe98
Handle weakened vthread-epoch identity invariant
d17c39e3
Merge branch 'master' into parttimenerd_jfr_cpu_time_sampler4
d1574a29
Assignees
No one assigned
Login to write a write a comment.
Login via GitHub