Mir

Merge lp://qastaging/~vanvugt/mir/fix-ClientLatency-of-5 into lp://qastaging/mir

Proposed by Daniel van Vugt
Status: Work in progress
Proposed branch: lp://qastaging/~vanvugt/mir/fix-ClientLatency-of-5
Merge into: lp://qastaging/mir
Prerequisite: lp://qastaging/~vanvugt/mir/print-ClientLatency-stats
Diff against target: 37 lines (+13/-0)
1 file modified
tests/acceptance-tests/test_latency.cpp (+13/-0)
To merge this branch: bzr merge lp://qastaging/~vanvugt/mir/fix-ClientLatency-of-5
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Alan Griffiths Needs Information
Mir CI Bot continuous-integration Approve
Mir development team Pending
Review via email: mp+285311@code.qastaging.launchpad.net

This proposal supersedes a proposal from 2016-02-08.

Commit message

Fix weird erratic ClientLatency stats that were regularly spiking up
to 5 (frames of latency) for one of the buffer IDs.

Turns out the problem is the server failing to display the client's first
frame. And thereafter all stats for that first frame's buffer ID were
+3, (correct answer is 2, so we saw 5).

So this change just makes the test more robust to deal with it. We still
need to find out why the server is failing to display the client's
first frame...

Description of the change

Before:
[ RUN      ] ClientLatency.triple_buffered_client_uses_all_buffers
[  debug   ] 99 frames sampled, averaging 2.9 frames latency
[  debug   ]  0:  0  1  1  1  3  2  2  5  2  2
[  debug   ] 10:  5  2  2  5  2  2  5  2  2  5
[  debug   ] 20:  2  2  5  2  2  5  2  2  5  2
[  debug   ] 30:  2  5  2  2  5  2  2  5  2  2
[  debug   ] 40:  5  2  2  5  2  2  5  2  2  5
[  debug   ] 50:  2  2  5  2  2  5  2  2  5  2
[  debug   ] 60:  2  5  2  2  5  2  2  5  2  2
[  debug   ] 70:  5  2  2  5  2  2  5  2  2  5
[  debug   ] 80:  2  2  5  2  2  5  2  2  5  2
[  debug   ] 90:  2  5  2  2  5  2  2  5  2
[       OK ] ClientLatency.triple_buffered_client_uses_all_buffers (1711 ms)

After:
[ RUN      ] ClientLatency.triple_buffered_client_uses_all_buffers
[  debug   ] 99 frames sampled, averaging 1.9 frames latency
[  debug   ]  0:  0  0  1  1  2  2  2  2  2  2
[  debug   ] 10:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 20:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 30:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 40:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 50:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 60:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 70:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 80:  2  2  2  2  2  2  2  2  2  2
[  debug   ] 90:  2  2  2  2  2  2  2  2  2
[       OK ] ClientLatency.triple_buffered_client_uses_all_buffers (3725 ms)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:3298
http://jenkins.qa.ubuntu.com/job/mir-ci/6227/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-android-vivid-i386-build/5826
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-clang-vivid-amd64-build/4733
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-vivid-touch/5782
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-xenial-touch/401
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-xenial-amd64-ci/551
        deb: http://jenkins.qa.ubuntu.com/job/mir-xenial-amd64-ci/551/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-xenial-i386-ci/551
        deb: http://jenkins.qa.ubuntu.com/job/mir-xenial-i386-ci/551/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-vivid-armhf/5779
        deb: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-vivid-armhf/5779/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-runner-touch/8184
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/27383
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-xenial-armhf/397
        deb: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-xenial-armhf/397/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-runner-xenial-touch/251
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/27384

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/mir-ci/6227/rebuild

review: Approve (continuous-integration)
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3300
https://mir-jenkins.ubuntu.com/job/mir-ci/258/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build/46
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/52
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/48
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/48
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=amd64,compiler=gcc,platform=mesa,release=xenial/48
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=amd64,compiler=gcc,platform=mesa,release=xenial/48/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/48
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/48/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/48
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/48/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=i386,compiler=gcc,platform=mesa,release=xenial/48
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-advanced/arch=i386,compiler=gcc,platform=mesa,release=xenial/48/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/258/rebuild

review: Approve (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Why do we need this?

I'd rather understand the "Compositor missed a frame!" problem than add a test for it and simultaneously work around the test failure.

review: Needs Information
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:3300
http://jenkins.qa.ubuntu.com/job/mir-ci/6235/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-android-vivid-i386-build/5835
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-clang-vivid-amd64-build/4742
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-vivid-touch/5791
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-xenial-touch/407
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-xenial-amd64-ci/559
        deb: http://jenkins.qa.ubuntu.com/job/mir-xenial-amd64-ci/559/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-xenial-i386-ci/559
        deb: http://jenkins.qa.ubuntu.com/job/mir-xenial-i386-ci/559/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-vivid-armhf/5788
        deb: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-vivid-armhf/5788/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-runner-touch/8192
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/27402
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-xenial-armhf/403
        deb: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-builder-xenial-armhf/403/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/mir-mediumtests-runner-xenial-touch/257
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/27409

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/mir-ci/6235/rebuild

review: Approve (continuous-integration)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

> Why do we need this?
>
> I'd rather understand the "Compositor missed a frame!" problem than add a test
> for it and simultaneously work around the test failure.

It's a regression test written in advance of some future fix (and until then, disabled). That's pretty standard procedure.

Unmerged revisions

3300. By Daniel van Vugt

Tidy up and fix iterator madness.

3299. By Daniel van Vugt

Generalise and tidy up the fix.

3298. By Daniel van Vugt

Fix weird erratic ClientLatency stats that were regularly spiking up
to 5 (frames of latency) for one of the buffer IDs.

Turns out the problem is the server failing to display the client's first
frame. And thereafter all stats for that first frame's buffer ID were
+3, (correct answer is 2, so we saw 5).

So this change just makes the test more robust to deal with it. We still
need to find out why the server is failing to display the client's
first frame...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches