RFR(xs): 8150619: Improve thread based logging introduced with 8149036
Marcus Larsson
marcus.larsson at oracle.com
Mon Feb 29 09:22:24 UTC 2016
On 02/29/2016 09:39 AM, David Holmes wrote:
> Hi Thomas,
>
> On 29/02/2016 6:26 PM, Thomas Stüfe wrote:
>> Hi David,
>>
>> New Version:
>> http://cr.openjdk.java.net/~stuefe/webrevs/8150619-addon-to-thread-logging/webrev.01/webrev/index.html
>>
>
> Looks fine - thanks. If there are no more comments/changes I'll
> sponsor this in the morning.
>
>> See comments inline.
>
> One follow up below ...
>
>> On Mon, Feb 29, 2016 at 6:55 AM, David Holmes <david.holmes at oracle.com
>> <mailto:david.holmes at oracle.com>> wrote:
>>
>> Hi Thomas,
>>
>>
>>
>> General: ensure copyright years are updated - somehow some got
>> missed in the push of 8149036.
>>
>>
>> I fixed all copyright years in the file headers. It would be nice if
>> jcheck would check this automatically.
>>
>> ---
>>
>> os_solaris.cpp
>>
>> The indent is still not right here:
>>
>> 893 static char* describe_thr_create_attributes(char* buf, size_t
>> buflen,
>> 894 size_t stacksize, long
>> flags) {
>>
>> size_t should line up with the 'c' in (char*
>>
>> Ditto for os_windows.cpp
>>
>>
>> Okay, I fixed that. Sorry, I did not understand the indentation rules
>> before.
>>
>> ---
>>
>> test/runtime/logging/ThreadLoggingTest.java
>>
>> 2 * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All
>> rights reserved.
>>
>> This is new test so only a single copyright year should be present.
>>
>>
>> Fixed.
>>
>> You have this:
>>
>> 54 output.shouldContain("stack guard pages");
>> 55 output.shouldContain("stack guard pages");
>>
>> but I think the intent was:
>>
>> output.shouldContain("stack guard pages activated");
>> output.shouldContain("stack guard pages removed");
>>
>>
>> Changed to one line of "output.shouldContain("stack guard pages");".
>> This matches both cases.
>>
>> 68 pb =
>> ProcessTools.createJavaProcessBuilder("-Xlog:thread*", "-version");
>>
>> Okay I'm confused - I thought the whole point of using os+thread
>> here was that you had to enable os _and_ thread level logging ???
>> Else why bother using the two? I would not have expected the above
>> to work! :(
>>
>>
>> No, the logging line is just tagged with both keywords. As far as I
>> understand multiple tags in UL there is no way to specify conditions
>> like "&&" or "||" - you just tag them - and specifying rules happens on
>> the command line with "os+thread" or "os,thread". So all of this: "os*",
>> "thread*", "os+thread" should produce an output, the last one will stop
>> producing output as soon as someone adds a third tag to the logging
>> calls.
>
> I thought "os,thread" meant os _and_ thread not os _or_ thread. Having
> "thread*" enable this particular logging is very unintuitive to me -
> though "*thread" might make some sense.
It does mean os and thread. The order of tags is irrelevant when
combined, they're just tag sets. Using wildcard matches *at least* the
tags requested, but will also enable messages with additional tags (in
this case, os).
Marcus
>
> Thanks,
> David
> -----
>
>> Note that I added the "thread" keyword because Marcus requested this:
>> http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2016-February/018154.html
>>
>>
>> But I simplified the test to test once for "os+thread" instead of each
>> tag separately. Note that with this change, the test will have to be
>> modified if someone adds a third tag.
>>
>>
>> FYI the test passed on our JPRT system.
>>
>>
>> Great, thanks.
>>
>> Thank you,
>>
>> Thomas
>>
>> Thanks,
>> David
>>
>>
>> Thanks & Kind Regards, Thomas
>>
>>
More information about the hotspot-runtime-dev
mailing list