On Wed, 16 May 2007, David Brownell wrote: > > I have never, ever, seen USB stack deplete the atomic pool completely > > either, if this is what you are talking about. So, you're quite right > > about that. > > I was referring to the dma_pool allocations ... those don't need > to be atomic. OHCI or EHCI tend to allocate a page or so for each > type of descriptor seen by the hardware, and usually won't need > more than that. UHCI uses more pages; TD-per-packet requirements > from the hardware, ISTR (instead of multiple-pages-per-TD).
If dma_pool allocation isn't atomic, does that mean it could block for I/O? If yes, then it doesn't belong on the usb-storage I/O path. > > I have come to think that ub does not dramatically alter the pressure > > on the atomic pool. It allocates the same QHs and TDs. It's the thread > > which is the main problem, because it allows for interesting scenarios > > of deadlocks between kswapd, scsi_eh_0, and usb-storage helper. > > I am thinking about taking the ub concept and integrating it into > > usb-storage as some kind of "threadless" option. If only I could > > get rid of the SCSI error handling... > > Agreed, all those threads make things complex ... probably more so than > is really needed. I wonder... ub does away with thread complexity by using a complex state machine. Ultimately the complexity lies in the USB mass-storage protocol and in error handling; we can't get away from it no matter how we try. Alan Stern ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel