[regression] Mir is holding buffers much longer than it used to.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Daniel van Vugt | ||
mir (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Mir is holding buffers much longer than it used to. You can see from this bespoke logging that it's now holding each buffer from the client for a full frame even though the compositor itself only holds it for less than a millisecond (the render time):
[1438332770.923332] mirserver: 0x7f66bc0030b0: compositor acquired 0x7f66bc0039f0
[1438332770.923444] mirserver: 0x7f66bc0030b0: compositor release1 0x7f66bc0039f0
[1438332770.923454] mirserver: 0x7f66bc0030b0: compositor release2 0x7f66bc0039f0
[1438332770.939927] mirserver: 0x7f66bc0030b0: compositor release3 0x7f66bc0039f0
[1438332770.939966] mirserver: 0x7f66bc0030b0: compositor release4 0x7f66bc0039f0
[1438332770.940011] mirserver: 0x7f66bc0030b0: compositor acquired 0x7f66bc006990
[1438332770.940117] mirserver: 0x7f66bc0030b0: compositor release1 0x7f66bc006990
[1438332770.940127] mirserver: 0x7f66bc0030b0: compositor release2 0x7f66bc006990
[1438332770.956487] mirserver: 0x7f66bc0030b0: compositor release3 0x7f66bc006990
[1438332770.956507] mirserver: 0x7f66bc0030b0: compositor release4 0x7f66bc006990
The issue appears to have been introduced in:
-------
revno: 2323 [merge]
author: Daniel van Vugt <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Tue 2015-02-17 08:19:29 +0000
message:
Fix the multi-monitor frame sync logic to support high speed
compositors (tm) which only need to hold buffers very briefly
(introduced in r2183). (LP: #1420678)
Both the multi-monitor frame sync logic and the optimization of r2183
behave correctly independently. It's only when combined that they start
to interfere with each other. But we'd very much like to keep both. Fixes: https:/
Approved by Chris Halse Rogers, PS Jenkins bot, Alan Griffiths.
-------
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Daniel van Vugt: Needs Information
- Kevin DuBois (community): Approve
- Cemil Azizoglu (community): Approve
- Alan Griffiths: Approve
- Chris Halse Rogers: Approve
-
Diff: 164 lines (+107/-0)4 files modifiedsrc/server/compositor/buffer_queue.cpp (+17/-0)
src/server/compositor/buffer_queue.h (+1/-0)
tests/integration-tests/test_buffer_scheduling.cpp (+54/-0)
tests/unit-tests/compositor/test_buffer_queue.cpp (+35/-0)
- PS Jenkins bot (community): Needs Fixing (continuous-integration)
- Alan Griffiths: Needs Fixing
- Kevin DuBois (community): Approve
-
Diff: 309 lines (+252/-0)4 files modifiedsrc/server/compositor/buffer_queue.cpp (+24/-0)
src/server/compositor/buffer_queue.h (+1/-0)
tests/integration-tests/test_buffer_scheduling.cpp (+115/-0)
tests/unit-tests/compositor/test_buffer_queue.cpp (+112/-0)
- Mir CI Bot: Approve (continuous-integration)
- Alan Griffiths: Abstain
- Kevin DuBois (community): Abstain
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 149 lines (+52/-19)2 files modifiedtests/integration-tests/test_buffer_scheduling.cpp (+28/-11)
tests/unit-tests/compositor/test_buffer_queue.cpp (+24/-8)
Changed in mir: | |
status: | In Progress → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Where the logging was inserted.