[PATCH] D28420: [lit] Limit parallelism of sanitizer tests on Darwin

Kuba (Brecka) Mracek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 6 16:28:00 PST 2017


kubabrecka created this revision.
kubabrecka added reviewers: dvyukov, glider, beanz, vitalybuka, ddunbar.
kubabrecka added subscribers: llvm-commits, zaks.anna, cmatthews.
kubabrecka set the repository for this revision to rL LLVM.
kubabrecka added a project: Sanitizers.
Herald added a reviewer: modocache.

Running lit tests and unit tests of ASan and TSan on macOS has very bad performance when running with a high number of threads.  This is caused by xnu (the macOS kernel), which currently doesn't handle mapping and unmapping of sanitizer shadow regions (reserved VM which are several terabytes large) very well.  The situation is so bad that increasing the number of threads actually makes the total testing time larger.  The macOS buildbots are affected by this.  Note that we can't easily limit the number of sanitizer testing threads without affecting the rest of the tests.

This patch adds a special "group" into lit, and limits the number of concurrently running tests in this group.  This helps solve the contention problem, while still allowing other tests to run in full, that means running lit with `-j8` will still with 8 threads, and parallelism is only limited in sanitizer tests.


Repository:
  rL LLVM

https://reviews.llvm.org/D28420

Files:
  projects/compiler-rt/test/asan/Unit/lit.site.cfg.in
  projects/compiler-rt/test/asan/lit.cfg
  projects/compiler-rt/test/tsan/Unit/lit.site.cfg.in
  projects/compiler-rt/test/tsan/lit.cfg
  projects/compiler-rt/unittests/lit.common.unit.cfg
  utils/lit/lit/LitConfig.py
  utils/lit/lit/TestingConfig.py
  utils/lit/lit/main.py
  utils/lit/lit/run.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28420.83457.patch
Type: text/x-patch
Size: 7615 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170107/1b87c033/attachment.bin>


More information about the llvm-commits mailing list