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/
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