[regression] MIR_CLIENT_PERF_REPORT is showing bogus render times and buffer lag
Bug #1581368 reported by
Daniel van Vugt
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Daniel van Vugt | ||
0.23 |
Fix Released
|
Medium
|
Daniel van Vugt | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
MIR_CLIENT_
$ env MIR_CLIENT_
...
[2016-05-13 16:20:12.972236] perf: mir_demo_
[2016-05-13 16:20:13.973084] perf: mir_demo_
[2016-05-13 16:20:14.973926] perf: mir_demo_
^CSignal 2 received. Good night.
I haven't bisected it yet but know:
FAULTY: Mir 0.24 lp:mir
WORKING: Mir 0.21 (xenial)
Related branches
lp://staging/~vanvugt/mir/fix-1581368
- Mir CI Bot: Approve (continuous-integration)
- Kevin DuBois (community): Approve
- Cemil Azizoglu (community): Approve
-
Diff: 172 lines (+88/-6)4 files modifiedsrc/client/buffer_stream.cpp (+3/-2)
src/client/periodic_perf_report.cpp (+7/-1)
tests/acceptance-tests/test_client_logging.cpp (+26/-3)
tests/unit-tests/client/test_client_buffer_stream.cpp (+52/-0)
summary: |
- [regression] MIR_CLIENT_PERF_REPORT is showing bogus render times + [regression] MIR_CLIENT_PERF_REPORT is showing bogus render times and + buffer lag |
Changed in mir: | |
status: | Triaged → In Progress |
tags: | added: nbs |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Bisected. The regression occurred in:
------- ------- ------- ------- ------- ------- ------- ------- ----
revno: 3479 [merge]
author: Kevin DuBois <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Tue 2016-04-26 15:28:57 +0000
message:
client: send incoming asynchronous buffer messages directly to the mcl::Buffer object. Prepares the buffers to be allocated from the connection, instead of a chain/stream.
Change the async protocol a bit too so the RPC channel can manage the async buffers better. The RPC allocate/free buffer calls are not synchronized with the async buffer sending, so the server has to be a bit more explicit about what operation its performing, so the client side rpc channel can clean up the buffers better.
So the notification chains go from: chain):
OBS (buffer_stream):
rpc -> buffer_stream
NBS (buffer_stream):
rpc -> buffer_stream
NBS: (presentation_
rpc -> buffer_stream -> buffer
to:
OBS (buffer_stream): chain):
rpc -> buffer_stream
NBS (buffer_stream):
rpc -> buffer -> buffer_stream
NBS: (presentation_
rpc -> buffer .
Approved by mir-ci-bot, Cemil Azizoglu. ------- ------- ------- ------- ------- ------- ------- ----
-------