New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 846966 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

ASan+CFG results in slow process startup for most test binaries

Project Member Reported by r...@chromium.org, May 26 2018

Issue description

I 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.
 

Comment 1 by r...@chromium.org, May 26 2018

Cc: brucedaw...@chromium.org penny...@chromium.org
Here's a screenshot of the profile.
asan-vs-cfgmap.png
114 KB View Download
Project Member

Comment 2 by bugdroid1@chromium.org, 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