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

Albert Noll albert.noll at oracle.com
Thu Jul 4 05:13:24 PDT 2013


Hi,

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

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 
> <mailto: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 thoughJ
>> Thanks,
>> Christian
>> *From:*Albert Noll [mailto:albert.noll at oracle.com <http://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/ 
>> <http://cr.openjdk.java.net/%7Eanoll/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
>>     <mailto: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/
>>         <http://cr.openjdk.java.net/%7Eanoll/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>
>>
>>                 [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/><http://cr.openjdk  <http://cr.openjdk.java.net/%7Eanoll/8015635/webrev.03/>
>>
>>                 .java.net/%7Eanoll/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: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>
>>
>>                   
>>
>>                      [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:To:hotspot-compiler-dev at openjdk.java.net>   
>>
>>                 <mailto: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/>  <http://cr.openjdk.java.net/%7Eanoll/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/>  <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/>  <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/>  <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/>  <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/20130704/e53e518a/attachment-0001.html 


More information about the hotspot-compiler-dev mailing list