On the u-s-d side there is some potential optimization: Ideally the
brightness would always be set through xrandr XBACKLIGHT, which works
unprivileged, and only fall back to the helper if that is not available
and the brightness needs to be set via sysfs properties. However, even
then there is no reason why --get-brightness would need particular
privileges: these sysfs attributes are world-readable, and only --set-
brightness (writing the attribute) needs root. This would already cut
away half of the overhead.
** Changed in: policykit-1 (Ubuntu)
Milestone: None => ubuntu-16.10
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to policykit-1 in Ubuntu.
https://bugs.launchpad.net/bugs/1626651
Title:
brightness keys are handled slower in Yakkety than Xenial
Status in policykit-1 package in Ubuntu:
Triaged
Status in unity-settings-daemon package in Ubuntu:
Triaged
Bug description:
I've noticed on Lenovo X220 and X230 laptops that pressing brightness
keys on Yakkety seems less responsive and slower than Xenial. I ran
forkstat on Xenial and just observed udev being forked off:
Xenial:
$ sudo forkstat
Time Event PID Info Duration Process
17:37:35 fork 273 parent /lib/systemd/systemd-udevd
17:37:35 fork 1977 child /lib/systemd/systemd-udevd
17:37:35 exit 1977 0 0.008 /lib/systemd/systemd-udevd
Whereas on Yakkety, there is far more activity:
Time Event PID Info Duration Process
16:35:34 fork 2626 parent update-notifier
16:35:34 fork 2645 child update-notifier
16:35:34 exec 2645 /usr/bin/python3
/usr/share/apport/apport-checkreports
16:35:34 exit 2645 256 0.221 /usr/bin/python3
/usr/share/apport/apport-checkreports
16:35:34 fork 2626 parent update-notifier
16:35:34 fork 2646 child update-notifier
16:35:34 exec 2646 /usr/bin/python3
/usr/share/apport/apport-checkreports --system
16:35:34 exit 2646 256 0.188 /usr/bin/python3
/usr/share/apport/apport-checkreports --system
16:35:36 fork 1576 parent
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 fork 2647 child
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 exec 2647
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-max-brightness
16:35:36 exit 2647 0 0.008
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-max-brightness
16:35:36 fork 1576 parent
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 fork 2648 child
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 exec 2648
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-brightness
16:35:36 exit 2648 0 0.006
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-brightness
16:35:36 fork 1576 parent
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 fork 2649 child
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 exec 2649
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-brightness
16:35:36 exit 2649 0 0.007
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-brightness
16:35:36 fork 1576 parent
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 fork 2650 child
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 exec 2650
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-max-brightness
16:35:36 exit 2650 0 0.006
/usr/lib/unity-settings-daemon/usd-backlight-helper --get-max-brightness
16:35:36 fork 1576 parent
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 fork 2651 child
/usr/lib/unity-settings-daemon/unity-settings-daemon
16:35:36 exec 2651 pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 clone 2651 parent pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 clone 2652 thread pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 clone 2651 parent pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 clone 2653 thread pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 fork 1 parent /sbin/init splash
16:35:36 fork 2654 child /sbin/init splash
Time Event PID Info Duration Process
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2655 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2656 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2657 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2658 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2659 child /lib/systemd/systemd-udevd
16:35:36 exit 2659 0 0.005 /lib/systemd/systemd-udevd
16:35:36 exit 2658 0 0.006 /lib/systemd/systemd-udevd
16:35:36 exit 2657 0 0.007 /lib/systemd/systemd-udevd
16:35:36 exit 2656 0 0.008 /lib/systemd/systemd-udevd
16:35:36 exit 2655 0 0.008 /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2660 child /lib/systemd/systemd-udevd
16:35:36 exit 2660 0 0.001 /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2661 child /lib/systemd/systemd-udevd
16:35:36 exit 2661 0 0.002 /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2662 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2663 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2664 child /lib/systemd/systemd-udevd
16:35:36 fork 2654 parent /sbin/init splash
16:35:36 fork 2665 child (systemd)
16:35:36 exec 2654 /lib/systemd/systemd --user
16:35:36 exit 2662 0 0.010 /lib/systemd/systemd-udevd
16:35:36 exit 2664 0 0.007 /lib/systemd/systemd-udevd
Time Event PID Info Duration Process
16:35:36 exit 2663 0 0.009 /lib/systemd/systemd-udevd
16:35:36 fork 2654 parent /lib/systemd/systemd --user
16:35:36 fork 2666 child /lib/systemd/systemd --user
16:35:36 exit 2666 0 0.001 /lib/systemd/systemd --user
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2667 child /lib/systemd/systemd-udevd
16:35:36 exit 2667 0 0.003 /lib/systemd/systemd-udevd
16:35:36 fork 2654 parent /lib/systemd/systemd --user
16:35:36 fork 2668 child /lib/systemd/systemd --user
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2669 child /lib/systemd/systemd-udevd
16:35:36 exit 2669 0 0.002 /lib/systemd/systemd-udevd
16:35:36 exec 2668 /bin/systemctl --user set-environment
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2670 child /lib/systemd/systemd-udevd
16:35:36 exit 2670 0 0.001 /lib/systemd/systemd-udevd
16:35:36 exit 2668 0 0.009 /bin/systemctl --user set-environment
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/0/bus
16:35:36 fork 2 parent [kthreadd]
16:35:36 fork 2671 child [kworker/u16:4]
16:35:36 exec 2671 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/dbus.socket]
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2672 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2673 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2674 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2675 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2676 child /lib/systemd/systemd-udevd
16:35:36 exit 2671 0 0.005 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/dbus.socket]
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
Time Event PID Info Duration Process
16:35:36 fork 2677 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2678 child /lib/systemd/systemd-udevd
16:35:36 exit 2653 0 0.126 pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 exit 2652 0 0.126 pkexec
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 exec 2651
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 exit 2673 0 0.013 /lib/systemd/systemd-udevd
16:35:36 exit 2672 0 0.013 /lib/systemd/systemd-udevd
16:35:36 exit 2678 0 0.011 /lib/systemd/systemd-udevd
16:35:36 exit 2675 0 0.013 /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2679 child /lib/systemd/systemd-udevd
16:35:36 exit 2674 0 0.020 /lib/systemd/systemd-udevd
16:35:36 exit 2651 0 0.146
/usr/lib/unity-settings-daemon/usd-backlight-helper --set-brightness 2250
16:35:36 fork 2 parent [kthreadd]
16:35:36 fork 2680 child [kworker/u16:5]
16:35:36 exec 2680 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/session-2.scope]
16:35:36 exit 2676 0 0.022 /lib/systemd/systemd-udevd
16:35:36 exit 2679 0 0.003 /lib/systemd/systemd-udevd
16:35:36 exit 2677 0 0.022 /lib/systemd/systemd-udevd
16:35:36 exit 2680 0 0.003 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/session-2.scope]
16:35:36 fork 2654 parent /lib/systemd/systemd --user
16:35:36 fork 2681 child /lib/systemd/systemd --user
16:35:36 exec 2681 /bin/kill -s 58 2654
16:35:36 exit 2681 0 0.200 /bin/kill -s 58 2654
16:35:36 fork 2 parent [kthreadd]
16:35:36 fork 2682 child [kworker/u16:5]
16:35:36 exec 2682 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/systemd-exit.service]
16:35:36 exit 2654 0 0.294 /lib/systemd/systemd --user
16:35:36 exit 2682 0 0.004 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/systemd-exit.service]
16:35:36 exit 2665 9 0.272 (systemd)
16:35:36 fork 2 parent [kthreadd]
Time Event PID Info Duration Process
16:35:36 fork 2683 child [kworker/u16:5]
16:35:36 exec 2683 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/init.scope]
16:35:36 fork 2 parent [kthreadd]
16:35:36 fork 2684 child [kworker/u16:4]
16:35:36 fork 2 parent [kthreadd]
16:35:36 fork 2685 child [systemd-cgroups]
16:35:36 exec 2684 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]]
16:35:36 exec 2685 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice]
16:35:36 exit 2683 0 0.005 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]/init.scope]
16:35:36 exit 2685 0 0.005 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice]
16:35:36 exit 2684 0 0.007 [/lib/systemd/systemd-cgroups-agent
/user.slice/user-0.slice/[email protected]]
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2686 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2687 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2688 child /lib/systemd/systemd-udevd
16:35:36 fork 233 parent /lib/systemd/systemd-udevd
16:35:36 fork 2689 child /lib/systemd/systemd-udevd
16:35:36 exit 2687 0 0.014 /lib/systemd/systemd-udevd
16:35:36 exit 2689 0 0.013 /lib/systemd/systemd-udevd
16:35:36 exit 2686 0 0.015 /lib/systemd/systemd-udevd
16:35:36 exit 2688 0 0.015 /lib/systemd/systemd-udevd
I suspect some of this overhead explains the slower responsive feel to
the brightness buttons. Anyhow, seems like a bit of an overkill for
all these processes to be running especially compared to Xenial.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/policykit-1/+bug/1626651/+subscriptions
--
Mailing list: https://launchpad.net/~touch-packages
Post to : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help : https://help.launchpad.net/ListHelp