RFR 8078555(M): GC: implement ranges (optionally constraints) for those flags that have them missing
derek.white at oracle.com
Fri Aug 28 20:41:25 UTC 2015
Hi Sangheon, Kim,
On 8/28/15 1:27 PM, sangheon.kim wrote:
> Hi Kim,
> On 08/28/2015 09:50 AM, Kim Barrett wrote:
>> On Aug 28, 2015, at 2:44 AM, sangheon.kim <sangheon.kim at oracle.com>
>>> 1. @requires vm.gc==xx for 4 test cases. (Derek)
>> Is this actually needed? I'm not sure how the process builder works.
>> Does it use any options from the calling process?
This is an FYI - not a stopper.
The main issue is that there's a disconnect between the jtreg framework,
including the @requires mechanism, and most tests that use ProcessTools.
Adding "@requires vm.gc=" doesn't totally fix the problem, but it ties
the two together. If you don't do @requires, then this situation can happen:
Due to jtreg argument roulette in nightlies, jtreg will run
TestObjectTenuringFlags (which is a parallel-only test), while perhaps
specifying |-XX:+UseG1GC and/or ||-||/XX/:+UseConcMarkSweepGC|to the
outer level test. But there's no point running the outer test framework
four ways (default, g1, cms, and parallel) when the real inner test
always gets run with parallel GC. You just ran the same test 4 times.
This is not directly harmful, but it's unnecessary and makes jtreg
nightly runs longer.
It's also indirectly harmful because when a failure occurs it's very
easy for bug triage or the initial bug handler to get confused and think
it's a G1 or CMS bug (because that's at the top-level of the error
report says). Yes, this has happened to me!
> If you are asking about any options are passed via @run tag, NO these
> 4 tests don't use them.
> @run main/othervm -XX:xxxxx
> I added them as ProcessTools.createJavaProcessBuilder() takes specific
> GC mode options.
> Maybe I am misunderstanding the tag.
> Anyone can give clear advice for this? Derek?
>> If not, then I
>> don't think these new @requires are needed.
>> Hm, I see lots of G1 tests that use the process builder and don't have
>> @requires lines, which argues this block of changes is not needed.
And if all the other tests jumped off a bridge would you do it too? :-)
In short, I don't think the change is strictly necessary, but I think
it's a good idea that we should start using in all of our GC-specific
tests that go through ProcessTools.
I'm fine with or without this change. Maybe I should bring it up in the
SQE talk at the offsite to get consensus.
More information about the hotspot-dev