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

Issue 729028 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocked on:
issue 765393

Blocking:
issue 710826



Sign in to add a comment

Measure MojoCompositorFrameSink performance for ARC++

Project Member Reported by penghuang@chromium.org, Jun 2 2017

Issue description

Measure the performance of using MojoCompositorFrameSink in Cash for ARC++. 
The MojoCompositorFrameSink uses mojo IPC to take with ui::Compositor instead of
direct function call.
 
Blocking: 728695
Labels: OS-Chrome
I implemented CL[1]. It can submit composit frame with or without Mojo IPC.
With it, I got the performance data from GFXBench on minnie. I found out only
test the ALU 2 & Texturing have performance regression. Results of other tests
are almost same. See attachment for detail.

Anyone has idea what are ALU2 & Texturing? And why only those two have performance regression?


[1] https://chromium-review.googlesource.com/c/522782/1/ui/aura/local/window_port_local.cc#118
DFCvsMojo.png
1.5 MB View Download
Cc: piman@chromium.org danakj@chromium.org
Cc: anicolao@chromium.org
+anicolao@

Thank you for looking into this Peng! :-)
It would be good to know what parts of the code are contributing to the regression with mojo. Maybe the sampling profiler could provide some insight?
I tried doing mojo message serializing and deserializing in
CompositorFrameSinkLocal::SubmitCompositorFrame()(see [1]). And I found out
the mojo serializing and deserializing only contribute about 10 points of
the regression.


1282 vs 1270 vs 1107. (Direct Function Call vs DFC + Serializing vs Mojo IPC)

[1] https://chromium-review.googlesource.com/c/522782/3/ui/aura/local/compositor_frame_sink_local.cc#117
Do we have a bug to track understanding and mitigating this regression?
I just implemented one CFS per ARC++ window with CL[1]. Everything works fine.
I measured the ARC++ performance again. Numbers are in the [2].

There is small regressions in Driver overhead 2 testes comparing to current
implementation. For one CFS with mojo IPC, the result is similar to the current
implementation with Mojo IPC.


[1] https://chromium-review.googlesource.com/c/527475/
[2] https://docs.google.com/spreadsheets/d/1FO1E1iW9yXDHquRzR35nas-xLWL40xXXAgeJ5Fk4ToQ/edit#gid=0
It's hard to evaluate these numbers without understanding where the cost comes from. Can you record some traces that highlight the difference?
Blocking: 710826
Project Member

Comment 11 by bugdroid1@chromium.org, Sep 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/059a6f74910c4fe167d1559b49db3158ef58cd5d

commit 059a6f74910c4fe167d1559b49db3158ef58cd5d
Author: Peng Huang <penghuang@google.com>
Date: Wed Sep 20 00:31:11 2017

exo: Implement exo performance test

Bug: 729028
Change-Id: Ibda083042d68a681cffd8eacb0494221b8c6a5be
Reviewed-on: https://chromium-review.googlesource.com/653037
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503005}
[modify] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/BUILD.gn
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/perftests.cc
[modify] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/simple.cc
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/simple.h
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/simple_main.cc
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/test/DEPS
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/test/run_all_client_perftests.cc
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/test/wayland_client_test.cc
[add] https://crrev.com/059a6f74910c4fe167d1559b49db3158ef58cd5d/components/exo/wayland/clients/test/wayland_client_test.h

Blockedon: 765393
Blocking: -728695
We got soem data, but it not very useful. Remove this issue from  issue 728695 .
Components: -Internals>MUS Internals>Services>WindowService
Labels: -Proj-Mustash Proj-Mash-MultiProcess

Sign in to add a comment