RFR: 8267952: async logging supports to dynamically change tags and decorators [v4]
David Holmes
david.holmes at oracle.com
Fri Jun 18 02:00:01 UTC 2021
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.
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