On Wed, 16 May 2007 07:41:26 -0700, David Brownell <[EMAIL PROTECTED]> wrote:

> > in that when you have  
> > pre-allocated all buffers and all USB host controller descriptors, you will 
> > never get in the situation of not being able to allocate transfer 
> > descriptors 
> > on the fly, like done on Linux.
> 
> That's not a failure mode that's been often observed on Linux.  (Never,
> in my own experience... which I admit has not focussed on that particular
> type of stress load.)  So it's hard to argue that it should motivate a
> redesign of core APIs.

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.

However, the usb-storage worker thread can get stuck sleeping for
allocations. We try to deal with it by using GFP_NOIO carefuly, but
this is a palliative. I continue to hear from my users with systems
locking up when they mount ext3 on winchesters in USB enclosures
and use a simple cp. Switching from usb-storage to ub fixes the
issue (which is why we continue to ship it). It's not a commonplace
concern, but it persists. Sometimes it involves scsi_eh_0.

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...

-- Pete

-------------------------------------------------------------------------
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

Reply via email to