-
-
Notifications
You must be signed in to change notification settings - Fork 314
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regenerated jcstress playlist for jcstress and pushed its generator #5317
Regenerated jcstress playlist for jcstress and pushed its generator #5317
Conversation
Will resolve #5278 if (ever) agreed on |
97156ff
to
ff5c02f
Compare
It seems the jcstress issue got staled a bit. Opening from draft for review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a .md file added into system/jcstress directory to describe how to run the generator, and capture the general gist of the tests created in the playlist.
Also please spellcheck all of your comments for 'typing too fast' mistakes like memebrs, namesapces, etc.
The initial set of tests is obtained by `jcstress.jar -l` The generator is: mixing targets with to few targets ensuring no test is run twice targets are as short as possible where still fully descriptive regexes for -t runtime are fully quified Similarly as there is exclude list to not shorten groups where missleading preffix would remain, can be added include list, which would connect remaining tests with 1 or two targets to artificial group. But it was jsut 23 tests in time of this commit
ff5c02f
to
0498a0f
Compare
* more strict checksum * merging of groups go until it really have nothiong to do * except natural groups, also artificial are created * some control env variables like verbose, limit and jsut_regex to check times * rearranged code
* it can launch the jcstres on all targets it generated, and meassure times * on my machine, in single core mode, it is 20+-1minutes per target (in all cores mode (8 cores) it is 13 hours per target (not even one finished(yet) * fixed selector generator to contains or always
Now spliting works as expected. On two cores: splitting by 100, 54 groups 4hours each splitting by 2000 7 groups 1.5 day each no splitting 11.5 days total Oscialtion to be calculated
Hello! In past week, I was playing a lot with the generator, and before we proceed with play-list generation, I think there is quite a few factors to consider.
not sure why 4 and 8 are same, My machine have 4cores with hyper threading, so 8 virtual. Maybe the jcstress is using only real ones or it estimated 103days as to much . Anyway Imagine it on 100core Arm...
You can see that:
Are much shorter then others, despite having much more tests. My Generator can split it, but how, depends on how mch targets we wish to have. This example is with LIMIT=500 CORES=2 and not splitting the huge groups. All those times are based on estimations So the questions:
Although I will provide full statistics later, It seems that having more then 150 of groups is impractical and having longer then 3hours per is impractical to. Thus number of tests i group (limit) should be around 50. As in this are is the glorifed 2.5 hours for "unsplittable" groups, theirs split depends on selected cores and limits. I recommend to not split them. The generator is using test enumeration with or, so the cmdline limitations may be hit:
But those limits may be hit only n the LIMIT=500 tests and more setups, which are unlikely to be used. |
Bad luck, -l do not honour -c |
Use dalso in -l, but -l do nothonour -c
This is saving quite a few from selector, seesm to work fine and seems to not have overlaps
Full statistics of cores x runs with split possibilities: |
Now trying |
@judovana - as we wait for your suggested upstream changes to jcstress, we could consider also disabling the jcstress.all target so we can merge this PR. Once changes upstream are accepted and we can re-enable the jcstress.all target with appropriate settings so it can be run in a timely manner. |
Looks better then usually. My upstream changes are not going to solve it. They are walking around, trying to be a bit more precise, but not lowering the total time. Give me a bt more time please. I still keep experimenting above it, and maybe it will go somewhere. |
Killed by bug in infra:
restart: https://ci.adoptium.net/view/Test_grinder/job/Grinder/10505/ |
Looks good - for the test- but not good for timeout. Anyway I think it is the way to go. To limit the |
As https://ci.adoptium.net/view/Test_grinder/job/Grinder/10505 was intel, trying now arm with |
2a7f553
to
624aea8
Compare
Despite usptream disregards this, it is currently the only way to cut runtime to at least somehow reasonable duration
267d58c
to
3fdeacb
Compare
All targets are now disabled, and cores are set to default of 2. https://ci.adoptium.net/view/Test_grinder/job/Grinder/10679/console |
Will add also |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @judovana - I will merge it now with all targets disabled. In that way it can be used by running with TARGET=disabled.jcstress.xxxx
if needed, and returned to in future when some options addressed in upstream jcstress repo.
wait a sec, this is funny |
a6d02bc
to
99b291f
Compare
https://ci.adoptium.net/view/Test_grinder/job/Grinder/10680/ had just Original ETA and samplign rate
new ETA and sampling rate:
Sampling rate is much higher, but Eta is absolutely out. And looking to the passed tests, counting, the delay is real. |
Gosh, I had reset time budget. Fixing |
ok, fixed. https://ci.adoptium.net/view/Test_grinder/job/Grinder/10681/console looks good. I'm not aware of any more issues (except the time needed). Feel free to merge. I will now move to next step in #5261 - to improve https://github.com/adoptium/TKG/blob/master/scripts/getDependencies.xml so it is using jcstress-20240222.jar from dependency pipeline. (it will need to regenerate te playlist.xml once done) |
hmm.. that https://ci.adoptium.net/view/Test_grinder/job/Grinder/10681/console looks good! It is in the half after twelve hours! |
Just for record, the https://ci.adoptium.net/view/Test_grinder/job/Grinder/10681/console finished in 1 day and 20 hours :) I think that one can be deployed under some circumsatnces. |
The initial set of tests is obtained by
jcstress.jar -l
The generator is:mixing targets with to few targets
ensuring no test is run twice
targets are as short as possible where still fully descriptive
regexes for -t runtime are fully quified
Similarly as there is exclude list to not shorten groups where missleading preffix would remain, can be added include list, which would connect remaining tests with 1 or two targets to artificial group. But it was jsut 23 tests in time of this commit