How to exercise the GC notification code in gcNotifier.cpp
Mandy Chung
mandy.chung at oracle.com
Thu Aug 4 18:08:07 PDT 2011
On 8/4/11 3:12 PM, John Cuthbertson wrote:
> Hi Everyone,
>
> After investigating an issue that was reported while running a fairly
> substantial application, I believe I have found naked oop in the GC
> notification code which I think is the cause of the problem The oop in
> question is the muKlass oop in createGCInfo in gcNotifier.cpp. This
> code is executed by the ServiceThread as part of the sendNotification
> routine which pulls items from some request queue. The items on this
> queue seem to be added as a result of GC end events being pushed by
> the MemoryManagerService if the routine
> GCMemoryManager::is_notification_enabled() returns true. This field is
> set to true by the routine jmm_SetGCNotificationEnabled in
> management.cpp. Can anyone tell me how I can explicitly exercise this
> code? I have tried some things in jconsole and jvisualvm but have so
> far been unsuccessful.
>
You can use the unit test:
http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/9b8c96f96a0f/test/com/sun/management/GarbageCollectorMXBean/GarbageCollectionNotificationTest.java
To enable it, it has to add a JMX notification listener (the call to
mbs.addNotificationListener method).
This is the VM support for the new API added in JDK 7:
http://download.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/GarbageCollectionNotificationInfo.html
Mandy
> Thanks,
>
> JohnC
More information about the hotspot-runtime-dev
mailing list