Skip to content
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

8349094: GenShen: Race between control and regulator threads may violate assertions #23475

Closed
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
650a6ac
Make old heuristic (not control thread) responsible for resuming old …
earthling-amzn Jan 30, 2025
2687dde
WIP: Simplifying state, removing races
earthling-amzn Feb 1, 2025
d7a065b
WIP: Introduce immutable request object for use without the lock
earthling-amzn Feb 1, 2025
19bfa7d
WIP: Carry over degenerated request
earthling-amzn Feb 1, 2025
53ef004
WIP: Passes tier1, mostly passes tier2
earthling-amzn Feb 4, 2025
ccde1ca
WIP: Simplify degenerated cycle handling
earthling-amzn Feb 4, 2025
f2ed553
WIP: Don't need request.mode anymore
earthling-amzn Feb 4, 2025
5940821
WIP: Simplify shutdown protocol
earthling-amzn Feb 4, 2025
3378b66
Better names, better comments
earthling-amzn Feb 5, 2025
76b6d7e
Restore reporting allocations to pacer
earthling-amzn Feb 5, 2025
481d3b1
Fix interrupted old cycle handling
earthling-amzn Feb 5, 2025
5747faa
Revert unnecessary changes
earthling-amzn Feb 5, 2025
dea41e4
Simplify shControlThread
earthling-amzn Feb 5, 2025
f97f257
Merge remote-tracking branch 'jdk/master' into fix-control-regulator-…
earthling-amzn Feb 5, 2025
a7a6eea
Remove invalid assert, alloc waiters wait until allocation failure is…
earthling-amzn Feb 6, 2025
b0538ee
Do not stomp on pending requests when running a degenerated cycle
earthling-amzn Feb 7, 2025
d199e97
Use logging tag 'thread' to help control debug volume
earthling-amzn Feb 7, 2025
ae20748
Resuming an old cycle should not preempt a young cycle
earthling-amzn Feb 7, 2025
700fa4d
Make shutdown more robust, make better use of request lock
earthling-amzn Feb 7, 2025
a6513bc
Simplify locking protocol
earthling-amzn Feb 7, 2025
d16f6fd
Fix includes
earthling-amzn Feb 7, 2025
8038691
Fix shutdown livelock error
earthling-amzn Feb 10, 2025
f11584d
Add event for control thread state changes
earthling-amzn Feb 10, 2025
627126d
Notify waiters when control thread terminates
earthling-amzn Feb 11, 2025
861ed69
Do not accept requests if control thread is terminating
earthling-amzn Feb 11, 2025
047d6ff
Make shutdown safer for threads requesting (or expecting) gc
earthling-amzn Feb 11, 2025
779492c
Improve message for assertion
earthling-amzn Feb 12, 2025
51d0920
Merge remote-tracking branch 'jdk/master' into fix-control-regulator-…
earthling-amzn Feb 13, 2025
82f9609
Old gen bootstrap cycle must make it to init mark
earthling-amzn Feb 14, 2025
915ffbd
Merge remote-tracking branch 'jdk/master' into fix-control-regulator-…
earthling-amzn Feb 14, 2025
1d887fc
Address review feedback (better comments, better names)
earthling-amzn Feb 24, 2025
d7858de
Merge tag 'jdk-25+11' into fix-control-regulator-threads
earthling-amzn Feb 25, 2025
fb7819d
Improve names and comments
earthling-amzn Feb 26, 2025
b91ce9c
Remove duplicated field pointer for old generation
earthling-amzn Feb 27, 2025
d2e90dd
Add assertions about old gen state when resuming old cycles
earthling-amzn Feb 27, 2025
150cb79
Don't check for shutdown in control thread loop condition
earthling-amzn Feb 27, 2025
37e445d
Merge remote-tracking branch 'jdk/master' into fix-control-regulator-…
earthling-amzn Feb 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -26,13 +26,12 @@
#ifndef SHARE_GC_SHENANDOAH_SHENANDOAHGENERATIONALCONTROLTHREAD_HPP
#define SHARE_GC_SHENANDOAH_SHENANDOAHGENERATIONALCONTROLTHREAD_HPP

#include <runtime/mutexLocker.hpp>

#include "gc/shared/gcCause.hpp"
#include "gc/shenandoah/shenandoahController.hpp"
#include "gc/shenandoah/shenandoahGC.hpp"
#include "gc/shenandoah/shenandoahPadding.hpp"
#include "gc/shenandoah/shenandoahSharedVariables.hpp"
#include "runtime/mutexLocker.hpp"

class ShenandoahOldGeneration;
class ShenandoahGeneration;