RFR(s): 8234086: VM operation can be simplified
Robbin Ehn
robbin.ehn at oracle.com
Tue Nov 19 13:51:54 UTC 2019
Hi David, thanks for having a look.
On 11/19/19 2:27 PM, David Holmes wrote:
> Hi Robbin,
>
> On 19/11/2019 9:05 pm, Robbin Ehn wrote:
>> Hi all, please review.
>
> Preliminary comments ... so ...
>
> +class VM_Operation : public StackObj {
> public:
> enum Mode {
> _safepoint, // blocking, safepoint, vm_op C-heap allocated
> - _no_safepoint, // blocking, no safepoint, vm_op C-Heap allocated
> - _concurrent, // non-blocking, no safepoint, vm_op C-Heap allocated
> - _async_safepoint // non-blocking, safepoint, vm_op C-Heap allocated
> + _no_safepoint // blocking, no safepoint, vm_op C-Heap allocated
> };
>
>
> You are basically getting rid of concurrent and async_safepoint VM op
> capability. Okay. But you're also making all VM ops StackObj so all those "VM op
> C-heap allocated" comments are no longer correct. Also many of the comments
> around the VM ops you have changed from async to sync,and from C-heap to
> stackobj, are also no longer correct.
>
> Please update.
Not sure if I found all:
http://cr.openjdk.java.net/~rehn/8234086/v2/inc/webrev/index.html
http://cr.openjdk.java.net/~rehn/8234086/v2/full/webrev/index.html
Thanks, Robbin
>
> Thanks,
> David
> -----
>
>> CMS was the last real user of the more advantage features of VM operation.
>> VM operation can be simplified to always be an stack object and thus either be
>> of safepoint or no safepoint type.
>>
>> VM_EnableBiasedLocking is executed once by watcher thread, if needed (default
>> not used). Making it synchrone doesn't matter.
>> VM_ThreadStop is executed by a JavaThread, that thread should stop for the
>> safepoint anyways, no real point in not stopping direct.
>> VM_ScavengeMonitors is only used to trigger a safepoint cleanup, the VM op is
>> not needed. Arguably this thread should actually stop here, since we are about
>> to safepoint.
>>
>> There is also a small cleanup in vmThread.cpp where an unused method is removed.
>> And the extra safepoint is removed:
>> "// We want to make sure that we get to a safepoint regularly"
>> No we don't :)
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8234086
>> Change-set:
>> http://cr.openjdk.java.net/~rehn/8234086/v1/webrev/index.html
>>
>> Tested scavenge manually, passes t1-2.
>>
>> Thanks, Robbin
More information about the hotspot-runtime-dev
mailing list