Bug 213373 - Implement serial jsc stress tests
Summary: Implement serial jsc stress tests
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: 210790
  Show dependency treegraph
 
Reported: 2020-06-19 06:45 PDT by Angelos Oikonomopoulos
Modified: 2021-01-05 15:15 PST (History)
10 users (show)

See Also:


Attachments
Patch (5.75 KB, patch)
2020-06-19 06:50 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (6.33 KB, patch)
2020-06-21 07:59 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (6.34 KB, patch)
2020-07-09 23:39 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (6.34 KB, patch)
2020-07-10 01:40 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (6.38 KB, patch)
2020-07-10 07:27 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (6.38 KB, patch)
2020-07-12 01:56 PDT, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff
Patch (8.65 KB, patch)
2020-12-15 06:46 PST, Angelos Oikonomopoulos
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Angelos Oikonomopoulos 2020-06-19 06:45:44 PDT
Implement serial jsc stress tests
Comment 1 Angelos Oikonomopoulos 2020-06-19 06:50:07 PDT
Created attachment 402277 [details]
Patch
Comment 2 Angelos Oikonomopoulos 2020-06-19 07:05:44 PDT
See also https://bugs.webkit.org/show_bug.cgi?id=210790
Comment 3 Guillaume Emont 2020-06-19 08:09:02 PDT
Should this be applying only when $memoryLimited is true? Can your current option be used in that way? e.g.

//@ serial! if $memoryLimited
Comment 4 Guillaume Emont 2020-06-19 08:10:53 PDT
Also, I think stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js could benefit from this treatment, unless it can be rewritten to take less memory (at least on an rpi3, it seems that it can run in serial). See Bug 213209.
Comment 5 Angelos Oikonomopoulos 2020-06-21 07:59:25 PDT
Created attachment 402423 [details]
Patch
Comment 6 Angelos Oikonomopoulos 2020-06-21 08:00:32 PDT
(In reply to Guillaume Emont from comment #3)
> Should this be applying only when $memoryLimited is true? Can your current
> option be used in that way? e.g.
> 
> //@ serial! if $memoryLimited

Ugh, yah, of course. That was the intention, thanks for catching this.
Comment 7 Angelos Oikonomopoulos 2020-06-21 08:03:38 PDT
(In reply to Guillaume Emont from comment #4)
> Also, I think
> stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.
> js could benefit from this treatment, unless it can be rewritten to take
> less memory (at least on an rpi3, it seems that it can run in serial). See
> Bug 213209.

Right. Including check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js and marking both tests with //@ serial! if $memoryLimited in the new patch.
Comment 8 Paulo Matos 2020-07-06 03:24:19 PDT
This is a really useful patch, thanks @angelos.
I am retrying builds on ews to see if all is good.
Comment 9 Caio Lima 2020-07-07 03:34:54 PDT
Comment on attachment 402423 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=402423&action=review

> JSTests/stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:1
> +//@ serial! if $memoryLimited

I think we would like to only serialize this test on ARMv7 or MIPS. Right now it is still crashing on ARMv7, according EWS
Comment 10 Caio Lima 2020-07-09 10:47:47 PDT
Comment on attachment 402423 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=402423&action=review

>> JSTests/stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:1
>> +//@ serial! if $memoryLimited
> 
> I think we would like to only serialize this test on ARMv7 or MIPS. Right now it is still crashing on ARMv7, according EWS

The issue with ARMv7 is that this test is being killed by memory monitor. I think we can handle this issue when we properly configure `JSCTEST_memoryLimit` into our bots.
Comment 11 Angelos Oikonomopoulos 2020-07-09 23:39:48 PDT
Created attachment 403946 [details]
Patch
Comment 12 Angelos Oikonomopoulos 2020-07-10 01:40:55 PDT
Created attachment 403952 [details]
Patch
Comment 13 Angelos Oikonomopoulos 2020-07-10 07:27:29 PDT
Created attachment 403963 [details]
Patch
Comment 14 Angelos Oikonomopoulos 2020-07-12 01:56:53 PDT
Created attachment 404091 [details]
Patch
Comment 15 Yusuke Suzuki 2020-12-04 18:42:36 PST
Comment on attachment 404091 [details]
Patch

The idea is awesome!!
Can you create ChangeLog by uploading the patch via `webkit-patch upload --update-changelogs`? And can you describe what this patch does by how in ChangeLog?
Comment 16 Angelos Oikonomopoulos 2020-12-07 04:15:16 PST
(In reply to Yusuke Suzuki from comment #15)
> Comment on attachment 404091 [details]
> Patch
> 
> The idea is awesome!!
> Can you create ChangeLog by uploading the patch via `webkit-patch upload
> --update-changelogs`? And can you describe what this patch does by how in
> ChangeLog?

Sure, I can do that :-) I'll try to test the patch locally first though.

One consideration is that serial! will be completely ignored by the new --gnu-parallel-runner; but perhaps this can go in regardless and updating --gnu-parallel-runner to honor serial! can be a separate patch. Also, since we're setting --retries for the parallel runner, a memory-hungry test is likely to pass eventually anyway, since the chances are it will get rescheduled until it's eventually the only "large" test running on the memory-limited device.
Comment 17 Angelos Oikonomopoulos 2020-12-15 06:46:30 PST
Created attachment 416241 [details]
Patch
Comment 18 Angelos Oikonomopoulos 2020-12-15 06:48:58 PST
Updated the patch to also work with --gnu-parallel-runner and to not introduce serial! for any tests yet. Would rather do that for individual tests along with bumping the current default limit in buildbots where the remote boards have this much RAM, otherwise serial tests will still run into the default JSCTEST_memoryLimit of 600MB.
Comment 19 Yusuke Suzuki 2021-01-05 15:05:06 PST
Comment on attachment 416241 [details]
Patch

r=me, can you file a bug doing the same thing for `jsc-stress-test-writer-ruby.rb`?
Comment 20 EWS 2021-01-05 15:14:46 PST
Committed r271179: <https://trac.webkit.org/changeset/271179>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 416241 [details].
Comment 21 Radar WebKit Bug Importer 2021-01-05 15:15:16 PST
<rdar://problem/72831399>