TLAB Refills for x86

Doerr, Martin martin.doerr at
Tue Dec 5 12:12:08 UTC 2017


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?

Best regards,

-----Original Message-----
From: hotspot-dev [mailto:hotspot-dev-bounces at] On Behalf Of Thomas Schatzl
Sent: Dienstag, 5. Dezember 2017 12:07
To: JC Beyler <jcbeyler at>; hotspot-dev at
Subject: Re: TLAB Refills for x86


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:
> The idea behind the implementation for x86 is to separate TLAB usage
> to
> contiguous allocations in eden space.
> Bug:
> WebRev:
> 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.


More information about the hotspot-dev mailing list