On 2/6/18 12:13 AM, David Holmes wrote:
Hi Coleen,

On 6/02/2018 7:37 AM, coleen.phillim...@oracle.com wrote:
Summary: allow safepoint time to be zero in the test

See bug for more details.

open webrev at http://cr.openjdk.java.net/~coleenp/8174734.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8174734

I guess I'm still surprised that 300 thread dumps can take less than a millisecond! There's always more than one thread running. I did some basic benchmarking and dumpAllStacks() from main takes at least 150us on the Linux box I tested on. I just can't see 300 dumps taking less than 1ms ... though I can see them taking < 10ms if we're measuring time using a coarse clock - where do these times come from?


I think the thread dumps only the actual JavaThread which is not "hidden_from_view".  There are lots of threads but they're all GC and compiler threads when I ran this test.

That aside this change seem unnecessary:

      // Careful with these values.
!     private static final long MIN_VALUE_FOR_PASS = 0;
      private static final long MAX_VALUE_FOR_PASS = Long.MAX_VALUE;

This was another one of the failures modes, so we need this change to make this test more reliable.

this is for the minimum number of safepoints that need to be seen, which I think should still be 1. By allowing 0 here (and for the elapsed time), the test could actually fail to do anything related to safepoints and still pass - and that seems wrong. Or the safepoint stat code could be completely broken and we'd never notice. Basically the test just wants to check that we get reasonable looking statistics from the MBean

Maybe we need to be measuring the time at a higher resolution than milliseconds - though that would be a non-trivial RFE I expect. ?


So, looking at and debugging the runtimeService.cpp code, it appears to be doing the thing that it's supposed to be doing.  I agree that it's not a particularly useful test when changing the times to zero, although I traced through and it does exercise the code, and logging makes it non-zero.

What you're suggesting would be a lot more work.  I guess my work was to get the test off the ProblemList.txt but if you'd prefer doing more work, I'll reassign it and withdraw this RFR.  I thought getting it running without failure is more worth doing than writing a new test for this feature honestly.

thanks,
Coleen


Thanks,
David

Thanks,
Coleen

Reply via email to