[lucid] plymouthd uses 30% cpu after xdm is started

Bug #723698 reported by Roman Yepishev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
xdm (Ubuntu)
Triaged
High
Unassigned

Bug Description

Binary package hint: plymouth

Linux lucidity 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux

plymouth:
  Installed: 0.8.2-2ubuntu2.2

I have a virtual machine running Lucid Lynx (10.04 LTS). In order to access X remotely I installed XDM and made it listen to XDMCP requests. However now after every reboot plymouthd process continues running eating ~30% of my CPU (4 cpus are passed to the kvm instance). This causes increased CPU usage by the virtual instance while not doing anything useful. When I connect to the virtual console through virt-manager/vnc it looks like plymouth has stuck and does not want to release the terminal to XDM. The virtual machine uses standard qemu cirrus video board with 9Mb of video RAM.

stracing the instance shows the following repetitive pattern:
ioctl(12, KDSETMODE, 0x1) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_START or TCSETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(11, FBIOPUTCMAP, 0x7fff8e481030) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 352125780}) = 0
epoll_wait(3, {}, 8, 0) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 352470975}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 352581238}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 352658269}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 353030692}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 353104928}) = 0
epoll_wait(3, {}, 8, 7) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 369024281}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 369183141}) = 0
ioctl(12, KDSETMODE, 0x1) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_START or TCSETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(11, FBIOPUTCMAP, 0x7fff8e481030) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 375682768}) = 0
epoll_wait(3, {}, 8, 10) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 380466955}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 380553068}) = 0
epoll_wait(3, {}, 8, 5) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 390216102}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 390340335}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 390419645}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 390793154}) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 390877838}) = 0
ioctl(12, KDSETMODE, 0x1) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_START or TCSETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(12, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 -opost -isig -icanon -echo ...}) = 0
ioctl(11, FBIOPUTCMAP, 0x7fff8e481030) = 0
clock_gettime(CLOCK_MONOTONIC, {811, 400483946}) = 0

fd 11 is /dev/fb0, fd12 is /dev/tty7

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: plymouth 0.8.2-2ubuntu2.2
ProcVersionSignature: Ubuntu 2.6.32-28.55-generic 2.6.32.27+drm33.12
Uname: Linux 2.6.32-28-generic x86_64
Architecture: amd64
CurrentDmesg:
 [ 10.981861] ppdev: user-space parallel port driver
 [ 11.482482] JBD: barrier-based sync failed on vda1-8 - disabling barriers
 [ 61.045749] JBD: barrier-based sync failed on vdb1-8 - disabling barriers
Date: Wed Feb 23 14:42:34 2011
DefaultPlymouth: /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.plymouth
InstallationMedia: Ubuntu 10.04.1 LTS "Lucid Lynx" - Release amd64 (20100816.1)
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: Bochs Bochs
ProcCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.32-28-generic root=UUID=6e00515a-17b9-404d-951d-212541d2a5bc ro quiet splash
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 VGA16 VGA
SourcePackage: plymouth
TextPlymouth: /lib/plymouth/themes/ubuntu-text/ubuntu-text.plymouth
dmi.bios.date: 01/01/2007
dmi.bios.vendor: Bochs
dmi.bios.version: Bochs
dmi.chassis.type: 1
dmi.chassis.vendor: Bochs
dmi.modalias: dmi:bvnBochs:bvrBochs:bd01/01/2007:svnBochs:pnBochs:pvr:cvnBochs:ct1:cvr:
dmi.product.name: Bochs
dmi.sys.vendor: Bochs

Revision history for this message
Roman Yepishev (rye) wrote :
Revision history for this message
Roman Yepishev (rye) wrote :

Screenshot of plymouth still being there when XDM should start displaying the login screen.

Revision history for this message
Steve Langasek (vorlon) wrote :

How did you install xdm and how have you configured it for use? The xdm package in Ubuntu should trigger a 'starting xdm' signal that terminates plymouth via /etc/init/plymouth-stop.conf.

Revision history for this message
Roman Yepishev (rye) wrote :

Well, it was regular apt-get install xdm, then there was debconf question about which dm I want to use where I selected xdm.
Then i commented the line for XDMCP (DisplayManager.requestPort) in /etc/X11/xdm/xdm-config and restarted the machine.

Could you please tell me where the upstart gets notified about starting xdm? I seem to be unable to find it in both maverick and lucid (and my maverick box with exactly the same xdm configuration is working fine)

Revision history for this message
Roman Yepishev (rye) wrote :

Hm, not really, there is a running /sbin/plymouthd --mode=boot --attach-to-session process in maverick box which does
clock_gettime(CLOCK_MONOTONIC, {10782, 715733930}) = 0
clock_gettime(CLOCK_MONOTONIC, {10782, 715834069}) = 0
epoll_wait(3, {}, 4, 999) = 0
clock_gettime(CLOCK_MONOTONIC, {10783, 713808482}) = 0
clock_gettime(CLOCK_MONOTONIC, {10783, 713923696}) = 0
epoll_wait(3, {}, 4, 1) = 0
clock_gettime(CLOCK_MONOTONIC, {10783, 717848465}) = 0
write(11, "\33[12;34f", 8) = 8
write(11, "\33[40m", 5) = 5
write(11, "\33[37m", 5) = 5
write(11, "Ubuntu 10.10", 12) = 12
write(11, "\33[14;35f", 8) = 8
write(11, "\33[33m", 5) = 5
write(11, ". ", 3) = 3
write(11, "\33[33m", 5) = 5
write(11, ". ", 3) = 3
write(11, "\33[33m", 5) = 5
write(11, ". ", 3) = 3
write(11, "\33[37m", 5) = 5
write(11, ".", 1) = 1
clock_gettime(CLOCK_MONOTONIC, {10783, 719605188}) = 0

Looks like plymouthd is not stopped on xdm.

Revision history for this message
Steve Langasek (vorlon) wrote :

> Could you please tell me where the upstart gets notified about starting
> xdm? I seem to be unable to find it in both maverick and lucid (and my
> maverick box with exactly the same xdm configuration is working fine)

Oh; I didn't notice in the initial bug report that this was with lucid. I've checked and the lucid version of xdm does not have an upstart job, which means that no, plymouth is *not* signalled that xdm is starting. So this is a bug in xdm, which should have been converted from sysvinit to upstart for 10.04 LTS and wasn't. And *still* hasn't been, even in natty. Reassigning this report to that package.

affects: plymouth (Ubuntu) → xdm (Ubuntu)
Changed in xdm (Ubuntu):
importance: Undecided → High
status: New → Triaged
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.