commit | fe5ffc294a4e183007326d36cb5594bfd409b16c | [log] [tgz] |
---|---|---|
author | François Degros <fdegros@chromium.org> | Tue Mar 26 05:48:37 2024 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Mar 26 05:48:37 2024 |
tree | 566d1c1007edbe386c3358a800a350f8af17fc78 | |
parent | cdff0aee8694de00a1f4418066074ee55e5d0abe [diff] |
Revert "Mark WeakLinkNode sequence checking expensive" This reverts commit 6f447d5040c0c6e619e51ccc53fe0d084c98e896. Reason for revert: Crashes on ChromeOS as soon as I touch the device's touchpad 2024-03-26T00:58:16.588106Z FATAL chrome[5433:5496]: [sequence_checker.cc(21)] Check failed: checker.CalledOnValidSequence(&bound_at). #0 0x56f06aa34da2 base::debug::CollectStackTrace() #1 0x56f06aa19ba2 base::debug::StackTrace::StackTrace() #2 0x56f06a934073 logging::LogMessage::Flush() #3 0x56f063de6fcd logging::LogMessage::~LogMessage() #4 0x56f06a92053c logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() #5 0x56f06a9205ae logging::(anonymous namespace)::DCheckLogMessage::~DCheckLogMessage() #6 0x56f063dc2ba6 logging::CheckError::~CheckError() #7 0x56f063de9d22 base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker() #8 0x56f063de4706 base::ObserverList<>::begin() #9 0x56f06bfa75eb ui::CursorController::SetCursorLocation() #10 0x56f0646d9be5 ui::DrmCursor::SetCursorLocationLocked() #11 0x56f0646da6bf ui::DrmCursor::MoveCursor() #12 0x56f06bfd76e6 ui::GestureInterpreterLibevdevCros::OnGestureMove() Original change's description: > Mark WeakLinkNode sequence checking expensive > > This makes for-each-node sequence checking expensive (which seems > redundant). As a compromise we do non-"expensive" sequence checking in > ObserverList::begin(), which should provide the same level of protection > unless iterators are passed between sequences, which would be one heck > of a thing to try to do. > > This accounts for about 60% of sequence checking in a profile I did way > back. I have not profiled to see how much sequence checking remains with > the sequence checking moved to begin() nor do I know the average > ObserverList size. Let's try it out. > > In the same profile (though I don't remember what I profiled) sequence > checking accounted for 1.2% of cycles. Hopefully this explains some of > the performance gap between a DCHECK and regular Canary build. > > Bug: 40241607 > Change-Id: Id80d3363771e05e6f38c1432ae66b4c352acf8b8 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5319909 > Reviewed-by: François Degros <fdegros@chromium.org> > Commit-Queue: Peter Boström <pbos@chromium.org> > Reviewed-by: danakj <danakj@chromium.org> > Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> > Reviewed-by: Colin Blundell <blundell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1277148} Bug: 40241607 Change-Id: I8e11a7d796ba10a38453dff336f46e3aba04ab97 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5394849 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: François Degros <fdegros@chromium.org> Commit-Queue: François Degros <fdegros@chromium.org> Cr-Commit-Position: refs/heads/main@{#1278133}
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.
If you found a bug, please file it at https://crbug.com/new.