RFR (XXS): 8079156: 32 bit Java 9-fastdebug hit assertion in client mode with StackShadowPages flag value from 32 to 50
gerard ziemski
gerard.ziemski at oracle.com
Tue Jul 14 15:00:49 UTC 2015
On 07/13/2015 07:42 PM, Vladimir Kozlov wrote:
> On David's question. The size of code is rounded to 64 bytes (minimum
> allocation unit in CodeCache). So you don't need to rounding.
>
> We do calculate additional padding on sparc taking into account
> instructions sizes and number of StackShadowPages pages (which banging
> code is looping on):
>
> #ifdef ASSERT
> if (UseStackBanging) {
> pad += StackShadowPages*16 + 32;
> }
> #endif
>
> But on x86 we have variable instructions size so it is not easy
> pre-calculate it.
> So we simple set big number and if we hit the assert in codeBuffer.hpp
> we increase it:
It sounds like we had to do this before.
Why does CodeBuffer require the space requirements in advance? Wouldn't
it be more robust to leave it up to the CodeBuffer to figure out the
exact memory size needed and avoid situations like this? It seems
fragile to have to guess how big we need it and hope we don't hit the
assert with all the bells and whistles turned on.
cheers
More information about the hotspot-dev
mailing list