RFR (M) 8010927: Kitchensink crashed with SIGSEGV, Problematic frame: v ~StubRoutines::checkcast_arraycopy
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon May 20 15:08:52 PDT 2013
On 5/20/13 2:36 PM, Vladimir Kozlov wrote:
> http://cr.openjdk.java.net/~kvn/8010927/webrev
>
> The post-barrier code for arraycopy stubs on x64 was different from the
> code on other platforms and it had bug which cause marking one more card
> than needed. And it causes SEGV if cardtable has hole (uncommitted
> space) due to unused heap space in young gen (NewSize > MaxNewSize).
Sorry, it was typo (NewSize < MaxNewSize). Also the difference should be
> (512*4Kb) to map to one (or more) uncommitted (4Kb) pages in
cardtable space.
Vladimir
>
> Changed gen_write_ref_array_post_barrier() code on x64 to pass start
> address and number of copied oop elements as on others platforms.
>
> Added check in generate_checkcast_copy() to skip post barrier code if no
> elements are copied (when type check failed for first element).
> Note that on sparc this code has already such check.
>
> Added regression test based on initial version from Mikael Gerdin.
> Tested changes with this test on all platforms using JPRT. Ran jtreg tests.
>
> Thanks,
> Vladimir
More information about the hotspot-compiler-dev
mailing list