RFR(xs): 8203455: jcmd: VM.metaspace: print loader name for anonymous CLDs.
thomas.stuefe at gmail.com
Thu May 24 21:25:01 UTC 2018
Thanks for the review Lois!
See comments inline.
On Thu, May 24, 2018 at 10:31 PM, Lois Foltan <lois.foltan at oracle.com> wrote:
> On 5/21/2018 3:42 AM, Thomas Stüfe wrote:
>> Hi all,
>> second attempt, after discussing things with David:
>> The patch is much simpler now. I use
>> ClassLoaderData::class_loader_name() and ::class_loader_class() which
>> should always work and be in accordance with planned work in
> Hi Thomas,
> Looks good, thanks for using ClassLoaderData::class_loader_name()! A couple
> of review comments:
> - src/hotspot/share/memory/metaspace/printCLDMetaspaceInfoClosure.cpp
> line #82 - I do not prefer the use of "<unnamed>", but am more in favor of
> leaving it out and having the message simply read "CLD for instance of
> <loader class name>". Please consider.
Sure - the majority of loaders seem not yet to have names, so this
would remove a lot of "<unnamed>".
> line #95 - would prefer <anonymous class> instead of just <anonymous>.
> According to the comment at line #68, I think you intended that anyways.
anonymous class, loader has name:
5: CLD 0x00007f814c47a7d0 for <anonymous class>, loaded by app
instance of jdk.internal.loader.ClassLoaders$AppClassLoader
anonymous class in <boot>
6: CLD 0x00007f814c474ae0 for <anonymous class>, loaded by <bootstrap>
loader has name and class name:
7: CLD 0x00007f814c3afc60 for app instance of
8: CLD 0x00007f814c1d8570 for <bootstrap>
>> Thanks, Thomas
>> On Sun, May 20, 2018 at 8:49 AM, Thomas Stüfe <thomas.stuefe at gmail.com>
>>> Hi all,
>>> may I please have reviews for this small addition.
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8203455
>>> VM.metaspace show-loaders can be used to display loaders (well, really
>>> CLD instances).
>>> For anonymous CLDs, only "anonymous" is shown. It would be helpful to
>>> show to which loader these CLD are assigned.
>>> "272: ClassLoaderData 0x00007f5ba0538f10 for anonymous class"
>>> After patch:
>>> "268: CLD 0x00007ff0c45738f0 for <anonymous class>, loaded by app,
>>> instance of jdk.internal.loader.ClassLoaders$AppClassLoader"
>>> Notes: this patch has a bit more lines than I liked because I did not
>>> find a singly utility function in ClassloaderData which fit my
>>> purpose. I wanted to see name and class of the associated loader for
>>> both normal and unloading case. ClassloaderData::loader_name() has a
>>> number of shortcomings, I opened
>>> https://bugs.openjdk.java.net/browse/JDK-8203456 as a follow up rfe.
>>> Thank you,
More information about the hotspot-runtime-dev