TLAB Refills for x86
jcbeyler at google.com
Fri Dec 8 05:49:46 UTC 2017
I added a reword of the comment (I could also remove it so let me know):
Let me know if it is better!
On Tue, Dec 5, 2017 at 4:59 AM, Doerr, Martin <martin.doerr at sap.com> wrote:
> Hi Robbin,
> ok. Thanks for the explanation.
> Best regards,
> -----Original Message-----
> From: Robbin Ehn [mailto:robbin.ehn at oracle.com]
> Sent: Dienstag, 5. Dezember 2017 13:52
> To: Doerr, Martin <martin.doerr at sap.com>; Thomas Schatzl <
> thomas.schatzl at oracle.com>; JC Beyler <jcbeyler at google.com>;
> hotspot-dev at openjdk.java.net
> Subject: Re: TLAB Refills for x86
> Hi Martin,
> On 2017-12-05 13:12, Doerr, Martin wrote:
> > Hi,
> > the interpreter change looks good to me (except the comment change).
> > I've taken a look at C1 and C2 compilers.
> > C2 already does it as desired: It either uses TLAB or shared eden
> allocation (if supported).
> > Unfortunately, the C1 implementation in c1_Runtime1_x86/sparc still
> contains a path "try_eden" when TLAB allocation fails. (Also see
> MacroAssembler::tlab_refill). I think this should be adapted as well. Would
> you agree?
> The flag FastTLABRefill will be obsoleted in JDK 11 and we can then start
> removing (after Dec 14) the functionality.
> In 10 we turned FastTLABRefill off by default and deprecated it.
> (FastTLABRefill was only actually on when using non-G1 and for C1 only)
> This will be handled in a separate enhancement 'removing dead code'.
> This (interpreter tlab refills) will not make 10, instead targeted for 11.
> So in 11 we are aiming for a consistence behavior in all (not looked at
> gral) 'compilers'.
> > Best regards,
> > Martin
> > -----Original Message-----
> > From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On
> Behalf Of Thomas Schatzl
> > Sent: Dienstag, 5. Dezember 2017 12:07
> > To: JC Beyler <jcbeyler at google.com>; hotspot-dev at openjdk.java.net
> > Subject: Re: TLAB Refills for x86
> > Hi,
> > On Thu, 2017-11-30 at 13:09 -0800, JC Beyler wrote:
> >> Hi all,
> >> The TLAB and the inline contiguous allocations handling are different
> >> for
> >> each architecture. On certain architectures, TLAB is never actually
> >> never
> >> refilled (ref: https://bugs.openjdk.java.net/browse/JDK-8190862).
> >> The idea behind the implementation for x86 is to separate TLAB usage
> >> to
> >> contiguous allocations in eden space.
> >> Bug: https://bugs.openjdk.java.net/browse/JDK-8191027
> >> WebRev: http://cr.openjdk.java.net/~rasbold/8191027/webrev.02/
> >> Does anyone see any issues with this webrev?
> > I only see a slight issue with the new comment on how it works: the
> > first time I read it, it seemed to me that step 1+2 are inclusive, not
> > exclusive as is implemented (there is step 4 which explains that it is
> > exclusive retroactively). But maybe it's just me.
> > Looks good otherwise.
> > Thomas
More information about the hotspot-dev