RFR (XS): 8015635: Crash when specifying very large code cache size

Christian Thalinger christian.thalinger at oracle.com
Mon Jul 8 14:31:02 PDT 2013


On Jul 4, 2013, at 5:13 AM, Albert Noll <albert.noll at oracle.com> wrote:

> Hi,
> 
> do you think the test is fine, or does it need to be reworked?

I'm not sure.  Let's push it for now.  If Christian comes back and says there is a problem we can change it later.

-- Chris

> 
> Best,
> Albert
> 
> On 03.07.2013 00:26, Christian Thalinger wrote:
>> 
>> On Jul 2, 2013, at 2:13 PM, Christian Tornqvist <christian.tornqvist at oracle.com> wrote:
>> 
>>>  
>>>   44     out.shouldHaveExitValue(1);
>>>  
>>> Will throw an exception if the exit value is not 1, this will detect a VM crash (or other abnormal exit).
>> 
>> What if a VM crash would return 1 (for whatever reason)?
>> 
>> -- Chris
>> 
>>> Adding the check for the error message is a good change too though J
>>>  
>>> Thanks,
>>> Christian
>>>  
>>> From: Albert Noll [mailto:albert.noll at oracle.com] 
>>> Sent: den 2 juli 2013 03:04
>>> To: Christian Thalinger
>>> Cc: Christian Tornqvist; 'Vladimir Kozlov'; 'hotspot compiler'
>>> Subject: Re: RFR (XS): 8015635: Crash when specifying very large code cache size
>>>  
>>> Hi Christian,
>>> 
>>> I am not sure either. Does anyone know if there exists a documentation of the testlibrary?
>>> I modified the test such that it checks for (parts of) the error message that is reported if the
>>> ReservedCodeCacheSize is too large. This makes the test more robust.
>>> 
>>> Here is the new webrev:
>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.05/
>>> 
>>> Best,
>>> Albert
>>> 
>>> 
>>> On 02.07.2013 02:51, Christian Thalinger wrote:
>>> I have no idea how this testlibrary works but does the following take care of crashes or does it only check the exit value?
>>>   42     pb = ProcessTools.createJavaProcessBuilder("-XX:ReservedCodeCacheSize=2049m", "-version");
>>>   43     out = new OutputAnalyzer(pb.start());
>>>   44     out.shouldHaveExitValue(1);
>>> -- Chris
>>>  
>>> On Jun 30, 2013, at 9:44 PM, Albert Noll <albert.noll at oracle.com> wrote:
>>> 
>>> 
>>> Hi,
>>> 
>>> thanks for looking at the patch. I updated the patch.
>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.04/
>>> 
>>> Could I have a second review for this?
>>> 
>>> Best,
>>> Albert
>>> 
>>> On 28.06.2013 18:58, Christian Tornqvist wrote:
>>> Hi Vladimir,
>>>  
>>> It's not needed if you simply want jtreg to run your test normally, from the
>>> jtreg tag spec:
>>>  
>>> "DEFAULTS
>>>  
>>> If no @run tags are present in a defining file, a default is assumed
>>> depending
>>> upon the file's filename extension.  For a ".java" file, "@run main <name>"
>>> is
>>> assumed, where <name> is the name of the file without the ".java" suffix."
>>>  
>>> So using '@run main Test' is redundant.
>>>  
>>> Thanks,
>>> Christian
>>>  
>>> -----Original Message-----
>>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] 
>>> Sent: den 28 juni 2013 12:48
>>> To: Christian Tornqvist
>>> Cc: 'Albert Noll'; 'hotspot compiler'
>>> Subject: Re: RFR (XS): 8015635: Crash when specifying very large code cache
>>> size
>>>  
>>> Christian,
>>>  
>>> Why '@run main Test' is not used in these tests?
>>>  
>>> Thanks,
>>> Vladimir
>>>  
>>> On 6/28/13 9:08 AM, Christian Tornqvist wrote:
>>> Hi Albert,
>>>  
>>> You should use '@library /testlibrary' instead of a relative path, 
>>> otherwise the test looks fine. Thanks for rewriting this in java and 
>>> fixing the name of the test J
>>>  
>>> Thanks,
>>>  
>>> Christian
>>>  
>>> *From:*hotspot-compiler-dev-bounces at openjdk.java.net
>>> [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] *On Behalf Of 
>>> *Albert Noll
>>> *Sent:* den 28 juni 2013 11:19
>>> *To:* hotspot compiler
>>> *Subject:* Re: RFR (XS): 8015635: Crash when specifying very large 
>>> code cache size
>>>  
>>> Hi,
>>>  
>>> Christian, thanks for the comment. I implemented the test in Java.
>>> I was not entirely sure how to use @library. The current version works 
>>> on my system.
>>>  
>>>  
>>> Here is the new webrev:
>>> http://cr.openjdk.java.net/~anoll/8015635/webrev.03/<http://cr.openjdk
>>> .java.net/%7Eanoll/8015635/webrev.03/>
>>>  
>>> Best,
>>> Albert
>>>  
>>> On 28.06.2013 10:19, Christian Tornqvist wrote:
>>>  
>>>     Hi Albert,
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Please don't use shell scripts, this can be expressed in java 
>>> which will
>>>  
>>>     work on all platforms. See
>>>  
>>>     
>>> http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/file/221df7e37535/te
>>> st/run
>>>  
>>>     time/CommandLine/UnrecognizedVMOption.java for example on how to 
>>> do this in
>>>  
>>>     java.
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Also, please follow the test naming convention described at:
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     
>>> https://wikis.oracle.com/display/HotSpotInternals/Naming+HotSpot+JTReg
>>> +Tests
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Thanks,
>>>  
>>>  
>>>  
>>>     Christian
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     From:hotspot-compiler-dev-bounces at openjdk.java.net  
>>> <mailto:hotspot-compiler-dev-bounces at openjdk.java.net>
>>>  
>>>     [mailto:hotspot-compiler-dev-bounces at openjdk.java.net] On Behalf 
>>> Of Albert
>>>  
>>>     Noll
>>>  
>>>     Sent: den 28 juni 2013 03:39
>>>  
>>>     To:hotspot-compiler-dev at openjdk.java.net  
>>> <mailto:hotspot-compiler-dev at openjdk.java.net>
>>>  
>>>     Subject: Re: RFR (XS): 8015635: Crash when specifying very large 
>>> code cache
>>>  
>>>     size
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Hi Valdimir,
>>>  
>>>  
>>>  
>>>     thanks again for looking at the code.
>>>  
>>>     I implemented your proposed changes.
>>>  
>>>  
>>>  
>>>     http://cr.openjdk.java.net/~anoll/8015635/webrev.02/
>>>  
>>>     <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.02/>  
>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.02/>
>>>  
>>>  
>>>  
>>>     Best,
>>>  
>>>     Albert
>>>  
>>>  
>>>  
>>>     On 28.06.2013 08:29, Vladimir Kozlov wrote:
>>>  
>>>  
>>>  
>>>     Albert,
>>>  
>>>  
>>>  
>>>     In the test could check the code after each java run? Example 
>>> shows only
>>>  
>>>     logic, not script instructions:
>>>  
>>>  
>>>  
>>>     java 2048m
>>>  
>>>     if $? -ne 0
>>>  
>>>       failed
>>>  
>>>       exit
>>>  
>>>     fi
>>>  
>>>  
>>>  
>>>     java 2049m
>>>  
>>>     if $? -eq 0
>>>  
>>>       failed
>>>  
>>>       exit
>>>  
>>>     fi
>>>  
>>>  
>>>  
>>>     passed
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Thanks,
>>>  
>>>     Vladimir
>>>  
>>>  
>>>  
>>>     On 6/27/13 10:14 PM, Albert Noll wrote:
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Hi,
>>>  
>>>  
>>>  
>>>     Pavel, Vladimir, thanks for looking at the patch. I added a 
>>> regression test
>>>  
>>>     and made the proposed changes in arguments.cpp.
>>>  
>>>  
>>>  
>>>     Here is the new webrev.
>>>  
>>>     http://cr.openjdk.java.net/~anoll/8015635/webrev.01/
>>>  
>>>     <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>  
>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>  
>>>     <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>  
>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.01/>
>>>  
>>>  
>>>  
>>>     Thanks,
>>>  
>>>     Albert
>>>  
>>>  
>>>  
>>>     On 27.06.2013 18:36, Vladimir Kozlov wrote:
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     We don't place 'else' on separate line and remove comment inside 
>>> 'if' body
>>>  
>>>     and change it to:
>>>  
>>>  
>>>  
>>>     } else if (ReservedCodeCacheSize > 2*G) { {
>>>  
>>>        // Code cache size larger than MAXINT is not supported.
>>>  
>>>  
>>>  
>>>     Thanks,
>>>  
>>>     Vladimir
>>>  
>>>  
>>>  
>>>     On 6/27/13 5:01 AM, Albert Noll wrote:
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Hi,
>>>  
>>>  
>>>  
>>>     thanks for reviewing this small patch.
>>>  
>>>  
>>>  
>>>     Best,
>>>  
>>>     Albert
>>>  
>>>  
>>>  
>>>     jbs:https://jbs.oracle.com/bugs/browse/JDK-8015635
>>>  
>>>     webrev:http://cr.openjdk.java.net/~anoll/8015635/webrev/
>>>  
>>>     <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>  
>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>  
>>>     <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>  
>>> <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev/>
>>>  
>>>  
>>>  
>>>     Problem: A code cache size larger than 2G is not supported and 
>>> therefore
>>>  
>>>     results in VM crashes.
>>>  
>>>     Solution: Limit the size of the code cache to at most 2G when 
>>> arguments are
>>>  
>>>     checked. If a larger code cache size is
>>>  
>>>     specified with -XX:ReservedCodeCacheSize=..., the JVM does not 
>>> start and
>>>  
>>>     reports an error.
>>>  
>>>  
>>>  
>>>  
>>>  
>>>     Best,
>>>  
>>>     Albert
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>>>  
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130708/b0d4ad4c/attachment-0001.html 


More information about the hotspot-compiler-dev mailing list