RFR: 8259067: bootclasspath append takes out object lock [v3]
David Holmes
dholmes at openjdk.java.net
Wed Jan 6 22:11:56 UTC 2021
On Wed, 6 Jan 2021 00:18:19 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> See CR for details.
>> I made the classpath append list lock-free. Calling experts in Atomic operations...
>> Tested with tier1-6.
>> Thanks,
>> Coleen
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>
> Move locking into function where exclusive access is needed.
Hi Coleen,
Just a quick skim, but I think you need acquire/release for the lock-free path.
Thanks,
David
src/hotspot/share/classfile/classLoader.cpp line 837:
> 835: _last_append_entry = new_entry;
> 836: assert(first_append_entry() == NULL, "boot loader's append class path entry list not empty");
> 837: Atomic::store(&_first_append_entry_list, new_entry);
This should probably be `OrderAccess::release_store`.
src/hotspot/share/classfile/classLoader.hpp line 220:
> 218: static ClassPathEntry* volatile _first_append_entry_list;
> 219: static ClassPathEntry* first_append_entry() {
> 220: return Atomic::load(&_first_append_entry_list);
This should probably be a load_acquire.
-------------
Changes requested by dholmes (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/1935
More information about the serviceability-dev
mailing list