[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" &lt;<a
          moz-do-not-send="true" \
href="mailto:james.graham@oracle.com">james.graham@oracle.com</a>&gt;  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