RFR: 8267952: async logging supports to dynamically change tags and decorators [v4]

David Holmes david.holmes at oracle.com
Fri Jun 18 06:12:20 UTC 2021


On 18/06/2021 12:00 pm, David Holmes wrote:
> Hi Xin,
> 
> On 18/06/2021 9:29 am, Xin Liu wrote:
>>> Support dynamic reconfiguration for async logging. 2 unittests are 
>>> provided.
>>> The regression test discovers a race condition in LogTagSet::log() 
>>> even with
>>> synchronous logging. It's not MT-safe if context switch happens 
>>> between the
>>> creation of LogDecorations  and LogOutputList::Iterator. fixed.
>>
>> Xin Liu has updated the pull request incrementally with one additional 
>> commit since the last revision:
>>
>>    Use Atomic::load/store for decorators.
>>    This patch also installed a sanity check which will assert that
>>    LogOutput::_decorators is subset of LogDecocrations. It will disclose
>>    more information if the assertion fails.
> 
> I'm putting these latest changes through tier6 and 7 testing - but there 
> is a big backlog at the moment so I don't know when I will get results.

Not complete yet but the asynclogTest failed again:

- one crash with the SEGV in flockfile
- one crash with assert(bitmask == _decorators._decorators) failed: 
LogOutput: 4095 decorations: 0 message = ConcurrentLogsite 0 emits a log

David
-----

> Looking at the code I still find it very difficult to see what actions 
> can happen concurrently and what mechanism ensure correct concurrent 
> actions. The wait_until_no_readers() logic doesn't make sense to me as I 
> can't see what stops the number of readers from increasing the moment 
> after it was read as zero! The relationships between all the different 
> objects is far from clear to me.
> 
> David
> -----
> 
>> -------------
>>
>> Changes:
>>    - all: https://git.openjdk.java.net/jdk/pull/4408/files
>>    - new: 
>> https://git.openjdk.java.net/jdk/pull/4408/files/4d2de713..f279f263
>>
>> Webrevs:
>>   - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4408&range=03
>>   - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4408&range=02-03
>>
>>    Stats: 85 lines in 8 files changed: 71 ins; 5 del; 9 mod
>>    Patch: https://git.openjdk.java.net/jdk/pull/4408.diff
>>    Fetch: git fetch https://git.openjdk.java.net/jdk 
>> pull/4408/head:pull/4408
>>
>> PR: https://git.openjdk.java.net/jdk/pull/4408
>>


More information about the hotspot-runtime-dev mailing list