RFR(M): 6921087: G1: remove per-GC-thread expansion tables from the fine-grain remembered sets
John Cuthbertson
john.cuthbertson at oracle.com
Mon Jun 25 19:10:00 UTC 2012
Hi Thomas,
Thanks. It looks good to me. I'll be pushing it later today.
JohnC
On 06/25/12 08:43, Thomas Schatzl wrote:
> Hi John,
>
> On Fri, 2012-06-22 at 11:38 -0700, John Cuthbertson wrote:
>
>> Hi Thomas,
>>
>> I would rather not remove the HRRS_VERBOSE code. It has proven to be
>> invaluable in the past when debugging the dreaded "missing entry in
>> remembered set" failure. So as potential candidate for investigating
>> an error like this in the future - I would like to keep the code in
>> place rather than recreate it. I'm OK with not using conditional
>> compilation and using a 'develop' flag as suggested by Bengt.
>>
>> Anyway a new webrev based upon your latest patch can be found at:
>> http://cr.openjdk.java.net/~johnc/6921087/webrev.1/
>>
>
> either way is fine with me, although to me it seems to classical debug
> code that has been used once ages ago for tracking down a particular bug
> and kept in "just in case".
> Imo, while it is a small time saver when/if such a bug occurs again, for
> me the time spent adding debug log output has never been an issue when
> tracking down such things.
>
> If you intend to keep it, please consider fixing it though, so that the
> code compiles when HRRS_VERBOSE is enabled: in
> PerRegionTable::add_reference_work there is a dereference of the "from"
> OopOrNarrowOopStar, i.e. I believe
>
> void add_reference_work(OopOrNarrowOopStar from, bool par) {
> // Must make this robust in case "from" is not in "_hr", because of
> // concurrency.
>
> #if HRRS_VERBOSE
> gclog_or_tty->print_cr(" PRT::Add_reference_work(" PTR_FORMAT "->" PTR_FORMAT").",
> from, *from);
> #endif
>
> should read something like:
>
> #if HRRS_VERBOSE
> gclog_or_tty->print_cr(" PRT::Add_reference_work(" PTR_FORMAT "->" PTR_FORMAT").",
> from,
> UseCompressedOops
> ? oopDesc::load_decode_heap_oop((narrowOop*)from)
> : oopDesc::load_decode_heap_oop((oop*)from));
> #endif
>
> (I think)
>
> I attached a patch that changes the HRRS_VERBOSE define to a G1TraceHeapRegionRememberedSet develop variable, to see if a debug variable is the better solution. At least this avoids compilation errors like above creeping in.
>
> Hth,
> Thomas
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20120625/b492d257/attachment.htm>
More information about the hotspot-gc-dev
mailing list