RFR [9] 8148117: Move sun.misc.Cleaner to jdk.internal.ref
Alan Bateman
Alan.Bateman at oracle.com
Mon Jan 25 16:14:26 UTC 2016
On 25/01/2016 15:27, Peter Levart wrote:
>
> But let me ask something. Doesn't GC processing require (at least in
> some phases) that user threads be stopped in a safepoint? What happens
> when a user thread is blocked by kernel on memory access? Such thread
> can't be stopped in a safepoint. Safepoint can't begin, so GC can't
> proceed and therefore can't promote objects to old generation at that
> time. Am I right? If yes, then time does not pass for objects while a
> user thread is blocked on memory access, so they won't get promoted to
> old gen any time sooner after the user thread is unblocked.
With memory mapping then it's very possible that a memory access to
stall waiting for pages to be faulted in. So yes, I assume any
STW/safepoint is going to be stall. On the other hand then threads doing
file or socket I/O on these buffers will be in native (maybe blocked,
maybe not) and so aren't an issue. They will safepoint on return or if
they attempt to re-enter.
-Alan
More information about the core-libs-dev
mailing list