RFR: Adapt upstream object pinning API
Zhengyu Gu
zgu at redhat.com
Wed Apr 4 18:07:20 UTC 2018
>>>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/pin_interface/webrev.00/
>>>
>>> *) The changeset contains JDK-8200429 only, make sure you are pushing the correct changeset:
>>> http://cr.openjdk.java.net/~zgu/shenandoah/pin_interface/webrev.00/shenandoah-jdk10.changeset
>>
>> Yes, we need this one for new API. The patch is from upstream jdk repo, but did not apply cleanly.
>
> I was saying that the webrev had generated the changeset that contains only JDK-8200429. So, be
> careful when pushing stuff, because maybe the repo is not the state you want it to be.
Ah. JDK-8200429 is pretty isolated. I think we are good here.
>
>>>
>>> *) Since you are renaming the RT stubs, should you also rename the MacroAssembler entries? Does it
>>> do something special for arrays, or is it just the stub for the call to
>>> SharedRuntime::{pin|unpin}_object?
>>>
>>> MacroAssembler::pin_critical_native_array
>>> MacroAssembler::unpin_critical_native_array
>>
>> No. SharedRuntime::{pin|unpin}_object are generic. MacroAssembler::pin/unpin_critical_native_array
>> generate code to make RT calls for array arguments.
>
> Right. But is there anything special about MacroAssembler::pin/unpin_critical_native_array so that
> we need to call them *_array? If not, we should just call them pin/unpin_object, regardless where
> they are being called from. This would help to employ these stubs for future use cases.
I see.
However, this method is not that generic, it follows
unpack_array_argument(), uses rax as temporary register, and does not
support all object sizes.
Thanks,
-Zhengyu
>
> -Aleksey
>
More information about the shenandoah-dev
mailing list