2008-02-02 11:46:20

by Petr Vandrovec

[permalink] [raw]
Subject: udevd induced deadlock in loading kernel modules?

Mailer on sf.net says that email address in udev's README is obsolete.
Oops...
Petr

-------- Original Message --------
Subject: udevd induced deadlock in loading kernel modules?
Date: Sat, 2 Feb 2008 12:07:19 +0100
From: Petr Vandrovec <[email protected]>
To: [email protected]
CC: [email protected]

Hello,
today my system hung during boot, while loading ftdi_sio & loop - I
have two ftdi serial ports,
and apparently this tricked udevd to start two concurrent modprobes for
them - so I ended up with
strance "ftdi_sio: gave up waiting for init of module usbserial." for
each symbol it tried to
import, until I kill-9 process 3137 (see below). After that loop got
loaded, and second ftdi's
load finished as well.

Unfortunately I do not have stacktraces of hung modprobe processes.
Maybe next time, but it
does not look very reproducible.

Kernel is current git (2.6.24,
ed50d6cbc394cd0966469d3e249353c9dd1d38b9), udev is Debian's 0.114-2,
and module-init-tools are Debian's 3.3-pre11-4. Kernel is 64bit amd64
with almost all debugging
enabled, userspace is 32bit.
Thanks,
Petr Vandrovec

usbcore: registered new interface driver usbserial
/usr/src/git/libata-pv/drivers/usb/serial/usb-serial.c: USB Serial
support registered for generic
usbcore: registered new interface driver usbserial_generic
/usr/src/git/libata-pv/drivers/usb/serial/usb-serial.c: USB Serial
Driver core
ftdi_sio: gave up waiting for init of module usbserial.
ftdi_sio: Unknown symbol usb_serial_port_softint
ftdi_sio: gave up waiting for init of module usbserial.
ftdi_sio: Unknown symbol usb_serial_disconnect
ftdi_sio: gave up waiting for init of module usbserial.
ftdi_sio: Unknown symbol usb_serial_probe
ftdi_sio: gave up waiting for init of module usbserial.
ftdi_sio: Unknown symbol usb_serial_register
ftdi_sio: gave up waiting for init of module usbserial.
ftdi_sio: Unknown symbol usb_serial_deregister
loop: module loaded
/usr/src/git/libata-pv/drivers/usb/serial/usb-serial.c: USB Serial
support registered for FTDI USB Serial Device
ftdi_sio 4-2:1.0: FTDI USB Serial Device converter detected
/usr/src/git/libata-pv/drivers/usb/serial/ftdi_sio.c: Detected FT8U232AM
usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB0
ftdi_sio 5-1:1.0: FTDI USB Serial Device converter detected
/usr/src/git/libata-pv/drivers/usb/serial/ftdi_sio.c: Detected FT8U232AM
usb 5-1: FTDI USB Serial Device converter now attached to ttyUSB1
usbcore: registered new interface driver ftdi_sio
/usr/src/git/libata-pv/drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI
Serial Converters Driver
fuse init (API version 7.9)

1042 tty1 Ss+ 0:00 init boot
1045 tty1 S+ 0:00 \_ /bin/sh /etc/init.d/rc S
3954 tty1 S+ 0:00 \_ /bin/sh -e
/etc/rcS.d/S20module-init-tools start
3957 tty1 S+ 0:00 \_ /bin/sh -e
/etc/rcS.d/S20module-init-tools start
3958 tty1 D+ 0:00 \_ modprobe loop
1048 tty1 S+ 0:00 /bin/bash -i -m
4074 tty1 R+ 0:00 \_ ps axf
1136 ? S<s 0:01 udevd --daemon
3096 ? S< 0:00 \_ udevd --daemon
3137 ? S< 0:00 | \_ /sbin/modprobe --use-blacklist
usb:v0403p6001d0200dc00dsc00dp00icFFiscFFipFF
3101 ? S< 0:00 \_ udevd --daemon
3138 ? D< 0:00 \_ /sbin/modprobe --use-blacklist
usb:v0403p6001d0200dc00dsc00dp00icFFiscFFipFF
2612 ? S< 0:00 /bin/sh -e /lib/udev/net.agent
4069 ? S< 0:00 \_ sleep 1
2939 ? S< 0:00 /bin/sh -e /lib/udev/net.agent
4073 ? S< 0:00 \_ sleep 1


2008-02-02 19:10:38

by Greg KH

[permalink] [raw]
Subject: Re: udevd induced deadlock in loading kernel modules?

On Sat, Feb 02, 2008 at 03:21:16AM -0800, Petr Vandrovec wrote:
> Mailer on sf.net says that email address in udev's README is obsolete.
> Oops...
> Petr
>
> -------- Original Message --------
> Subject: udevd induced deadlock in loading kernel modules?
> Date: Sat, 2 Feb 2008 12:07:19 +0100
> From: Petr Vandrovec <[email protected]>
> To: [email protected]
> CC: [email protected]
>
> Hello,
> today my system hung during boot, while loading ftdi_sio & loop - I have
> two ftdi serial ports,
> and apparently this tricked udevd to start two concurrent modprobes for
> them - so I ended up with
> strance "ftdi_sio: gave up waiting for init of module usbserial." for each
> symbol it tried to
> import, until I kill-9 process 3137 (see below). After that loop got
> loaded, and second ftdi's
> load finished as well.
>
> Unfortunately I do not have stacktraces of hung modprobe processes. Maybe
> next time, but it
> does not look very reproducible.
>
> Kernel is current git (2.6.24, ed50d6cbc394cd0966469d3e249353c9dd1d38b9),
> udev is Debian's 0.114-2,
> and module-init-tools are Debian's 3.3-pre11-4. Kernel is 64bit amd64 with
> almost all debugging
> enabled, userspace is 32bit.

This sounds like a Debian bug in the init process logic. Care to file a
bug in their system for it?

thanks,

greg k-h