← Back to team overview

kernel-packages team mailing list archive

[Bug 1234743] Re: omapfb module floods system with udev events on samsung galaxy nexus

 

This patch adds netlink filter rules to ignore change events from omapfb
if they are long enough to be a VSYNC event. It is a rather gross hack,
I don't want to expect the VSYNC= at a specific place in the raw packet
as the order or length of the other properties might change. But I
verified that doing a manual "echo change | tee
/sys/devices/platform/omapfb/uevent" still gets through, whereas the
offending vsync events are now quiet and don't wake up anything any
more.

For testing, I ran my locally built udev with "sudo stop udev", "sudo
./systemd-udevd --daemon", started a monitor with "./udevadm monitor
-e", and then:

 * screen activity now does not produce any omapfb change events any
more. Tested remotely with starting and stopping messaging-app  with
"start application APP_ID=messaging-app; sleep 5; pkill -e messaging-
app"

 * "echo change | sudo tee /sys/devices/platform/omapfb/uevent" shows
that synthetic uevent on both the KERNEL and LIBUDEV netlink sources.

Thanks to Omer for giving me ssh access to his maguro, which helped to
shorten the turnaround time. This device was running with
SurfaceFlinger, so for making triple sure another test should be done on
Mir.

** Patch added: "udev: filter omapfv VSYNC uevents from netfilter"
   https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1234743/+attachment/3880060/+files/0031-ignore-omap-vsync.patch

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1234743

Title:
  omapfb module floods system with udev events on samsung galaxy nexus

Status in Upstart:
  Fix Released
Status in “linux” package in Ubuntu:
  Invalid
Status in “lxc-android-config” package in Ubuntu:
  In Progress
Status in “powerd” package in Ubuntu:
  Fix Released
Status in “systemd” package in Ubuntu:
  Fix Committed

Bug description:
  Playing an mp4 on a Samsung Galaxy Nexus using today's image (3 Oct
  2013) for 30 minutes I observed that init is busy and also consuming
  heap quite rapidly.

  Attached is the output from running health-check (found in PPA:colin-
  king/white) on init pid 1114.

  Key points:

  1. messages being read/written at ~600 messages a second, hence the high context switch rate and ~4.9% CPU load. 
  2. heap consumption: ~30K a second using brk() and 2K a second via mmap

  To reproduce:

  Install health-check:

  sudo add-apt-repository ppa:colin-king/white
  sudo apt-get update && sudo apt-get install health-check

  Download a large mp4 to the phone. Keep screen from blanking using:

  sudo powerd-cli display on bright &

  then play the mp4:

  dbus-launch mediaplayer-app test.mp4
  --desktop_file_hint=/usr/share/applications/mediaplayer-app.desktop
  --stage_hint=main_stage

  And then observe that init is busy for 300 seconds:

  ps -e | grep init
      1 ?        00:02:56 init
    348 ?        00:00:00 init
   1114 ?        00:03:22 init

  sudo health-check -p 1114 -d 300

  Attached are my results for a 30 minute run.

To manage notifications about this bug go to:
https://bugs.launchpad.net/upstart/+bug/1234743/+subscriptions