review(XS): 7085279: C1 overflows code buffer with VerifyOops and CompressedOops

Tom Rodriguez tom.rodriguez at oracle.com
Tue Aug 30 18:24:19 PDT 2011


On Aug 30, 2011, at 6:09 PM, Igor Veresov wrote:

> I think it's being taken care of here: 
> 
> static int desired_max_code_buffer_size() {
> #ifndef PPC
> return (int) NMethodSizeLimit; // default 256K or 512K
> #else
> // conditional branches on PPC are restricted to 16 bit signed
> return MIN2((unsigned int)NMethodSizeLimit,32*K);
> #endif
> }

Ah, that's what I'm thinking of.

tom

> 
> igor
> 
> On Tuesday, August 30, 2011 at 5:51 PM, Tom Rodriguez wrote:
> 
>> 
>> On Aug 30, 2011, at 5:19 PM, Igor Veresov wrote:
>> 
>>> This happens during emission of LIR_OpAllocObj. C1 assumes that a LIR instruction will fit into 1K but in this case it's not true because the allocation code is pretty large by itself and oop verfication adds an order of magnitude more of additional code. 
>>> 
>>> I bumped up the size of the code per LIR operation to 2K. And also increased the size of the NMethodSizeLimit to accommodate all the verification code emitted. 
>> 
>> The 2K limit is fine. I have some memory that the NMethodSizeLimit may be set at 32K because of the reach of branches on some platform. I can't remember for sure though.
>> 
>> tom
>> 
>>> 
>>> Webrev: http://cr.openjdk.java.net/~iveresov/7085279/webrev.00/
>>> 
>>> Thanks,
>>> igor
> 
> 



More information about the hotspot-compiler-dev mailing list