| commit | 6836c0d55acc3e3b6730c042d01b1ba7f2bc886c | [log] [tgz] |
|---|---|---|
| author | Gabriel Charette <gab@chromium.org> | Mon Jan 11 17:40:26 2021 |
| committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jan 11 17:40:26 2021 |
| tree | 94b3398872afeb078a88d2cc2acb40f5f9237914 | |
| parent | fbddb1797e6935d6bf7c0a248c61fbee66a264f6 [diff] |
Reland "[base] Fix trace events and blocking types when blocked on modal dialogs" This is a reland of 2ecb8d17bc59b94113efae9607c82ab976d541f4 Revert reason seemed unrelated, but FindIt is strangely convinced. The TSAN issue was fixed in https://chromium-review.googlesource.com/c/chromium/src/+/2618393 nonetheless. Original change's description: > [base] Fix trace events and blocking types when blocked on modal dialogs > > Sheriff notes: This is expected to artificially reduce IOJank* metrics. > > Modal dialogs launched via GetAppOutputInternal in launch_posix.cc > are guaranteed to block and thus should use WILL_BLOCK semantics > (as opposed to MAY_BLOCK like it did). > > However, Process::WaitForExit can't use WILL_BLOCK semantics because > of an existing workaround for TestLauncher to not use > ScopedBlockingCallWithBaseSyncPrimitives when waiting on processes or > TestLauncher ends up creating or TestLauncher ends up flooding > the pool to 256 workers regardless of --test-launcher-jobs > (it posts each test as a task right off the bat and expects the > pool to cap the parallelism...). > > The best solution to get proper tracing and thread restrictions > right is thus to add custom trace events and keep assertions > that waiting is allowed when launching the process. > > Each platform was doing something slightly different here, this > CL brings all platforms inline with annotations that are visible > in tracing but ignored by IOJank metrics. > > Example broken trace showing up in IOJank slow reports on Linux: > https://goto.google.com/btbzu (SS: https://snipboard.io/7sDO1r.jpg) > > R=fdoray@chromium.org > > Bug: 1064645, 1144161, 899897 > Change-Id: Id087f91df8c2201ca10db5438456c638f9b791e9 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2233299 > Commit-Queue: Gabriel Charette <gab@chromium.org> > Reviewed-by: Wez <wez@chromium.org> > Reviewed-by: François Doray <fdoray@chromium.org> > Reviewed-by: Joe Downing <joedow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#837874} TBR=fdoray@chromium.org,wez@chromium.org (identical as before) Bug: 1064645 Bug: 1144161 Bug: 899897 Change-Id: I8f4161d9c614db1670648b54d5949fdfe49a6b02 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2621912 Reviewed-by: Gabriel Charette <gab@chromium.org> Reviewed-by: Wez <wez@chromium.org> Reviewed-by: Joe Downing <joedow@chromium.org> Commit-Queue: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#842081}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.