mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 11:04:34 +02:00
7092412: G1: Some roots not marked during an initial mark that gets an evacuation failure
As a result of the changes for 7080389, an evacuation failure during an initial mark pause may result in some root objects not being marked. Pass whether the caller is a root scanning closure into the evacuation failure handling code so that the thread that successfully forwards an object to itself also marks the object. Reviewed-by: ysr, brutisso, tonyp
This commit is contained in:
parent
95832db2e5
commit
3ae9021b59
3 changed files with 37 additions and 7 deletions
|
@ -822,7 +822,8 @@ protected:
|
|||
void finalize_for_evac_failure();
|
||||
|
||||
// An attempt to evacuate "obj" has failed; take necessary steps.
|
||||
oop handle_evacuation_failure_par(OopsInHeapRegionClosure* cl, oop obj);
|
||||
oop handle_evacuation_failure_par(OopsInHeapRegionClosure* cl, oop obj,
|
||||
bool should_mark_root);
|
||||
void handle_evacuation_failure_common(oop obj, markOop m);
|
||||
|
||||
// Instance of the concurrent mark is_alive closure for embedding
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue