Re: 2.6.13-mm1 - MAKEDEV - /proc/devices

From: Andrew Morton
Date: Thu Sep 01 2005 - 17:20:51 EST


Marco Perosa <marco.perosa@xxxxxxxx> wrote:
>
> Hi there,
> I've just tried the 2.6.13-mm1 kernel,

Thanks for doing that.

> and at the new boot i've noticed a strange stop in the init sequence.
> Not a freeze, the system will shutdown with ctrl+alt+canc (even though it give a timeout on /dev/initctl).
> After some tests i've figured out that the problem is in the init script /etc/init.d/makedev.
> In fact if i run a "MAKEDEV something" in the /dev directory, i obtain the same problem.
> When this happens, /proc/devices becomes also inacessible, and it's impossible to exec any other program that requires a new shell.
> ps shows them ('MAKEDEV something' and 'cat /proc/devices') as D+.
>
> It all works fine removing the makedev script from the init sequence, i use udev so it's not a problem at all.
> Anyway, it should be good to figure out where's the problem, so, in the hoping that it will be useful, I enclose the config of my kernel and the kernel trace (the process is #2786).
>

This:

Sep 1 20:14:30 localhost kernel: MAKEDEV D F56A0000 0 2786 2758 (NOTLB)
Sep 1 20:14:30 localhost kernel: f5553ea8 f54f8c50 c0671a20 f56a0000 c18dfa80 00000000 f5553ea4 c014cc2e
Sep 1 20:14:30 localhost kernel: c18df080 f56a0000 0000006b 0003d741 62301160 00000078 f54f8c50 f54f8d78
Sep 1 20:14:30 localhost kernel: f5552000 c0566020 00000246 f5553ee4 c04dc9d4 c0566028 f54f8c50 00000001
Sep 1 20:14:30 localhost kernel: Call Trace:
Sep 1 20:14:30 localhost kernel: [__down+132/320] __down+0x84/0x140
Sep 1 20:14:30 localhost kernel: [__sched_text_start+10/16] __down_failed+0xa/0x10
Sep 1 20:14:30 localhost kernel: [.text.lock.char_dev+11/121] .text.lock.char_dev+0xb/0x79
Sep 1 20:14:30 localhost kernel: [devinfo_start+103/176] devinfo_start+0x67/0xb0
Sep 1 20:14:30 localhost kernel: [traverse+112/432] traverse+0x70/0x1b0
Sep 1 20:14:30 localhost kernel: [seq_lseek+168/288] seq_lseek+0xa8/0x120
Sep 1 20:14:30 localhost kernel: [vfs_llseek+74/80] vfs_llseek+0x4a/0x50
Sep 1 20:14:30 localhost kernel: [sys_llseek+83/176] sys_llseek+0x53/0xb0
Sep 1 20:14:30 localhost kernel: [syscall_call+7/11] syscall_call+0x7/0xb
Sep 1 20:14:30 localhost kernel: ---------------------------
Sep 1 20:14:30 localhost kernel: | preempt count: 00000002 ]
Sep 1 20:14:30 localhost kernel: | 2 level deep critical section nesting:
Sep 1 20:14:30 localhost kernel: ----------------------------------------

I'd assume that convert-proc-devices-to-use-seq_file-interface.patch got
confused and failed to release chrdevs_lock. That

(info->cur_record >= info->num_records)

in devinfo_stop() looks fishy.

Over to you, Neil...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/