Changeset 7655d92f for general/genlib


Ignore:
Timestamp:
09/26/2023 08:55:19 AM (8 months ago)
Author:
Xi Ruoyao <xry111@…>
Branches:
12.1, ken/TL2024, ken/tuningfonts, lazarus, plabs/newcss, python3.11, rahul/power-profiles-daemon, renodr/vulkan-addition, trunk, xry111/llvm18
Children:
67c8341
Parents:
14136bd
git-author:
Xi Ruoyao <xry111@…> (09/26/2023 08:54:56 AM)
git-committer:
Xi Ruoyao <xry111@…> (09/26/2023 08:55:19 AM)
Message:

spidermonkey: Update RAM usage issue in JIT test suite

File:
1 edited

Legend:

Unmodified
Added
Removed
  • general/genlib/spidermonkey.xml

    r14136bd r7655d92f  
    188188      Because we are building with system ICU, 8 tests
    189189      (out of a total of more than 50,000) are known to fail.
    190     </para>
    191     <para>
    192       The JIT test suite can use a large amount of system memory.
    193       Running the JIT test suite without enough memory may invoke
    194       the kernel OOM killer and causes stability issues. To run the JIT test
    195       suite, ensure the amount of available system memory is at least 16 GB,
    196       <!-- When I run it within a cgroup with 8 GB memory assigned, the test
    197            is OOM killed.  Increasing the assigned memory to 16 GB makes
    198            all tests pass.  -->
    199       then issue: <command>make -C js/src check-jit-test
    200       JITTEST_EXTRA_ARGS="--timeout 300"</command>.
     190      The test suite is executed with all CPU cores available: even in a
     191      cgroup with less cores assigned, it still attempts to spawn as many
     192      testing jobs as the number of <emphasis>all</emphasis> cores in the
     193      system; fortunately the kernel still won't run these jobs on cores
     194      not assigned to the cgroup so the CPU usage is still controlled.
     195    </para>
     196    <para>
     197      To run the JIT test suite, issue: <command>make -C js/src
     198      check-jit-test JITTEST_EXTRA_ARGS="--timeout 300"</command>.
     199      Like the SpiderMonkey test suite, the number of test jobs is same as
     200      the number of all CPU cores in the system even if a cgroup is used. To
     201      make things worse, there are six tests each of them will use 3 GB
     202      of system memory, so the peak memory usage may be up to 18 GB if the
     203      number of cores is six or more.  Running the JIT test suite without
     204      enough memory may invoke the kernel OOM killer and cause stability
     205      issues.  If you don't have enough system memory available, append
     206      <option>-jN</option> after <option>--timeout 300</option> with N
     207      replaced by the number of parallel test jobs you want to start.  For
     208      example, if you have 16 GB system memory available and 8 CPU cores,
     209      issue <command>make -C js/src check-jit-test
     210      JITTEST_EXTRA_ARGS="--timeout=300 -j5"</command> to run the test with
     211      5 parallel jobs so the memory usage won't exceed 15 GB.
     212      <!-- TL;DR: DO NOT REMOVE MEMORY USAGE NOTE W/O MY CONFIRMATION!
     213
     214           "six tests": bug1782468-ptrdiff-veclen.js, it's ran with 6
     215           different configurations.
     216
     217           "may": this is stochasitic (like all parallelization issue),
     218           don't remove the note about memory usage simply because "I cannot
     219           reproduce it".
     220
     221           "peak": the time period using so much memory is very short, so
     222           don't just watch the output of "top" or "free" with eyesight.
     223           Run the test in a cgroup and read the "memory.peak" psuedo file
     224           for a proper measurement.
     225
     226           Q: Why not just document some test failures?
     227           A: This *really* can cause stability issue because the kernel
     228              may OOM kill another process if the test is not ran in a
     229              cgroup with memory.max set.  Even if running it in a cgroup,
     230              the kernel may still OOM kill the "main" process controlling
     231              the test process instead of a single test job, causing a
     232              incomplete test.
     233
     234                                                                 - xry111
     235      -->
    201236    </para>
    202237
Note: See TracChangeset for help on using the changeset viewer.