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