TLAB Refills for x86

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


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?

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 mailing list