RFR (S) 8231410: Shenandoah: clone barrier should use base pointer

Roman Kennke rkennke at redhat.com
Wed Sep 25 12:13:59 UTC 2019


I guess it's more about not touching headers. Ultimately it's a little 
bit of overkill, but I am suspicious of clone() because I noticed some 
benchmarks make heavy use of it. The runtime is only touched on >32 or 
unknown numbers of fields though. Anyhow, I think it doesn't hurt to 
touch less memory while copying, especially because the compiled 
setup-code computes all those interior pointers and counts for us 
already anyway.

I removed printing, fixed the signatures and also added include for 
copy.hpp:

http://cr.openjdk.java.net/~rkennke/JDK-8231410/webrev.04/

Running full test suites. Ok, given passing tests?

Roman

> On 9/25/19 1:53 PM, Roman Kennke wrote:
>> I'd suggest passing the interior ptrs and length too, and copy only the payload (avoids touching the
>> src-size and src/dst headers):
>>
>> http://cr.openjdk.java.net/~rkennke/JDK-8231410/webrev.03/
> 
> Ok, fine. I don't see the fault in touching oop->size(), but whatever.
> 
> Please match argument names in declaration and definition of clone_barrier. Also, stray printing.
> 


More information about the shenandoah-dev mailing list