Hi! I was doing some stress testing on the packet writing patch for the 2.4.19-pre2 kernel. I was unpacking a kernel tarball to a cdrw disk on a freecom usb cdrw device. After a while, some problem occurred which made usb-storage decide to perform a bus reset. Unfortunately it needed to allocate memory first and the memory allocator decided it needed to do IO, which led to a deadlock.
I see that some changes went into 2.5.4-pre2 which I think would fix this problem. (Addition of a "mem_flags" parameter to various memory allocating functions in the usb subsystem.) Are there any plans to include this fix in the 2.4.x kernel tree? (I didn't see it in the latest batch from Greg KH.) For reference, here is a stack trace of the stuck scsi_eh_1 kernel thread. There are some false entries, but you can see that uhci_submit_urb calls kmem_cache_alloc which eventually decides it needs to flush dirty data to disk and deadlocks. Trace; c017f5d6 <__get_request_wait+86/d0> Trace; c017fc5b <__make_request+47b/630> Trace; c48c05cf <.data.end+3950/????> Trace; c017fec6 <generic_make_request+b6/d0> Trace; c0133195 <__refile_buffer+55/60> Trace; c017ff37 <submit_bh+57/90> Trace; c0135354 <sync_page_buffers+94/b0> Trace; c0135453 <try_to_free_buffers+e3/110> Trace; c0129fd5 <shrink_cache+225/320> Trace; c012a210 <shrink_caches+50/80> Trace; c012a270 <try_to_free_pages+30/50> Trace; c012adeb <balance_classzone+6b/280> Trace; c012b10a <__alloc_pages+10a/170> Trace; c4817478 <[usbcore]usb_start_wait_urb+178/190> Trace; c012b180 <__get_free_pages+10/20> Trace; c0128e0d <kmem_cache_grow+bd/230> Trace; c4829e37 <[usb-uhci]rh_submit_urb+5b7/5d0> Trace; c0129040 <kmem_cache_alloc+c0/d0> Trace; c4829480 <[usb-uhci]uhci_submit_urb+150/370> Trace; c48172a4 <[usbcore]usb_submit_urb+24/30> Trace; c4817382 <[usbcore]usb_start_wait_urb+82/190> Trace; c48174e7 <[usbcore]usb_internal_control_msg+57/70> Trace; c4817581 <[usbcore]usb_control_msg+81/a0> Trace; c4825164 <[usbcore]usb_address0_sem+0/14> Trace; c48183ec <[usbcore]usb_set_address+3c/40> Trace; c481b158 <[usbcore]usb_reset_device+c8/2f4> Trace; c0113cda <call_console_drivers+ea/f0> Trace; c4872359 <[usb-storage]bus_reset+89/1d0> Trace; c019b94d <scsi_try_bus_reset+3d/90> Trace; c019c203 <scsi_unjam_host+513/980> Trace; c019c7b7 <scsi_error_handler+147/1a0> Trace; c0106d76 <ret_from_fork+6/20> Trace; c01055c6 <kernel_thread+26/30> Trace; c019c670 <scsi_error_handler+0/1a0> -- Peter Osterlund - [EMAIL PROTECTED] http://w1.894.telia.com/~u89404340 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel