Increased safepoint cleanup tasks in Java 11 (vs 8)

charlie hunt charlie.hunt at oracle.com
Wed Jun 5 16:08:43 UTC 2019


I was curious if global safepointing also offered similar symptoms. ... 
part of an isolation process.

On 6/5/19 7:54 AM, Vitaly Davidovich wrote:
> Hi Charlie,
> On Wed, Jun 5, 2019 at 8:47 AM charlie hunt <charlie.hunt at oracle.com 
> <mailto:charlie.hunt at oracle.com>> wrote:
>
>     Just a quick thought ... did you happen to do a comparison with
>     ThreadLocalHandshakes disabled in JDK 11.0.3?  i.e.
>     -XX:-ThreadLocalHandshakes
>
>  No, haven't tried without TLH.  I'm actually pretty excited about 
> them - avoiding global safepoints, where possible, is super 
> attractive.  Why do you think TLH can contribute to more frequent 
> safepoints (or rather, cleanup ops)?
>
>
>     thanks,
>
>     Charlie
>
> Thanks
>
>
>     On 6/5/19 7:33 AM, Vitaly Davidovich wrote:
>     > Hi all,
>     >
>     > I'm looking at a Java 11 (11.0.3) application and observing a
>     *lot* more
>     > safepoint cleanup operations than on the latest Java 8 VM.  I
>     was hoping
>     > someone could shed some light on this, and perhaps suggest a way
>     to get
>     > more information about the nature of the cleanup.
>     >
>     > The guaranteed safepoint poll timer fires every (by default) 1
>     sec, which
>     > is no different from 8.  However, as mentioned, it looks like 11
>     has work
>     > to do during a poll a lot more frequently. Unfortunately, the
>     ULF logging
>     > that I have doesn't tell me the precise nature of the cleanup:
>     > [... timestamp ...][info ][safepoint ] Entering safepoint
>     region: Cleanup
>     > [... timestamp ...][info ][safepoint ] Leaving safepoint region
>     >
>     > The "Cleanup", unfortunately, appears to be the generic
>     > vm_operation_name().  But I suspect it's one of the tasks listed
>     in the
>     > SafepointCleanupTasks enum:
>     >
>     https://github.com/openjdk/jdk11u/blob/737d8437886ad97c6ed21a25b9911c10b3886f61/src/hotspot/share/runtime/safepoint.hpp#L80
>     >
>     > My guess would be it's SAFEPOINT_CLEANUP_STRING_TABLE_REHASH
>     because tiered
>     > compilation is disabled, ParallelGC is being used, and biased
>     locking is
>     > disabled; all of this is the same as on Java 8.  Or might this
>     be something
>     > else? Presumably it's something "new" in Java 11 that triggers
>     inside
>     >
>     https://github.com/openjdk/jdk11u/blob/737d8437886ad97c6ed21a25b9911c10b3886f61/src/hotspot/share/runtime/safepoint.cpp#L644
>     >
>     > Does anyone have ideas on pinpointing this further? How do I get the
>     > precise cleanup operation to show up in the log?
>     >
>     > Thanks
>


More information about the hotspot-runtime-dev mailing list