On Fri, 25 Mar 2005 10:22:28 +0100, Stefan Seyfried <[EMAIL PROTECTED]> wrote: > Andy Isaacson wrote: > > > In the SysRq-T trace I see one interesting process: most things are > > in D state in refrigerator(), but sh shows the following traceback: > > > > wait_for_completion > > call_usermodehelper > > kobject_hotplug > > kobject_del > > class_device_del > > class_device_unregister > > mousedev_disconnect > > input_unregister_device > > alps_disconnect > > psmouse_disconnect > > serio_driver_remove > > device_release_driver > > serio_release_driver > > i think the following happens (but i am in no case an expert for this): > - alps driver suspends > - alps driver unregisters the device > - udev is called via call_usermodehelper (which fails since userspace > is stopped) > - now somebody wants to wait for udev which does not work right.
The thing is that kobject_uevent calls call_usermodehelper with wait=0. That means that it conly waits for execve("/sbin/hotplug") call to complete, it does not wait for the entire process ti complete. If you look at Andy's second trace you will see that we are waiting for the disk I/O to get /sbin/hotplug from the disk. Pavel, do you know why IO does not complete? khelper is a kernel thread so it is marked with PF_NOFREEZE. Could it be that we managed to freeze kblockd? -- Dmitry - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/