[9] RFR (XS): 8157560: Reserve space for allocation prefetch only in builds that support allocation prefetching

Zoltán Majó zoltan.majo at oracle.com
Tue May 24 10:13:53 UTC 2016


Hi Ed,


thank you for the feedback!

On 05/24/2016 10:59 AM, Edward Nevill wrote:
> Hi Zoltán,
>
> On Mon, 2016-05-23 at 13:00 +0200, Zoltán Majó wrote:
>> Hi,
>>
>>
>> please review the path for 8157560.
>>
>> https://bugs.openjdk.java.net/browse/JDK-8157560
>>
>> Problem: Every thread-local allocation buffer (TLAB) contains a reserved
>> area to accommodate allocation prefetches (i.e., to make sure that
>> instructions performing allocation prefetch do not cause faults). The
>> reserved area is at the end of the TLAB.
> On certain architectures (eg aarch64) prefetch will not cause faults. On
> these allocating the extra space is redundant.

yes, that is true. As far as I'm aware, faulting instructions are 
currently generated only on SPARC (with the combination 
-XX:AllocatePrefetchInstr=1 -XX:AllocatePrefetchStyle=3)

> Is it possible to have this predicated on a pd_ variable (eg
> AllocateExtraTLAB which can be true for those arches that require it and
> false for those that don't) rather than having it just conditionalised
> on COMPILER2.

I agree. Making the allocation of the reserved region dependent on a 
more precise condition is certainly a good idea. But maybe we don't need 
to introduce a new flag for that.

An appropriate condition would probably be:

if (Complevel_highest_tier == CompLevel_full_optimization &&
    AllocatePrefetchStyle == 3 && AllocatePrefetchInstr == 1)

What do you (and others) think?

Thanks,


Zoltan

>
> All the best,
> Ed.
>
>



More information about the hotspot-compiler-dev mailing list