[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-2d-dev
Subject: Re: [OpenJDK 2D-Dev] RFR 8144446: Automate the Marlin crash test
From: Phil Race <philip.race () oracle ! com>
Date: 2015-12-10 23:18:15
Message-ID: 566A0837.4080703 () oracle ! com
[Download RAW message or body]
+1 on on the v3 webrev ..
-phil.
On 12/10/2015 02:51 PM, Laurent Bourgès wrote:
>
> Excellent !
>
> It seems to me that my bug sprint on Marlin is done except the new one
> created as a follow-up.
>
> Please push them all !
>
> I will now work on other improvements:
> - Png compression (in progress)
> - handling NaN / huge coords in Marlin
>
> Thanks for all reviews,
>
> Cheers,
> Laurent
>
> Le 10 déc. 2015 23:26, "Jim Graham" <james.graham@oracle.com
> <mailto:james.graham@oracle.com>> a écrit :
>
> Looks good...
>
> I ran it both ways and got similar run times...
>
> ...jim
>
> On 12/10/15 1:14 PM, Laurent Bourgès wrote:
>
> Hi Jim,
>
> Here is the updated webrev:
> http://cr.openjdk.java.net/~lbourges/marlin/marlin-8144446.3/
> <http://cr.openjdk.java.net/%7Elbourges/marlin/marlin-8144446.3/>
>
> The fix looks correct, but one thing I would tend to do for
> robustness is that in an error case, rather than duplicate
> the logic
> that was skipped (which can get out of date if we later
> change how
> the bounds*Y variables are calculated), I would just
> hardcode the
> bounds*Y variables to the worst case min/max so that we do a
> complete fill on the variables. For error cases it is less
> interesting to optimize out every memory store and more
> interesting
> to make sure that we robustly restore the state. Another
> option
> would be to move the bounds logic to a separate function
> that is
> called in both the error and the success cases?
>
>
> Fixed: I agree it is better to clear completely bucket arrays.
>
> For the test, you can have multiple test tags and include
> an @ignore
> so that the primary tests are run every time and the ones
> after the
> ignore are only run if someone runs with "-ignore:run".
> That makes
> them runnable from the command line without having to edit
> the test:
>
> @run main/othervm -mx512m CrashTest
> @ignore tests that take a long time
> @run main/othervm -mx512m CrashTest -slow
>
> The first line would be run in all cases, the second line
> would only
> be run if they specify "-ignore:run" on the command line.
>
>
> Fixed: I adopted your approach and it works well:
>
> ----------messages:(3/129)----------
> command: main -mx512m CrashTest
> reason: User specified action: run main/othervm -mx512m CrashTest
> elapsed time (seconds): 8.318
>
> ----------messages:(3/150)----------
> command: main -ms4g -mx4g CrashTest -slow
> reason: User specified action: run main/othervm -ms4g -mx4g
> CrashTest -slow
> elapsed time (seconds): 49.777
>
>
> The only down side is that the tests after the @ignore are
> shown on
> the final statistics as "errors" which seems kind of
> melodramatic,
> but that's why the "-ignore:quiet" option exists. There
> are quite a
> few tests in the java hierarchy with an @ignore tag,
> though, often
> talking about extreme memory requirements so this is
> nothing new.
> This would be the first in the sun/java2d hierarchy, though...
>
>
> I enabled also the huge image test that consumes ~5Gb and it
> passes on
> my laptop (16Gb).
>
> Cheers,
> Laurent
>
[Attachment #3 (text/html)]
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix"><br>
+1 on on the v3 webrev ..<br>
<br>
-phil.<br>
<br>
<br>
On 12/10/2015 02:51 PM, Laurent Bourgès wrote:<br>
</div>
<blockquote
cite="mid:CAKjRUT6EZw=LENJ0cCwU=iijYkRYaXFo6x1HpL41Ukhr7n3Jbw@mail.gmail.com"
type="cite">
<p dir="ltr">Excellent !</p>
<p dir="ltr">It seems to me that my bug sprint on Marlin is done
except the new one created as a follow-up.</p>
<p dir="ltr">Please push them all !</p>
<p dir="ltr">I will now work on other improvements: <br>
- Png compression (in progress)<br>
- handling NaN / huge coords in Marlin</p>
<p dir="ltr">Thanks for all reviews,</p>
<p dir="ltr">Cheers,<br>
Laurent</p>
<div class="gmail_quote">Le 10 déc. 2015 23:26, "Jim Graham" <<a
moz-do-not-send="true" \
href="mailto:james.graham@oracle.com">james.graham@oracle.com</a>> a écrit :<br \
type="attribution"> <blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">Looks
good...<br>
<br>
I ran it both ways and got similar run times...<br>
<br>
...jim<br>
<br>
On 12/10/15 1:14 PM, Laurent Bourgès wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Jim,<br>
<br>
Here is the updated webrev:<br>
<a moz-do-not-send="true"
href="http://cr.openjdk.java.net/%7Elbourges/marlin/marlin-8144446.3/"
rel="noreferrer" \
target="_blank">http://cr.openjdk.java.net/~lbourges/marlin/marlin-8144446.3/</a><br> \
<br> The fix looks correct, but one thing I would tend to do
for<br>
robustness is that in an error case, rather than
duplicate the logic<br>
that was skipped (which can get out of date if we later
change how<br>
the bounds*Y variables are calculated), I would just
hardcode the<br>
bounds*Y variables to the worst case min/max so that we
do a<br>
complete fill on the variables. For error cases it is
less<br>
interesting to optimize out every memory store and more
interesting<br>
to make sure that we robustly restore the state.
Another option<br>
would be to move the bounds logic to a separate function
that is<br>
called in both the error and the success cases?<br>
<br>
<br>
Fixed: I agree it is better to clear completely bucket
arrays.<br>
<br>
For the test, you can have multiple test tags and
include an @ignore<br>
so that the primary tests are run every time and the
ones after the<br>
ignore are only run if someone runs with "-ignore:run".
That makes<br>
them runnable from the command line without having to
edit the test:<br>
<br>
@run main/othervm -mx512m CrashTest<br>
@ignore tests that take a long time<br>
@run main/othervm -mx512m CrashTest -slow<br>
<br>
The first line would be run in all cases, the second
line would only<br>
be run if they specify "-ignore:run" on the command
line.<br>
<br>
<br>
Fixed: I adopted your approach and it works well:<br>
<br>
----------messages:(3/129)----------<br>
command: main -mx512m CrashTest<br>
reason: User specified action: run main/othervm -mx512m
CrashTest<br>
elapsed time (seconds): 8.318<br>
<br>
----------messages:(3/150)----------<br>
command: main -ms4g -mx4g CrashTest -slow<br>
reason: User specified action: run main/othervm -ms4g -mx4g
CrashTest -slow<br>
elapsed time (seconds): 49.777<br>
<br>
<br>
The only down side is that the tests after the @ignore
are shown on<br>
the final statistics as "errors" which seems kind of
melodramatic,<br>
but that's why the "-ignore:quiet" option exists. There
are quite a<br>
few tests in the java hierarchy with an @ignore tag,
though, often<br>
talking about extreme memory requirements so this is
nothing new.<br>
This would be the first in the sun/java2d hierarchy,
though...<br>
<br>
<br>
I enabled also the huge image test that consumes ~5Gb and it
passes on<br>
my laptop (16Gb).<br>
<br>
Cheers,<br>
Laurent<br>
</blockquote>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic