RFR(S): 8009536: G1: Apache Lucene hang during reference processing
John Cuthbertson
john.cuthbertson at oracle.com
Wed Mar 13 19:04:11 UTC 2013
Hi Everyone,
Slight correction...
On 3/13/2013 10:57 AM, John Cuthbertson wrote:
>
> I think we can get rid of the do_stealing parameter - it's always the
> negation of the is_serial parameter and I like the idea of making it a
> local. How about that? For example
>
> void CMTask::do_marking_step(double ms, bool do_termination, bool
> is_serial) {
> // It does not make sense to allow stealing when called serially.
> bool do_stealing = !is_serial;
After going through the cases enumerated by Bengt (thanks for doing that
BTW), the correct conditions where stealing should be enabled are:
bool do_stealing = !is_serial && do_termination;
The rationale is that we should check to see if there's anything to
steal if we're about to enter termination protocol (and we're not
serial). In the case when do_termination is false (the keep_alive
closure) we want to get back, as quickly as we can, to processing
references after the intermediate drain.
New webrev soon.
Thanks,
JohnC
More information about the hotspot-gc-dev
mailing list