RFR: 8338139: {ClassLoading, Memory}MXBean::isVerbose methods are inconsistent with their setVerbose methods [v2]

Daniel D. Daugherty dcubed at openjdk.org
Tue Aug 20 15:53:53 UTC 2024


On Tue, 20 Aug 2024 06:13:18 GMT, Stefan Karlsson <stefank at openjdk.org> wrote:

>> So in this test case:
>>     `-Xlog:gc,gc+init`
>> you have it so that `true` is returned.
>> 
>> With this line of code:
>>  ```
>>    const bool is_gc_exact_match = ts->contains(LogTag::_gc) && ts->ntags() == 1;
>> 
>> I would think that this part is `false`: `ts->ntags() == 1`
>> for the `-Xlog:gc,gc+init` test case so we'll be returning `false`.
>> 
>> What am I missing?
>
> The important part is that `ts` contains one single tag set and that `gc,gc+init` is a string that specifies the two tag sets `gc` and `gc+init`. Also, note that `-Xlog:gc,gc+init` and `-Xlog:gc -Xlog:gc+init` is effectively the same.
> 
> It is also important to understand that the for loop iterates over all tag sets that have been used in the HotSpot code. It is not iterating over the tag sets specified by -Xlog lines.

OK, I get it now. The loop cycles thru the tag set and finds one that is
a singleton and an exact match, i.e., `-Xlog:gc`. With `-Xlog:gc+init`,
the `ts->ntags() == 1` would be `false` because that one is not an
exact match.

I misunderstood the algorithm a bit. Sorry for the noise.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/20628#discussion_r1723555244


More information about the serviceability-dev mailing list