On 10/09/2015 12:01 AM, Andrew Haley wrote:
On 09/09/2015 02:55 PM, David M. Lloyd wrote:
On 09/09/2015 08:17 AM, Andrew Haley wrote:
On 09/09/2015 02:13 PM, David M. Lloyd wrote:
How would you hook into the safepoint to perform the unmapping? You'd
have to wait for all threads to arrive at safepoints, wouldn't you?
Yes. That happens in the VM already, e.g. when we need to revoke the
bias of a lock. It's a well-established mechanism.
Could you extend the technique to other native resources as well?
Yes, but of course there will be some back-pressure from HotSpot
developers: it requires changes to the VM, and you have to be
extremely careful not to cause a deadlock.
Adding a new JVM_* function that requests a safepoint VM operation be
executed is not a major concern in my opinion**. Of more of a concern is
the cost of doing a stop-the-world safepoint in the kinds of
environments being described. How frequently are these unmap operations
needed?
** Note the VM operation can only operate on native data structures - no
Java code execution is allowed.
David H.
Andrew.