RFR: 8079408: Reimplement TraceClassLoading, TraceClassUnloading, and TraceClassLoaderData with Unified Logging.
Ioi Lam
ioi.lam at oracle.com
Thu Jan 28 23:07:00 UTC 2016
Hi Max,
It looks really good now. Just a minor nit for classFileParser.cpp and
systemDictionary.cpp, add the comment suggested by David:
1305 if (log_is_enabled(Info, classload)) {
1306 ik()->print_loading_log(LogLevel::Info, loader_data, NULL);
1307 }
// No 'else' here as logging levels are not mutually exclusive
1308 if (log_is_enabled(Debug, classload)) {
1309 ik()->print_loading_log(LogLevel::Debug, loader_data, NULL);
1310 }
If there are no other changes, you don't need to post new webrev.
Thanks
- Ioi
On 1/28/16 12:15 PM, Coleen Phillimore wrote:
>
> Yes, this test looks really good. Thanks Ioi for figuring out the
> vagaries of jtreg.
>
> Coleen
>
> On 1/28/16 2:29 PM, Max Ockner wrote:
>> Forwarded private discussion with Ioi about changing the test to use
>> ClassUnloadCommon.
>>
>> Hopefully nearing the end:
>>
>> Webrev: http://cr.openjdk.java.net/~mockner/classload.08/
>>
>> -------- Original Message --------
>> Subject: Re: RFR: 8079408: Reimplement TraceClassLoading,
>> TraceClassUnloading, and TraceClassLoaderData with Unified Logging.
>> Date: Thu, 28 Jan 2016 10:57:15 -0800
>> From: Ioi Lam <ioi.lam at oracle.com>
>> To: Max Ockner <max.ockner at oracle.com>
>>
>>
>>
>> Hi Max,
>>
>> Thanks for doing this. Also, I sent the e-mail to you personally, so
>> you may want to post the new version in the open list for record
>> purpose.
>>
>> Thanks
>> - Ioi
>>
>> On 1/28/16 8:11 AM, Max Ockner wrote:
>>> Ioi,
>>> I have replaced my test with this test that you have given me (thank
>>> you!)
>>> I also have removed the commented out section which used to test for
>>> "making nmethod ...", and I have added the comment that you
>>> suggested at the top of ClassUnloadCommon.java
>>> Thanks,
>>> Max
>>> On 1/27/2016 7:13 PM, Ioi Lam wrote:
>>>>
>>>>
>>>> On 1/27/16 12:51 PM, Max Ockner wrote:
>>>>> Though Ioi suggested I change my new test, I have not done that. I
>>>>> was recommended to copy from runtime/ClassUnload/UnloadTest.java
>>>>> instead of rolling my own test for class unloading. I mentioned
>>>>> that it was tricky to make the new test work, but it was tricky
>>>>> because I was trying to copy from UnloadTest.java. This test
>>>>> refers to a class "test.Empty" from a "classes" library, but the
>>>>> new test has a processBuilder which I think does not play nicely
>>>>> with the class path for "test.Empty". In the end it was much
>>>>> easier to hardcode the entire test into one place than to follow
>>>>> UnloadTest.java and refer to extra libraries.
>>>>>
>>>>
>>>> Hi Max,
>>>>
>>>> I've written a version of ClassLoadUnloadTest.java using
>>>> ClassUnloadCommon. The main trick is here:
>>>>
>>>> Collections.addAll(argsList, "-Dtest.classes=" +
>>>> System.getProperty("test.classes","."));
>>>>
>>>> That's because of this line in ClassUnloadCommon:
>>>>
>>>> return new URLClassLoader(new URL[] {
>>>> Paths.get(System.getProperty("test.classes",".") +
>>>> File.separatorChar + "classes").toUri().toURL(),
>>>> }, null);
>>>>
>>>> When Jtreg launches a sub-process, it strips off all the Java
>>>> system properties, so you need to add the "-D" in the command-line.
>>>>
>>>> I also disabled the test related to "making nmethod ...
>>>> unloadable". As Rachel found out in JDK-8146137, the compiler is
>>>> unpredictable. Even if you invoke a method 10001 times, there's no
>>>> guaranteed that it will always be compiled. Since this is not an
>>>> 'easy-to-test' feature, we should just skip it.
>>>>
>>>> I would also suggest adding this to the header of
>>>> ClassUnloadCommon.java
>>>>
>>>> /*
>>>> * To use ClassUnloadCommon from a sub-process, see
>>>> hotspot/test/runtime/logging/ClassLoadUnloadTest.java
>>>> * for an example.
>>>> */
>>>>
>>>> What do you think?
>>>> - Ioi
>>>
>>
>>
>>
>
More information about the hotspot-runtime-dev
mailing list