RFR (M) 8146410: Interpreter functions are declared and defined in the wrong files

Coleen Phillimore coleen.phillimore at oracle.com
Tue Jan 5 18:09:30 UTC 2016

On 1/5/16 1:01 PM, Andrew Haley wrote:
> On 01/05/2016 04:33 PM, Lindenmaier, Goetz wrote:
>> If you are concerned about the TLB pollution, you can
>> load thread->_stack_overflow_limit and compare against that.
>> If you are past that limit, you just touch a yellow page to get the
>> SIGSEGV for the stack overflow.
> Very nice!

yes, that is nice and would be less instructions overall.
>> You touch the thread nearby anyways, so that page should be
>> in the TLB.
>> (There is Thread::stack_overflow_limit_offset()).
> That has to be far better than what we do today.
> Unfortunately, the patch we're discussing removes the locally-defined
> override in which such a change could be made.
> Coleen, is it actually necessary to remove a cpu-specific override
> for this code?  Banging all these pages blows away 20% of the L1 TLB
> entries on a Cortex-A57 and 90% (!) of them on a Cortex-A53.  (At
> least, this is true for 4kbyte pages; with 64k pages it's less of an
> issue.)

Okay, I'll have to copy the function into other CPU implementations but 
it does leave room for changing them so that we don't have to bang all 
of the pages in the stack (the reason was so that we didn't know where 
the top/bottom was to compare against so had to do incremental stack 
banging by page).

> Andrew.

More information about the hotspot-dev mailing list