[lworld] RFR: 8255396: [lworld] locking breaks oopDesc is_flatArray/is_nullfreeArray type checks
David Holmes
david.holmes at oracle.com
Tue Oct 27 02:28:58 UTC 2020
Hi Sergey,
Just a note on BiasedLocking. While we put the process in place to allow
for it to be obsoleted in JDK 16 (after disabling by default and
deprecating in 15) we have not yet established that there is a consensus
(in the community) on its removal. We (runtime) need to establish this
one way or the other before the FC date.
Cheers,
David
On 27/10/2020 11:34 am, Sergey Kuksenko wrote:
>
> On 10/26/20 9:53 AM, Sergey Kuksenko wrote:
>> I have a question about the following methods from markWord.hpp:
>>
>> bool is_locked()const {
>> return (mask_bits(value(),lock_mask_in_place) !=unlocked_value);
>> }
>> bool is_unlocked()const {
>> return (mask_bits(value(),biased_lock_mask_in_place) ==unlocked_value);
>> }
>>
>> First of all these methods are not symmetrical.
>> "lock_mask_in_place"==0x011 when "biased_lock_mask_in_place"==0x111.
>
> Sorry, misprint. I mean 0b011 & 0b111
>
>
>>
>> The second. If we invoke is_unlocked() on inline/primitive object we
>> get "false". is_locked() on inline also gives "false".
>> I am not sure if may cause an error, maybe all such checks are
>> preguarded with is_inline_type().
>>
>> The third. Valhalla can't work with BiasedLocking. I think it would be
>> better to remove all usage of BiasedLocking constant in Valhalla to
>> avoid errors. As far as I understand, BiasedLocking has became
>> "obsolete" in jdk16.
>> That means:
>> // When the JDK version reaches 'obsolete_in' limit, the JVM will
>> continue accepting this flag on // the command-line, while issuing a
>> warning and ignoring the flag value.
>>
>> So, now BasedLocking can't be turn on in mainline jdk. To simplify
>> merging, maybe make sense to remove biased locking constants and masks
>> in mainline jdk.
>>
>>
>> On 10/26/20 7:23 AM, David Simms wrote:
>>> Added unlocked test and fallback to klass
>>>
>>> -------------
>>>
>>> Commit messages:
>>> - 8255396: [lworld] locking breaks oopDesc
>>> is_flatArray/is_nullfreeArray type checks
>>>
>>> Changes: https://git.openjdk.java.net/valhalla/pull/238/files
>>> Webrev:
>>> https://webrevs.openjdk.java.net/?repo=valhalla&pr=238&range=00
>>> Issue: https://bugs.openjdk.java.net/browse/JDK-8255396
>>> Stats: 36 lines in 2 files changed: 33 ins; 1 del; 2 mod
>>> Patch: https://git.openjdk.java.net/valhalla/pull/238.diff
>>> Fetch: git fetch https://git.openjdk.java.net/valhalla
>>> pull/238/head:pull/238
>>>
>>> PR: https://git.openjdk.java.net/valhalla/pull/238
More information about the valhalla-dev
mailing list