review for 7110489: C1: 64-bit tiered with ForceUnreachable: assert(reachable(src)) failed: Address should be reachable
tom.rodriguez at oracle.com
Fri Nov 11 12:50:59 PST 2011
44 lines changed: 24 ins; 18 del; 2 mod; 13050 unchg
7110489: C1: 64-bit tiered with ForceUnreachable: assert(reachable(src)) failed: Address should be reachable
The ForceUnreachable flag hadn't been tested broadly on x64 and in
this particular failure, there's a mismatch between
is_polling_page_far and reachable which causes the assertion failure.
I also lowered the buffer limit of x64 too much which resulted in
failures so I've raised the limit back up to 120000 for debug x64.
The method handle adapters lazily generated so only actual method
handles tests verify that the buffer was properly generated. I
modified the JVM to force the generation during bootstrap and ran it
through JPRT with +ForceUnreachable. This exposed a separate problem
in the arraycopy stubs on windows where the rscratch1 (r10) is being
used to preseve rsi and the increment of the copy counters can blow it
away if the counter isn't reachable. I fixed this be reordering the
counter updates to be after the restore of rsi.
More information about the hotspot-compiler-dev