Activity log for bug #1599649

Date Who What changed Old value New value Message
2016-07-06 21:53:39 Andrea Bernabei bug added bug
2016-07-06 21:58:11 Andrea Bernabei bug task added mir
2016-07-06 21:59:10 Andrea Bernabei bug task added unity8 (Ubuntu)
2016-07-06 21:59:19 Andrea Bernabei bug task added mir (Ubuntu)
2016-07-06 21:59:34 Andrea Bernabei bug task added qtmir (Ubuntu)
2016-07-06 22:01:16 Andrea Bernabei description It seems that independently from which Mir server I use (mir_demo_server, qtmir-demo-shell, unity8) the CPU usage on Arale when running any simple client seems to be quite high. My investigation started with a designer contacting me about https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1431957 and https://bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/1513450 Since the activity indicator visual has to be updated anyway, we were looking at the options we had to also make it less CPU consuming at the same time. It turned out it's not a matter of how you render it, anything that causes redraw at 60fps will cause high cpu usage, here are the results I got: Device: Arale, rc-proposed r370 Setup: clean flash + apt-get install qtmir-tests mir-demos (qtmir-tests will remove qtmir-android, you'll have to reinstall it until https://bugs.launchpad.net/ubuntu/+source/qtmir/+bug/1599614 is fixed) echo 806000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq echo 806000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq and the same for cpu1 and cpu2 (after bringing them online by scrolling scopes) Results: === Minimal Mir server + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness sudo mir_demo_server_minimal --arw-file (separate shell, phablet user) mir_demo_client_egltriangle -m /tmp/mir_socket 1 CORE ONLINE mir_demo_server: 12.5% mir_demo_client: 11% === Mir demo server + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness LD_PRELOAD=/lib/arm-linux-gnueabihf/libpthread.so.0 mir_demo_server --test-client /usr/bin/mir_demo_client_egltriangle 1 CORE ONLINE mir demo server: 20% mir_demo_client: 9% === Qt Mir demo shell + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness cd /usr/share/qtmir/qtmir-demo-shell MIR_SERVER_FILE=/tmp/mir_socket QT_QPA_PLATFORM=mirserver qmlscene ./qml-demo-shell.qml (on a separate shell, phablet user) MIR_SOCKET=/tmp/mir_socket QT_QPA_PLATFORM=ubuntumirclient sudo mir_demo_client_egltriangle -- --desktop_file_hint=dialer-app 1 to 2 CORES ONLINE (varying) qmlscene (Mir server): 27.5% CPU mir_demo_client: 10% CPU === Unity8 + test qml app === qmlscene test.qml --desktop_file_hint=dialer-app 2 CORES ONLINE Unity8: 30% qmlscene: 15% USC: 10% ==== QML TEST FILE ==== import QtQuick 2.4 import Ubuntu.Components 1.3 Item { anchors.fill: parent /*AnimatedSprite { id: sprite width: 69 height: 69 source: "spinner-spritesheet.png" frameCount: 74 frameSync: true frameWidth: 81 frameHeight: 81 loops: 100 }*/ /*ActivityIndicator { id: indicator running: true }*/ Rectangle { id: rect width: 69 height: 69 color: "orange" /*RotationAnimation on rotation { loops: Animation.Infinite from: 0 to: 360 }*/ /*NumberAnimation on x { loops: Animation.Infinite from: 0 to: 360 }*/ XAnimator { target: rect; from: 0; to: 360; duration: 15000 running: true } } Timer { interval: 10000 running: true onTriggered: Qt.quit() } } It seems that independently from which Mir server I use (mir_demo_server, qtmir-demo-shell, unity8) the CPU usage on Arale when running any simple client seems to be quite high. My investigation started with a designer contacting me about https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1431957 and https://bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/1513450 Since the activity indicator visual has to be updated anyway, we were looking at the options we had to also make it less CPU consuming at the same time. It turned out it's not a matter of how you render it, anything that causes redraw at 60fps will cause high cpu usage, here are the results I got: Tools: phablet-shell to run the commands top to see cpu usage Device: Arale, rc-proposed r370 Setup: clean flash + apt-get install qtmir-tests mir-demos (qtmir-tests will remove qtmir-android, you'll have to reinstall it until https://bugs.launchpad.net/ubuntu/+source/qtmir/+bug/1599614 is fixed) echo 806000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq echo 806000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq and the same for cpu1 and cpu2 (after bringing them online by scrolling scopes) Results: === Minimal Mir server + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness sudo mir_demo_server_minimal --arw-file (separate shell, phablet user) mir_demo_client_egltriangle -m /tmp/mir_socket 1 CORE ONLINE mir_demo_server: 12.5% mir_demo_client: 11% === Mir demo server + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness LD_PRELOAD=/lib/arm-linux-gnueabihf/libpthread.so.0 mir_demo_server --test-client /usr/bin/mir_demo_client_egltriangle 1 CORE ONLINE mir demo server: 20% mir_demo_client: 9% === Qt Mir demo shell + egltriangle demo === sudo su stop lightdm echo 2047 > /sys/class/backlight/lm3630_bled/brightness cd /usr/share/qtmir/qtmir-demo-shell MIR_SERVER_FILE=/tmp/mir_socket QT_QPA_PLATFORM=mirserver qmlscene ./qml-demo-shell.qml (on a separate shell, phablet user) MIR_SOCKET=/tmp/mir_socket QT_QPA_PLATFORM=ubuntumirclient sudo mir_demo_client_egltriangle -- --desktop_file_hint=dialer-app 1 to 2 CORES ONLINE (varying) qmlscene (Mir server): 27.5% CPU mir_demo_client: 10% CPU === Unity8 + test qml app === qmlscene test.qml --desktop_file_hint=dialer-app 2 CORES ONLINE Unity8: 30% qmlscene: 15% USC: 10% ==== QML TEST FILE ==== import QtQuick 2.4 import Ubuntu.Components 1.3 Item {     anchors.fill: parent     /*AnimatedSprite {         id: sprite         width: 69         height: 69         source: "spinner-spritesheet.png"         frameCount: 74         frameSync: true         frameWidth: 81         frameHeight: 81         loops: 100     }*/     /*ActivityIndicator {         id: indicator         running: true     }*/     Rectangle {         id: rect         width: 69         height: 69         color: "orange"         /*RotationAnimation on rotation {             loops: Animation.Infinite             from: 0             to: 360         }*/         /*NumberAnimation on x {             loops: Animation.Infinite             from: 0             to: 360         }*/         XAnimator {             target: rect;             from: 0;             to: 360;             duration: 15000             running: true         }     }     Timer {         interval: 10000         running: true         onTriggered: Qt.quit()     } }
2016-07-07 08:23:09 Launchpad Janitor mir (Ubuntu): status New Confirmed
2016-07-07 08:23:09 Launchpad Janitor qtmir (Ubuntu): status New Confirmed
2016-07-07 08:23:09 Launchpad Janitor unity8 (Ubuntu): status New Confirmed
2016-07-11 08:08:50 Albert Astals Cid bug added subscriber Albert Astals Cid
2016-07-12 07:38:44 Daniel van Vugt tags performance
2016-07-12 07:39:01 Daniel van Vugt summary High CPU usage when running simple clients with animations High CPU usage on arale when running simple clients with animations
2016-07-12 07:47:33 Daniel van Vugt mir: status New Incomplete
2016-07-12 07:47:38 Daniel van Vugt mir (Ubuntu): status Confirmed Incomplete
2016-07-12 08:55:40 Daniel van Vugt qtmir: status New Incomplete
2016-07-12 08:56:01 Daniel van Vugt qtmir (Ubuntu): status Confirmed Incomplete
2016-07-12 08:56:09 Daniel van Vugt unity8 (Ubuntu): status Confirmed Incomplete
2016-09-11 04:17:30 Launchpad Janitor unity8 (Ubuntu): status Incomplete Expired
2016-09-11 04:17:34 Launchpad Janitor mir: status Incomplete Expired
2016-09-11 04:17:36 Launchpad Janitor qtmir (Ubuntu): status Incomplete Expired
2016-09-11 04:17:38 Launchpad Janitor mir (Ubuntu): status Incomplete Expired
2016-09-11 04:17:41 Launchpad Janitor qtmir: status Incomplete Expired
2016-09-11 22:19:32 Andrea Bernabei mir: status Expired Confirmed
2016-09-11 22:19:36 Andrea Bernabei qtmir: status Expired Confirmed
2016-09-11 22:19:41 Andrea Bernabei unity8 (Ubuntu): status Expired Confirmed
2016-09-11 22:19:46 Andrea Bernabei mir (Ubuntu): status Expired Confirmed
2016-09-11 22:19:54 Andrea Bernabei qtmir (Ubuntu): status Expired Confirmed
2017-03-13 17:48:10 Michał Sawicz bug task deleted qtmir