Merge lp://staging/~vanvugt/mir/schedule-nonblocking into lp://staging/mir
Proposed by
Daniel van Vugt
Status: | Merged |
---|---|
Approved by: | Daniel van Vugt |
Approved revision: | no longer in the source branch. |
Merged at revision: | 4072 |
Proposed branch: | lp://staging/~vanvugt/mir/schedule-nonblocking |
Merge into: | lp://staging/mir |
Diff against target: |
254 lines (+110/-3) 11 files modified
src/server/compositor/dropping_schedule.cpp (+17/-1) src/server/compositor/dropping_schedule.h (+2/-0) src/server/compositor/queueing_schedule.cpp (+7/-0) src/server/compositor/queueing_schedule.h (+2/-0) src/server/compositor/schedule.h (+3/-0) src/server/compositor/stream.cpp (+11/-1) src/server/compositor/stream.h (+1/-1) tests/unit-tests/compositor/test_dropping_schedule.cpp (+25/-0) tests/unit-tests/compositor/test_multi_monitor_arbiter.cpp (+6/-0) tests/unit-tests/compositor/test_queueing_schedule.cpp (+19/-0) tests/unit-tests/compositor/test_stream.cpp (+17/-0) |
To merge this branch: | bzr merge lp://staging/~vanvugt/mir/schedule-nonblocking |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email: mp+318879@code.staging.launchpad.net |
Commit message
Improve concurrency of the IPC and compositor threads.
The compositor thread is presently blocked waiting for the IPC thread to
complete socket IO, which is bad. This reorders operations to avoid
that delay so the compositor thread is not hostage to IPC performance.
This is the first step on the road to fixing GPU saturation issues
(LP: #1211700, LP: #1665802) but is not yet a fix in itself.
To post a comment you must log in.
PASSED: Continuous integration, rev:4078 /mir-jenkins. ubuntu. com/job/ mir-ci/ 3098/ /mir-jenkins. ubuntu. com/job/ build-mir/ 4156 /mir-jenkins. ubuntu. com/job/ build-0- fetch/4243 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 4233 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 4233 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/4233 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4183/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4183/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4183/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4183/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4183/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4183 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4183/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 3098/rebuild
https:/