Fwd: review(XXS): 7060842: UseNUMA crash with UseHugreTLBFS running SPECjvm2008
Igor Veresov
igor.veresov at oracle.com
Wed Aug 3 21:47:07 UTC 2011
On 8/3/11 2:33 PM, Ramki Ramakrishna wrote:
> Yikes... a Linux man page i found does not say anything about swap
> reservation:
>
> *MADV_DONTNEED*
> Do not expect access in the near future. (For the time being, the
> application is finished with the given range, so the kernel can free
> resources associated with it.) Subsequent accesses of pages in this
> range will succeed, but will result either in re-loading of the
> memory contents from the underlying mapped file (see *mmap*()) or
> zero-fill-on-demand pages for mappings without an underlying file.
That's MADV_DONTNEED, we tried to use MADV_FREE, but there's nothing
about it's semantics either with regard to reservations.
>
> Is there an understanding that this is a Linux bug? Or is "resources"
> above open to
> interpretation, including swap reservation? (Andrew Haley?)
>
I don't know if this is intentional. madvise() has notoriously different
interpretations of its options under different OSes.
> Anyway, your change looks good, if only to get back to more reliable
> operation
> under tight memory situations?
Right. Thank you!
>
> PS: Igor, what does "louses" below (in yr email) mean in this context?
Eh, that's a typo, I meant "looses".
Thanks!
igor
>
> Reviewed!
> -- ramki
>
>
> On 8/3/2011 1:55 PM, Igor Veresov wrote:
>> Resending to the right list.
>>
>> -------- Original Message --------
>> Subject: review(XXS): 7060842: UseNUMA crash with UseHugreTLBFS
>> running SPECjvm2008
>> Date: Wed, 03 Aug 2011 13:40:17 -0700
>> From: Igor Veresov <igor.veresov at oracle.com>
>> To: hotspot-compiler-dev <hotspot-compiler-dev at openjdk.java.net>
>>
>> It seems that madvise(MADV_FREE) breaks pages reservation semantics of
>> the the underlying segment. With tight memory constraints this would
>> cause a race for pages and a segfault if the JVM louses. The solution is
>> to revert back to the previous implementation of os::free_memory() that
>> used mmap().
>>
>> Webrev: http://cr.openjdk.java.net/~iveresov/7060842/webrev.00/
>>
>> Tested is gc test suite.
>>
>> igor
More information about the hotspot-gc-dev
mailing list