[Bug 1626651] Re: brightness keys are handled slower in Yakkety than Xenial
Martin Pitt
martin.pitt at ubuntu.com
Thu Sep 22 19:27:38 UTC 2016
I just dist-upgraded again, and with 4.8.0-14 my brightness keys work
again (bug 1626429). Under i3 (no unity-settings-daemon), I get a tame
and immediate reaction:
UDEV [38372.886325] change /devices/pci0000:00/0000:00:02.0/backlight/acpi_video0 (backlight)
ACTION=change
DEVPATH=/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0
ID_PATH=pci-0000:00:02.0
ID_PATH_TAG=pci-0000_00_02_0
SEQNUM=2735
SOURCE=hotkey
SUBSYSTEM=backlight
SYSTEMD_WANTS=systemd-backlight at backlight:acpi_video0.service
TAGS=:systemd:
USEC_INITIALIZED=9377712
21:07:21 fork 1298 parent /lib/systemd/systemd-udevd
21:07:21 fork 25614 child /lib/systemd/systemd-udevd
21:07:21 exit 25614 0 0.002 /lib/systemd/systemd-udevd
which matches the one uevent, but there is no userspace helper involved.
Brightness change still works as it's hardwired into the driver. This
proves that with just kernel and udev rules there is no delay and waste.
Under unity, with unity-settings-daemon, I now confirm the flurry of
userspace action. The main pain point is the pkexec in
pkexec /usr/lib/unity-settings-daemon/usd-backlight-helper --get-
brightness
as that starts a full new PAM session, including systemd --user and
other expensive stuff. Our /etc/pam.d/polkit-1 pulls in "common-
session"; when changing this to "common-session-noninteractive" it
becomes muuuch cheaper, but this would again be wrong for cases where we
actually do want to run a new session for whatever we run there -- I'm
trying to think about cases where this would break. I. e. should pk-exec
behave more like "su" or "su -".
It would probably be best to grep the archive for usage of pk-exec,
review whether any of it requires an interactive PAM session, and if not
switch it to noninteractive.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd 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/user at 0.service/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/user at 0.service/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/user at 0.service/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/user at 0.service/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/user at 0.service/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/user at 0.service]
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/user at 0.service/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/user at 0.service]
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
More information about the foundations-bugs
mailing list