<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Yikes... a Linux man page i found does not say anything about swap
reservation:<br>
<br>
<dl compact="compact">
<dt><b>MADV_DONTNEED</b>
</dt>
<dd>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 <b>mmap</b>()) or zero-fill-on-demand pages for mappings
without an underlying file.</dd>
</dl>
Is there an understanding that this is a Linux bug? Or is
"resources" above open to<br>
interpretation, including swap reservation? (Andrew Haley?)<br>
<br>
Anyway, your change looks good, if only to get back to more reliable
operation<br>
under tight memory situations?<br>
<br>
PS: Igor, what does "louses" below (in yr email) mean in this
context?<br>
<br>
Reviewed!<br>
-- ramki<br>
<br>
<br>
On 8/3/2011 1:55 PM, Igor Veresov wrote:
<blockquote cite="mid:4E39B5B5.1040509@oracle.com" type="cite">Resending
to the right list.
<br>
<br>
-------- Original Message --------
<br>
Subject: review(XXS): 7060842: UseNUMA crash with UseHugreTLBFS
running SPECjvm2008
<br>
Date: Wed, 03 Aug 2011 13:40:17 -0700
<br>
From: Igor Veresov <a class="moz-txt-link-rfc2396E" href="mailto:igor.veresov@oracle.com"><igor.veresov@oracle.com></a>
<br>
To: hotspot-compiler-dev
<a class="moz-txt-link-rfc2396E" href="mailto:hotspot-compiler-dev@openjdk.java.net"><hotspot-compiler-dev@openjdk.java.net></a>
<br>
<br>
It seems that madvise(MADV_FREE) breaks pages reservation
semantics of
<br>
the the underlying segment. With tight memory constraints this
would
<br>
cause a race for pages and a segfault if the JVM louses. The
solution is
<br>
to revert back to the previous implementation of os::free_memory()
that
<br>
used mmap().
<br>
<br>
Webrev: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~iveresov/7060842/webrev.00/">http://cr.openjdk.java.net/~iveresov/7060842/webrev.00/</a>
<br>
<br>
Tested is gc test suite.
<br>
<br>
igor
<br>
</blockquote>
</body>
</html>