On Tuesday 22 February 2005 03:41 pm, Alan Stern wrote: > usb_device_read acquires a couple of locks, one for the USB bus list and > one for the root hub of the bus it's looking at.  I don't know which one > occurs at offset 229 on your system -- maybe you can tell.  Oddly enough, > neither of those locks is for a USB device like the Maxtor drive.  So it's > not at all clear why plugging in the drive should mess up kudzu.  Or why > the blockage should clear up after a couple of minutes. > > Perhaps we can find out by looking at other entries in the stack trace.   > Of particular interest are the khubd, usb-storage, and scsi_eh processes. Alan, See below for stack traces and also note that the stack traces are after I modified usb_device_read to do down_interruptible instead of down. (kudzu gets stuck regardless though.) Let me know if you want me to revert the down_interruptible change and repost the stack trace. I wrongly related this to the 2 minute hang - this one is forever if I let kudzu start during boot. If I run kudzu after boot is complete, it gets stuck and everything else on that drive (mount, unmount ..) also gets stuck. Sorry about the confusion. Attached is the disassembly of usb_device_read from my machine. Parag SysRQ + T for relevant processes ====================== hald D 00000020e12be31a 0 2558 1 3272 2545 (NOTLB) ffff81002c76fb48 0000000000000082 ffff81002c76fb28 ffffffff88515044 000000862c76fb08 ffff81002eb10800 0000000000000249 ffff810001c56030 ffff81002c76fc08 0000000000000002 Call Trace: {:scsi_mod:scsi_request_fn+2356} {io_schedule+15} {sync_page+70} {__wait_on_bit_lock+69} {sync_page+0} {__lock_page+167} {wake_bit_function+0} {wake_bit_function+0} {do_generic_mapping_read+660} {file_read_actor+0} {__generic_file_aio_read+420} {generic_file_read+187} {autoremove_wake_function+0} {do_brk+720} {vfs_read+225} {sys_read+80} {system_call+126} scsi_eh_2 D 00000000ffffffff 0 3581 1 3582 3277 (L-TLB) ffff81002bdc1d88 0000000000000046 00000000000001e3 ffff81002bed8800 ffff81002bdc1d48 ffff81002c25a800 0000000000000812 ffffffff803df080 ffff81002bdc1ed0 ffff81002c25a800 Call Trace: {wait_for_completion+437} {default_wake_function+0} {default_wake_function+0} {:usb_storage:usb_stor_stop_transport+35} {:usb_storage:command_abort+256} {:scsi_mod:scsi_error_handler+2172} {child_rip+8} {:scsi_mod:scsi_error_handler+0} {child_rip+0} usb-storage D 00000000ffffffff 0 3582 1 3627 3581 (L-TLB) ffff81002b8e1c08 0000000000000046 ffff81002b9e1000 0000000000000010 000000762b8e1c98 ffff81002bed8800 00000000000003dd ffff81002eb10800 00000000c0040280 000000000000001f Call Trace: {wait_for_completion+437} {thread_return+253} {default_wake_function+0} {default_wake_function+0} {:usb_storage:usb_stor_msg_common+550} {dma_unmap_sg+134} {:usb_storage:usb_stor_bulk_transfer_buf+143} {:usb_storage:usb_stor_Bulk_transport+203} {:usb_storage:usb_stor_invoke_transport+59} {:usb_storage:usb_stor_transparent_scsi_command+27} {:usb_storage:usb_stor_control_thread+756} {finish_task_switch+195} {child_rip+8} {:usb_storage:usb_stor_control_thread+0} {child_rip+0} scsi_eh_3 S 00000000ffffffff 0 3627 1 3634 3582 (L-TLB) ffff81002bd47d68 0000000000000046 ffff81002bd47d28 ffffffff80219b32 000000742bc387c0 ffff81002bc387c0 0000000000000226 ffff81002b9fc030 ffff81002bd47d48 ffffffff80147ab1 Call Trace: {_atomic_dec_and_lock+290} {free_uid+33} {__down_interruptible+486} {default_wake_function+0} {__down_failed_interruptible+53} {:scsi_mod:.text.lock.scsi_error+45} {child_rip+8} {:scsi_mod:scsi_error_handler+0} {child_rip+0} usb-storage S 00000020f04e3d81 0 3634 1 3627 (L-TLB) ffff81002bc53df8 0000000000000046 ffff81002bc53d80 0000000000001000 000000732b9eba7c ffff81002b9fc030 00000000000005ad ffff81002ebc9800 ffff81002bc53de8 ffffffff8853570f Call Trace: {:usb_storage:usb_stor_bulk_transfer_buf+143} {__down_interruptible+486} {default_wake_function+0} {__down_failed_interruptible+53} {:usb_storage:.text.lock.usb+5} {finish_task_switch+195} {child_rip+8} {:usb_storage:usb_stor_control_thread+0} {child_rip+0} khubd S 0000001ddd381da1 0 125 1 182 9 (L-TLB) ffff810001ecbe18 0000000000000046 0000000000000246 ffff81002ba2c400 0000007401ecbdd8 ffff810001e9a800 0000000000003023 ffff81002bed8070 ffff810001ecbe18 ffffffff8015c4c9 Call Trace: {prepare_to_wait+345} {hub_thread+4118} {free_pages_bulk+1007} {autoremove_wake_function+0} {autoremove_wake_function+0} {child_rip+8} {hub_thread+0} {child_rip+0}