RFR(M): 8190430 [MVT] Fixing GC support for Thread-local value buffers
bdelsart work
bdelsart.work at gmail.com
Thu Nov 23 09:48:25 UTC 2017
Hi Fred,
One small detail (no worth a rereview), this is no longer necessary in
valueKlass.cpp;
39 #if INCLUDE_ALL_GCS 40 #include
"gc/g1/g1SATBCardTableModRefBS.hpp" 41 #endif // INCLUDE_ALL_GCS
Remaining looks good. Maybe suboptimal but safer for now
I for instance still have strong doubts about the need to enqueue the
mirror for G1 in VTBuffer::allocate_value (since the VTBuffers currently
act exactly like the thread stacks and are parsed only during safepoint).
[ I also had some doubts about the need in vwithfield to systematically
copy in the heap a vtBuffer allocated value 'voop' when stored in a non
flattened field in a 'new_value' since voop is always older than new_value.
However, this is really a design choice. Allowing a non flattened field to
point to an older value in a vtBuffer would require to be more careful for
instance when walking the value or copying it on frame return and may not
be worth the added complexity (particularly for the copy on frame return).
Hence, the proposed design where a non flattened field always points
towards the heap may indeed be better ]
Regards
Bertrand.
--
Freelance - Bertrand Delsart Software Solutions
Remote Research, Development and Troubleshooting
JVM, Real-Time and Concurrency expert
http://www.bdelsart.com
2017-11-22 20:22 GMT+01:00 Frederic Parain <frederic.parain at oracle.com>:
> Here’s an updated webrev with unnecessary GC barriers removed,
> and an assertion added to check the consistency of the mark bits
> of buffered values.
>
> http://cr.openjdk.java.net/~fparain/8190430/webrev.02/index.html
>
> Fred
>
>
> > On Nov 8, 2017, at 14:39, Frederic Parain <frederic.parain at oracle.com>
> wrote:
> >
> > Updated webrev where the memory allocation for the TLVB is changed from
> > on-demand mmap() calls to a reserve/lazy commits mechanism.
> >
> > http://cr.openjdk.java.net/~fparain/8190430/webrev.01/
> >
> > Fred
> >
> >
> >> On Oct 31, 2017, at 13:21, Frederic Parain <frederic.parain at oracle.com>
> wrote:
> >>
> >> Please review this changeset fixing the GC support and other
> >> issues with the Thread-Local Value Buffer:
> >>
> >> http://cr.openjdk.java.net/~fparain/8190430/webrev.00/
> >>
> >> This changeset re-activates the TLVB by default.
> >> The VTBuffer test has been fixed to generate value types
> >> with object references.
> >>
> >> All hotspot_valhalla tests pass.
> >>
> >> Thank you,
> >>
> >> Fred
> >
>
>
More information about the valhalla-dev
mailing list