ASan+CFG results in slow process startup for most test binaries |
|
Issue descriptionI noticed that unit_tests.exe runs really slowly when I enabled 64-bit ASan. Profiling shows that all the time is spent in CreateProcess -> MiCopyToCfgBitMap. My best theory explaining this slowdown is that ASan binaries are almost five times the size of non-asan test binaries, and the CFG bitmap is probably proportional to the size of the images loaded in the child process. We should try to reduce the ASan code size overhead if possible. I have a few ideas. I want to re-enable C string merging. That should save a fair amount of readonly data, but not code. I also noticed that we load the global shadow address even if a function contains no memory accesses. That seems like an easy small code size win. We should consider a higher overhead call instrumentation mode. This has been requested in the past because it would allow disabling ASan instrumentation at runtime, perhaps during process startup, after a crash has been reported.
,
May 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9ffad51176fca06d3e1ff65d916bb41a7aa1ccb6 commit 9ffad51176fca06d3e1ff65d916bb41a7aa1ccb6 Author: Reid Kleckner <rnk@google.com> Date: Wed May 30 23:24:27 2018 Disable control flow guard (CFG) when ASan is enabled ASan and CFG leads to slow process startup. Chromium's test runner uses lots of child processes, so this means things are really slow. Disable CFG for now. This should help keep the ASan bots from timing out. BUG=846966 R=brucedawson@chromium.org Change-Id: Id2d66e97badc67dc29af557ff6bdbbd9cfd3c0b5 Reviewed-on: https://chromium-review.googlesource.com/1074337 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Reid Kleckner <rnk@chromium.org> Cr-Commit-Position: refs/heads/master@{#563059} [modify] https://crrev.com/9ffad51176fca06d3e1ff65d916bb41a7aa1ccb6/build/config/win/BUILD.gn |
|
►
Sign in to add a comment |
|
Comment 1 by r...@chromium.org
, May 26 2018114 KB
114 KB View Download