Closed Bug 1506376 Opened 6 years ago Closed 4 years ago

Consider to make PCompositorBridge::DidComposite high priority message

Categories

(Core :: Layout, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla75
Performance Impact medium
Tracking Status
firefox67 --- wontfix
firefox75 --- fixed

People

(Reporter: smaug, Assigned: smaug)

References

(Depends on 5 open bugs, Blocks 2 open bugs, Regressed 1 open bug)

Details

(Keywords: perf:responsiveness)

Attachments

(4 files, 4 obsolete files)

Attached file messageflood.html
If main thread's normal priority queue has lots of runnables to process, DidComposite doesn't get handled fast enough. And so having high priority vsync doesn't really help.

The test case posts 60 tasks which all take ~16ms to process (and then it doesn't do anything for 1 second and starts again). If refresh driver handling had higher priority, we'd see more than just one or two paints during the test time.

Patch coming, but need to see what tryserver says.
Attached patch high_prio_DidComposite.diff (obsolete) — Splinter Review
In general we really shouldn't use high prio queue for other than vsync, but DidComposite is kind of part of that.


remote: View your change here:
remote:   https://hg.mozilla.org/try/rev/260846f072852734e2d628747cdaf07a78fe98c2
remote: 
remote: Follow the progress of your build on Treeherder:
remote:   https://treeherder.mozilla.org/#/jobs?repo=try&revision=260846f072852734e2d628747cdaf07a78fe98c2
remote: 
remote: It looks like this try push has talos jobs. Compare performance against a baseline revision:
remote:   https://treeherder.mozilla.org/perf.html#/comparechooser?newProject=try&newRevision=260846f072852734e2d628747cdaf07a78fe98c2
remote: recorded changegroup in replication log in 0.027s
Attachment #9024198 - Flags: review?(matt.woodrow)
Comment on attachment 9024198 [details] [diff] [review]
high_prio_DidComposite.diff

Looks like we have broken code around this stuff :/
Attachment #9024198 - Flags: review?(matt.woodrow)
Without the patch we skip paints quite often when typing to large Google Doc. With the patch basically never, and at least to me the behavior feels better.
So need to figure out the test breakage.
Blocks: 1488435
Priority: -- → P2
This would be a candidate of qf:responsiveness as per comment 3.
Whiteboard: [qf]
Whiteboard: [qf] → [qf:p2:responsiveness]
Attached patch high_prio_composite.diff (obsolete) — Splinter Review
Attachment #9024198 - Attachment is obsolete: true

(at least locally I didn't see the assertion)

Comment on attachment 9042258 [details] [diff] [review]
high_prio_DidComposite_with_shutdown_changes.diff

ok, this seems to be shutting down as expected. And the testcase starts to paint smoothly.

PrepareFinalDestroy is perhaps a bit odd name, but then is also AfterDestroy :)

We need the extra runnable because high priority tasks aren't always processed before normal priority runnable (the reason is to avoid starving normal priority queue)
Attachment #9042258 - Flags: review?(aosmond)
Attachment #9042258 - Flags: review?(aosmond) → review+
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/cab981ef743b
Make PCompositorBridge::DidComposite high priority message, r=aosmond
Backout by nerli@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/4e1b5ab8c44d
Backed out changeset cab981ef743b for failures in browser_appmenu.js

Ahaa, the failure is basically bug 1489259.

Flags: needinfo?(bugs)
Pushed by nerli@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b0f67b8917f4
Make PCompositorBridge::DidComposite high priority message, r=aosmond
Backout by cbrindusan@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5244b5aba6e3
Backed out changeset b0f67b8917f4 for bc failures at browser_appmenu.js. CLOSED TREE
Depends on: 1489259

17 seems to have been the magic number.

Attachment #9043383 - Flags: review?(mconley)
Comment on attachment 9043383 [details] [diff] [review]
reflows_in_browser_appmenu.js.diff

Wrong bug
Attachment #9043383 - Flags: review?(mconley)
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/de5c7c2699c4
Make PCompositorBridge::DidComposite high priority message, r=aosmond
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla67

Looks like we have too many broken tests to get this landed.

Assignee: bugs → nobody
Depends on: 1507337
Depends on: 1500046, 1483525
Depends on: 1527580
Flags: needinfo?(bugs)
Depends on: 1189015
Assignee: nobody → bugs
Assignee: bugs → nobody
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee: nobody → bugs
Target Milestone: mozilla67 → ---
Attachment #9043383 - Attachment is obsolete: true

just for some testing:

remote: Follow the progress of your build on Treeherder:
remote: https://treeherder.mozilla.org/#/jobs?repo=try&revision=b3441ff42e8a8871b1e56c6885c8a6fd49b84160
remote: recorded changegroup in replication log in 0.043s

Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e9ec1b50f99a
make DidComposite to use mediumhigh priority message r=mattwoodrow

/me kicks devtools tests

Hey, Daisuke, any insights on the devtools animation failures?

IIUC what the patch here does is to deliver each MozAfterPaint event more responsive. In other words, to deliver it (and do relevant stuff), JS scripts might not run responsive as before. If the failure happens on only ASAN build, skipping these tests there is an option I guess.

Flags: needinfo?(daisuke)

Hi Hiro!
It seems that the following function might be affected by this patch at least.
https://searchfox.org/mozilla-central/source/devtools/server/actors/animation.js#847-868
However, as I have not confirmed on this patch and there are other possibilities, need to investigate, anyway.
So, as you said, if the failure will occur on ASAN only, I agree to skip the tests.
(After that, I think I can investigate the issue.)

Flags: needinfo?(daisuke)

Because the code becomes more generic, the following renames are done:
mLastChildTick is renamed to mLastTick
mLastProcessedTickInChildProcess is renamed to mLastProcessedTickInChildProcess

To clarify which member variables are used in parent process only
mRefreshTickLock is renamed to mParentProcessRefreshTickLock and
new variables mRecentParentProcessVsync and mPendingParentProcessVsync are
added. (mRecentVsync and mRecentVsyncId don't anymore have the different
behavior in parent and child processes)

The basic idea is to keep the vsync compression in parent process in
NotifyVsync.
(In child processes it is handled by IPDL/IPC compression).
The main functionality change is in ParentProcessVsyncNotifier::Run.
That method doesn't anymore call mObserver->TickRefreshDriver(...)
but mObserver->NotifyParentProcessVsync(...), which then calls
NotifyVsync(...) on the main thread. That way parent process gets the
same vsync block-until behavior as what child process has.

Depends on D62032

Attachment #9042258 - Attachment is obsolete: true
Blocks: 1612365
Attachment #9125049 - Attachment description: Bug 1506376, make parent process vsync handling to be blocked the same was as in child process → Bug 1506376, make parent process vsync handling to be blocked the same way as in child process

Crossing fingers. Try push looked good, but this kind of changes do easily reveal other issues.

Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/adbd602610a3
make DidComposite to use mediumhigh priority message r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/621ec02db41c
remove useless private: from VsyncEvent struct r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/fe7215eefa28
make parent process vsync handling to be blocked the same way as in child process r=farre

Backed out 3 changesets (Bug 1506376) for xpcshell failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=xpcshell&fromchange=f3dd227e1a4d1243fd0e7cdf5dd0421df3b8cd85&tochange=ccf0746ed3fb43ad7cd491e6d20c37e9a1997ed0&selectedJob=288941935

Backout link: https://hg.mozilla.org/integration/autoland/rev/ccf0746ed3fb43ad7cd491e6d20c37e9a1997ed0

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=288941935&repo=autoland&lineNumber=1351

[task 2020-02-14T14:57:26.200Z] 14:57:26     INFO -  TEST-START | docshell/test/unit/test_browsing_context_structured_clone.js
[task 2020-02-14T14:57:26.807Z] 14:57:26  WARNING -  TEST-UNEXPECTED-FAIL | docshell/test/unit/test_browsing_context_structured_clone.js | xpcshell return code: 139
[task 2020-02-14T14:57:26.807Z] 14:57:26     INFO -  TEST-INFO took 606ms
[task 2020-02-14T14:57:26.807Z] 14:57:26     INFO -  >>>>>>>
[task 2020-02-14T14:57:26.807Z] 14:57:26     INFO -  docshell/test/unit/test_browsing_context_structured_clone.js | xpcw: cd /sdcard/tests/xpc/docshell/test/unit
[task 2020-02-14T14:57:26.807Z] 14:57:26     INFO -  docshell/test/unit/test_browsing_context_structured_clone.js | xpcw: xpcshell -r /sdcard/tests/xpc/c/httpd.manifest --greomni /data/local/xpcb/geckoview-androidTest.apk -m -s -e const _HEAD_JS_PATH = "/sdcard/tests/xpc/head.js"; -e const _MOZINFO_JS_PATH = "/sdcard/tests/xpc/p/mozinfo.json"; -e const _PREFS_FILE = "/sdcard/tests/xpc/user.js"; -e const _TESTING_MODULES_DIR = "/sdcard/tests/xpc/m"; -f /sdcard/tests/xpc/head.js -e const _HEAD_FILES = ["/sdcard/tests/xpc/docshell/test/unit/head_docshell.js"]; -e const _JSDEBUGGER_PORT = 0; -e const _TEST_FILE = ["test_browsing_context_structured_clone.js"]; -e const _TEST_NAME = "docshell/test/unit/test_browsing_context_structured_clone.js"; -e _execute_test(); quit(0);
[task 2020-02-14T14:57:26.807Z] 14:57:26     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  running event loop
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  docshell/test/unit/test_browsing_context_structured_clone.js | Starting test_BrowsingContext_structured_clone
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  (xpcshell/head.js) | test test_BrowsingContext_structured_clone pending (2)
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  TEST-PASS | docshell/test/unit/test_browsing_context_structured_clone.js | test_BrowsingContext_structured_clone - [test_BrowsingContext_structured_clone : 17] Got correct browsing context from StructuredClone deserialize - {} == {}
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  TEST-PASS | docshell/test/unit/test_browsing_context_structured_clone.js | test_BrowsingContext_structured_clone - [test_BrowsingContext_structured_clone : 24] Got correct browsing context from second StructuredClone deserialize - {} == {}
[task 2020-02-14T14:57:26.808Z] 14:57:26     INFO -  (xpcshell/head.js) | test function () {
[task 2020-02-14T14:57:26.809Z] 14:57:26     INFO -      [native code]
[task 2020-02-14T14:57:26.809Z] 14:57:26     INFO -  } pending (3)
[task 2020-02-14T14:57:26.809Z] 14:57:26     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (3)
[task 2020-02-14T14:57:26.809Z] 14:57:26     INFO -  docshell/test/unit/test_browsing_context_structured_clone.js | Segmentation fault
[task 2020-02-14T14:57:26.809Z] 14:57:26     INFO -  <<<<<<<
[task 2020-02-14T14:57:27.116Z] 14:57:27     INFO -  mozcrash Downloading symbols from: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/O1hMrh6ZQ9KcwJJHPa5pmA/artifacts/public/build/target.crashreporter-symbols.zip
[task 2020-02-14T14:57:29.433Z] 14:57:29     INFO -  mozcrash Copy/paste: /builds/worker/fetches/minidump_stackwalk/minidump_stackwalk /tmp/tmpa67gfG/6f42dff2-6c21-cc3e-03f4-6f6419146141.dmp /tmp/tmpYtdZAm
[task 2020-02-14T14:57:31.529Z] 14:57:31     INFO -  mozcrash Saved minidump as /builds/worker/workspace/build/blobber_upload_dir/6f42dff2-6c21-cc3e-03f4-6f6419146141.dmp
[task 2020-02-14T14:57:31.529Z] 14:57:31     INFO -  mozcrash Saved app info as /builds/worker/workspace/build/blobber_upload_dir/6f42dff2-6c21-cc3e-03f4-6f6419146141.extra
[task 2020-02-14T14:57:31.530Z] 14:57:31  WARNING -  PROCESS-CRASH | docshell/test/unit/test_browsing_context_structured_clone.js | application crashed [@ mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&)]
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Crash dump filename: /tmp/tmpa67gfG/6f42dff2-6c21-cc3e-03f4-6f6419146141.dmp
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Operating system: Android
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -                    0.0.0 Linux 3.10.0+ #260 SMP PREEMPT Fri May 19 12:48:14 PDT 2017 x86_64
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  CPU: amd64
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -       family 6 model 6 stepping 3
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -       4 CPUs
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  GPU: UNKNOWN
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Crash reason:  SIGSEGV /SEGV_MAPERR
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Crash address: 0x20
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Process uptime: not available
[task 2020-02-14T14:57:31.531Z] 14:57:31     INFO -  Thread 0 (crashed)
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   0  libxul.so!mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&) [nsRefreshDriver.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 0 + 0x0]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rax = 0x0000000000000000   rdx = 0x0000000000000001
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rcx = 0x000072d042df5b40   rbx = 0x000072d0365adb20
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rsi = 0x00007fff4f54fb20   rdi = 0x0000000000000010
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f54fb10   rsp = 0x00007fff4f54fad0
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -       r8 = 0x000072d042700260    r9 = 0x0000000000000000
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      r10 = 0x0000000000000000   r11 = 0x0000000000000000
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      r12 = 0x00007fff4f54fb20   r13 = 0x00000000ffffffff
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      r14 = 0x000072d0365adb20   r15 = 0x000072d03659d200
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03daabd41
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: given as instruction pointer in context
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   1  libxul.so!mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() [nsRefreshDriver.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 536 + 0x3a]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f54fb50   rsp = 0x00007fff4f54fb20
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03daab603
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   2  libxul.so!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 1220 + 0x6]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550070   rsp = 0x00007fff4f54fb60
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03b33d9c4
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   3  libxul.so!<name omitted> [nsThreadUtils.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 481 + 0xd]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f5500a0   rsp = 0x00007fff4f550080
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03b340ae8
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   4  libxul.so!nsThreadManager::SpinEventLoopUntilInternal(nsINestedEventLoopCondition*, bool) [nsThreadManager.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 694 + 0x8d]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f5500f0   rsp = 0x00007fff4f5500b0
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03b340750
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   5  libxul.so!NS_InvokeByIndex + 0x8e
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550120   rsp = 0x00007fff4f550100
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03fde3c3a
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   6  libxul.so!XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) [XPCWrappedNative.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 1145 + 0xd48]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550330   rsp = 0x00007fff4f550130
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03bc22c90
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   7  libxul.so!XPC_WN_CallMethod(JSContext*, unsigned int, JS::Value*) [XPCWrappedNativeJSOps.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 947 + 0x8]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550450   rsp = 0x00007fff4f550340
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03bc23ba3
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   8  libxul.so!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 569 + 0x102]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550520   rsp = 0x00007fff4f550460
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03eaff0b1
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -   9  libxul.so!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 632 + 0xc]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f5509f0   rsp = 0x00007fff4f550530
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03eaf6629
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  10  libxul.so!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 449 + 0xb]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550a50   rsp = 0x00007fff4f550a00
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03eaea912
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  11  libxul.so!js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 604 + 0x8]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550b20   rsp = 0x00007fff4f550a60
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03eaff374
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  12  libxul.so!js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) [BaselineIC.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 2910 + 0xa]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550e60   rsp = 0x00007fff4f550b30
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03f02de53
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  13  0x266ad4307e88
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550ed8   rsp = 0x00007fff4f550e70
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x0000266ad4307e88
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  14  0x72d03108ce60
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550f78   rsp = 0x00007fff4f550ee8
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03108ce60
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  15  0x266ad430548f
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f550fe0   rsp = 0x00007fff4f550f88
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x0000266ad430548f
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  16  libxul.so!js::jit::EnterBaselineInterpreterAtBranch(JSContext*, js::InterpreterFrame*, unsigned char*) [BaselineJIT.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 187 + 0xec]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f5511d0   rsp = 0x00007fff4f550ff0
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03f0c9665
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  17  libxul.so!Interpret(JSContext*, js::RunState&) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 1935 + 0x8]
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rbp = 0x00007fff4f5516a0   rsp = 0x00007fff4f5511e0
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      rip = 0x000072d03eaeb5be
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.537Z] 14:57:31     INFO -  18  libxul.so!js::RunScript(JSContext*, js::RunState&) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 449 + 0xb]
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rbp = 0x00007fff4f551700   rsp = 0x00007fff4f5516b0
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rip = 0x000072d03eaea912
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -  19  libxul.so!js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::AbstractFramePtr, JS::Value*) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 825 + 0x5]
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rbp = 0x00007fff4f551780   rsp = 0x00007fff4f551710
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rip = 0x000072d03eb00605
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -  20  libxul.so!js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) [Interpreter.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 858 + 0x19]
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rbp = 0x00007fff4f5517d0   rsp = 0x00007fff4f551790
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rip = 0x000072d03eb00746
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -  21  libxul.so!JS::EvaluateDontInflate(JSContext*, JS::ReadOnlyCompileOptions const&, JS::SourceText<mozilla::Utf8Unit>&, JS::MutableHandle<JS::Value>) [CompilationAndEvaluation.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 600 + 0x53d]
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rbp = 0x00007fff4f551cf0   rsp = 0x00007fff4f5517e0
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rip = 0x000072d03ebe2ac5
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -  22  libxul.so!XRE_XPCShellMain(int, char**, char**, XREShellData const*) [XPCShellImpl.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 1001 + 0x1a]
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rbp = 0x00007fff4f5520f0   rsp = 0x00007fff4f551d00
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      rip = 0x000072d03bc15fcb
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.538Z] 14:57:31     INFO -  23  xpcshell!main [xpcshell.cpp:fe7215eefa2860677714422c5251c0f2f70e52de : 66 + 0xb]
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rbp = 0x00007fff4f552130   rsp = 0x00007fff4f552100
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rip = 0x000072d042df87d1
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -  24  libc.so + 0x1c8d5
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rbp = 0x00007fff4f552278   rsp = 0x00007fff4f552140
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rip = 0x000072d0391238d5
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -  25  0x7fff4f5529ec
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rbp = 0x00007fff4f5529d0   rsp = 0x00007fff4f552288
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rip = 0x00007fff4f5529ec
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      Found by: previous frame's frame pointer
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -  26  0x7fff4f5fe000
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rbp = 0x00007fff4f5529d0   rsp = 0x00007fff4f5523a8
[task 2020-02-14T14:57:31.539Z] 14:57:31     INFO -      rip = 0x00007fff4f5fe000
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      Found by: stack scanning
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -  27  0x72d042d15000
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      rbp = 0x00007fff4f5529d0   rsp = 0x00007fff4f552418
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      rip = 0x000072d042d15000
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      Found by: stack scanning
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -  28  xpcshell + 0x6f0
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      rbp = 0x00007fff4f5529d0   rsp = 0x00007fff4f552438
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      rip = 0x000072d042df86f0
[task 2020-02-14T14:57:31.540Z] 14:57:31     INFO -      Found by: stack scanning
Flags: needinfo?(bugs)
Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/88c4e60eff6c
make DidComposite to use mediumhigh priority message r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/040e29ea6089
remove useless private: from VsyncEvent struct r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/503f96afd632
make parent process vsync handling to be blocked the same way as in child process r=farre
Blocks: 1615607
Status: REOPENED → RESOLVED
Closed: 5 years ago4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla75
Flags: needinfo?(bugs)
Regressions: 1616047

Hi, Olli. I assume the below regression is also a WONT FIX, just like 1616047. Do I assume correctly?
== Change summary for alert #24973 (as of Tue, 18 Feb 2020 06:26:08 GMT) ==

Regressions:

4% raptor-tp6m-allrecipes-geckoview-cold loadtime android-hw-g5-7-0-arm7-api-16 pgo 6,486.75 -> 6,750.83
1% raptor-tp6m-allrecipes-geckoview-cold loadtime android-hw-g5-7-0-arm7-api-16 pgo 6,567.75 -> 6,646.38

For up to date results, see: https://treeherder.mozilla.org/perf.html#/alerts?id=24973

Flags: needinfo?(bugs)

Thinking that. It is somewhat expected that loadtime might decrease in some cases a tiny bit but responsive basically should improve.

Flags: needinfo?(bugs)

Also spotted performance regression in devtools, https://treeherder.mozilla.org/perf.html#/alerts?id=24952&hideDwnToInv=0

  • 25% slower when expanding many nodes in the inspector markup view
  • 5% slower when to open the network panel
  • 5% slower when to open the inspector panel

Given what is tested in those cases, it seems very much expected. I'd expect that we get smoother paints while expanding dom tree etc.

Performance Impact: --- → P2
Whiteboard: [qf:p2:responsiveness]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: