RFR: 8066122: CollectionUsageThreshold.java times out when run with -XX:+ExplicitGCInvokesConcurrent
michail.chernov at oracle.com
Wed Dec 24 14:42:22 UTC 2014
Please take a look at this fix.
On 22.12.2014 17:21, Michail Chernov wrote:
> Hi Kim,
> About jtreg and options filtering out - I know that Boolean options
> filtering is not bug, it is feature. For example, in case if we define
> -XX:+SomeImportanatOptionForThisTest for testing and this options is
> undefined by VM flags which we define during testing, it causes to
> wrong test result.
> I looked through other tests and found that I was wrong - improvement
> for test failure is more simpler than I thought. Currently I don't
> make any change in testlibrary.
> Suggestid fix is to add -XX:-ExplicitGCInvokesConcurrentto all
> RunUtil.runTestClearGcOpts and RunUtil.runTestKeepGcOpts invocation.
> On 17.12.2014 20:33, Kim Barrett wrote:
>> [This is still not a real review, just kibitzing so far - I’ve looked
>> at the changes, but don’t yet feel I understand the surrounding code
>> well enough to say I’ve reviewed them.]
>> On Dec 17, 2014, at 11:01 AM, Michail Chernov
>> <michail.chernov at oracle.com> wrote:
>>> Test was fixed, now it excludes -XX:+ExplicitGCInvokesConcurrent
>>> option from test run.
>>> Also fixed LowMemoryTest.java - it failed with same reason as
>>> Function getFilteredTestJavaOpts in Util.java was got from hotspot
>>> repo http://hg.openjdk.java.net/jdk9/hs-gc/hotspot/ from
>>> testlibrary, because Util.java in GC and Util.java in Runtime repos
>>> are different. This function can be useful not only for this case.
>>> Simply adding of -XX:-ExplicitGCInvokesConcurrent won't work because
>>> JTREG filtersout it in case if -XX:+ExplicitGCInvokesConcurrent is
>>> defined as VM option.
>> That bit about jtreg filtering out -XX:-ExplicitGCInvokesConcurrent
>> seems backward, at least for a case like this. I wouldn’t have
>> expected global options applicable to all tests to override
>> test-specific arguments. Also, it would seem that would make the
>> other tests my earlier comment was referring to not work either. So
>> I’m confused about why there’s all this extra filtering going on in
>> this change and why it would be needed. Unless there are important
>> differences in some of the underlying infrastructure, like the
>> different testlibrary variants (jdk/test/lib/testlibrary vs hotspot’s
>> testlibrary?). Sorry I’m not being clearer about this - I’m
>> suspicious there is a deeper problem, but don’t know enough to point
>> to its whereabouts. (And that’s assuming my suspicions are correct,
>> and I’m not just confused.)
More information about the hotspot-gc-dev