RFR (M) 8249768: Move static oops and NullPointerException oops from Universe into OopStorage
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Tue Jul 21 14:19:18 UTC 2020
On 7/20/20 10:47 PM, David Holmes wrote:
> Hi Coleen,
>
> cc'ing serviceability due to SA changes.
>
> On 21/07/2020 6:53 am, coleen.phillimore at oracle.com wrote:
>> Summary: Move static oops into OopStorage and make NPE oops an
>> objArrayOop.
>>
>> I've broken up moving oops in Universe to OopStorage into several
>> parts. This change moves the global static oops. These OopHandles
>> are not released.
>
> Overall looks good. But two things ...
>
> 1. naming
>
> ! // preallocated error objects (no backtrace)
> ! static OopHandle _out_of_memory_error;
>
> // array of preallocated error objects with backtrace
> ! static OopHandle _preallocated_out_of_memory_error_array;
>
> Both of these are pre-allocated arrays of OopHandles, differing only
> in whether the underlying OOME has a backtrace or not. I find the
> newly introduced _out_of_memory_error unclear in that regard. At a
> minimum could _out_of_memory_error become _out_of_memory_errors ? But
> ideally can we name these two arrays in a more distinguishable way?
I put this code in functions next to each other because it was
confusing. The _out_of_memory_error array is really preallocated
throwables, that are used to fill in the message for
preallocated_out_of_memory_errors if there are enough of the latter left.
I could rename _out_of_memory_error => _out_of_memory_error_throwables ?
>
> 2. SA
>
> You've simply deleted all the SA/vmstructs code that referenced the
> oops that are no longer present. Does the SA not care about these
> things and need access to them? (I don't know hence cc to
> serviceability folk.)
Yes, the SA code was never used, so I deleted it. SA might need in oop
inspection to add walking Universe::vm_global() OopStorage area to find
where oops come from if there's an error but there doesn't seem to be
any other reason for SA to use these oops.
Thanks,
Coleen
>
> Thanks,
> David
> -----
>
>> This has been tested with tier1-3 and on also remote-build -b
>> linux-arm32,linux-ppc64le-debug,linux-s390x-debug,linux-x64-zero.
>>
>> open webrev at
>> http://cr.openjdk.java.net/~coleenp/2020/8249768.01/webrev
>> bug link https://bugs.openjdk.java.net/browse/JDK-8249768
>>
>> Thanks,
>> Coleen
More information about the serviceability-dev
mailing list