Request for reviews (M): 6947341: JVM Crash running Oracle ATG CRMDemo

John Coomes John.Coomes at oracle.com
Tue Jun 22 12:31:46 PDT 2010


Vladimir Kozlov (vladimir.kozlov at oracle.com) wrote:
> Thank you, Tom and Paul
> 
> I updated webrev
> 
> http://cr.openjdk.java.net/~kvn/6947341/webrev.02

Heh, guess I should catch up on email before replying next time.

Looks good.  Maybe consider a name without "failed" in it.  I find the
quasi- double negative in something like

	if (!failed_to_reserve_as_requested())

harder to follow (although it doesn't appear in the code now).

-John

> Tom Rodriguez wrote:
> > Ok.  Sounds good.
> > 
> > tom
> > 
> > On Jun 22, 2010, at 11:05 AM, Vladimir Kozlov wrote:
> > 
> >> Tom Rodriguez wrote:
> >>>>> Why does one of the cases return instead of falling through as if the allocation failed?
> >>>> Because if it did not return it will fall into next code which will do regular allocation (without large pages). I want it to return so an other attempt could be made with different requested address and with large pages.
> >>> How do you guarantee that it will terminate successfully?
> >> There are only 2 attempts to allocate at the requested address. If they fail the requested_address is set to NULL and this new code will not be executed.
> >>
> >> Vladimir
> >>
> >>> tom
> >>>> Vladimir
> >>>>
> >>>>> tom
> >>>>> On Jun 22, 2010, at 8:46 AM, Vladimir Kozlov wrote:
> >>>>>> http://cr.openjdk.java.net/~kvn/6947341/webrev
> >>>>>>
> >>>>>> Fixed 6947341: JVM Crash running Oracle ATG CRMDemo
> >>>>>>
> >>>>>> Missing protected page below heap with compressed oops
> >>>>>> which use narrow_oop_base and implicit null check.
> >>>>>> It is caused by ReservedSpace code misses checks that OS
> >>>>>> reserved heap at requested address.
> >>>>>>
> >>>>>> Before 6951686 fix Linux will reserve heap memory at address
> >>>>>> which is not requested for compressed oops VM (usually above
> >>>>>> 32Gb virtual address: 0x00002aaaae200000). But VM thinks
> >>>>>> it did reserve at requested address and it does not need
> >>>>>> protected page below heap, so the code in protect_noaccess_prefix()
> >>>>>> is not executed.
> >>>>>>
> >>>>>> Solution:
> >>>>>> Add missing checks. I also added few asserts and prints
> >>>>>> to make sure memory reservation done correctly for
> >>>>>> compressed oops.
> >>>>>>
> >>>>>> Verified with CRMDemo.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> > 



More information about the hotspot-compiler-dev mailing list