← Back to team overview

kernel-packages team mailing list archive

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

 

I agree, this is a horrible, horrible patch; and thank you very much for
writing it.

-- 
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:
  Invalid
Status in “powerd” package in Ubuntu:
  Fix Released
Status in “systemd” package in Ubuntu:
  Fix Committed

Bug description:
  [SRU justification]
  On the Galaxy Nexus (maguro) phone, the video driver wakes up udev and upstart 60 times a second sending "vsync" uevents.  This is a deeply flawed driver design, but we can't easily change it because the userspace side of the driver relies on the current behavior.  The only feasible workaround is to have udev filter out these events, so that the device isn't kept busy (with about 5% load) waking up system daemons.

  [Test case]
  1. Install the updated package on an x86 system.
  2. Reboot.
  3. Confirm that the machine boots successfully.
  4. Install the updated package on a non-maguro arm system.
  5. Reboot.
  6. Confirm that the machine boots successfully.
  7. Install the updated package on a maguro system.
  8. Reboot.
  9. Confirm that the machine boots successfully.
  10. Confirm using 'top' that udev is not taking up a significant percentage of the CPU time.

  [Regression potential]
  This is a change to a core system daemon, and while the code change is guarded by an architecture check, we should be careful about updating such a core package which could cause regressions, in particular on other ARM devices.  The test case should guard against this by ensuring we verify the effect of this change on non-maguro systems prior to releasing the SRU.

  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