hg: hsx/hotspot-gc/hotspot: 2 new changesets

Ramki Ramakrishna y.s.ramakrishna at oracle.com
Mon Aug 8 15:06:52 PDT 2011


Jason, As Igor noted in his review request, IIUC, MADV_DONTNEED seems to 
also remove the
swap reservations for those pages on Linux, so that if memory is tight, 
then a reload of the page(s)
may not succeed. Since this was being used for pages in Eden, we are not 
equipped to deal
with page reservations disappearing fron under us...

I couldn't tell from the subsequent discussion, if this is by design in 
Linux or an inadvertent bug
(at least the Linux man page is mum on the swap reservation semantics of 
MADV_DONTNEED;
Solaris does not lose page reservations on an madvise;  so we'll have to 
defer to people familiar
with the Linux kernel to interpret intentions and semantics here).

-- ramki

On 8/6/2011 2:46 PM, Jason Schroeder wrote:
> Why is the MADV_DONTNEED usage being removed?  My reading
> of the kernel sources for swapping indicates the change could/would
> cause a needless page write.
>
> On Sat, Aug 6, 2011 at 3:32 PM, Igor Veresov<igor.veresov at oracle.com>  wrote:
>> Yes, but not only that. It basically discards the page, to quote from the
>> man page: "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."
>>
>> igor
>>
>> On 8/6/11 9:24 AM, Jason Schroeder wrote:
>>> I thought the benefit of MADV_DONTNEED was to stop Linux from
>>> writing dirty pages to disk.
>>>
>>> On Sat, Aug 6, 2011 at 6:00 AM,<igor.veresov at oracle.com>    wrote:
>>>> Changeset: a20e6e447d3d
>>>> Author:    iveresov
>>>> Date:      2011-08-05 16:44 -0700
>>>> URL:
>>>> http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/a20e6e447d3d
>>>>
>>>> 7060842: UseNUMA crash with UseHugreTLBFS running SPECjvm2008
>>>> Summary: Use mmap() instead of madvise(MADV_DONTNEED) to uncommit pages
>>>> Reviewed-by: ysr
>>>>
>>>> ! src/os/linux/vm/os_linux.cpp
>>>>
>>


More information about the hotspot-gc-dev mailing list