Re: New USB stack on FreeBSD w/Linux emulation layer coming

Pete Zaitcev <[email protected]>
Newsgroups gmane.linux.usb.devel
Organization Red Hat, Inc.
Message-ID <[email protected]>
On Wed, 16 May 2007 10:57:04 -0400 (EDT), Alan Stern <[email protected]> wrote:

> It's worth pointing out that there already are drivers which
> preallocate URBs and memory buffers and then share them among multiple
> endpoints.  One example is usb-storage.

This is for CBI transport, right? Honestly, I forgot about that.
But aren't control transfers short, just commands and replies?
Their buffers can be dealiased, *if* need arises.

> We have discussed in the past the notion of making URB allocation 
> per-bus.  That would have less impact; not too many drivers share URBs 
> among different devices (although I think the Bluetooth driver does).  
> The advantage is that the allocation could then automatically 
> incorporate an HCD-private area; currently this has to be allocated 
> separately every time an URB is submitted.

Right. Per-endpoint with a size limits also allows TDs to be
preallocated.

> > The requirement for massive on-the-fly allocations is a part of Linux
> > stack that bothered me for a long time. This is especially annoying
> > for block devices when pressure builds up in the VM, and dirty data
> > has to be written out to a block storage device attached by USB.
> > This is somewhat analogous to the problem which exists with NFS.
> 
> I don't see how either of these scenarios would be affected.  Whether
> you do all the other allocations when the URB and its buffers are
> allocated or you wait until the URB is submitted, the memory pressure
> would still be just as bad.

If URB, hcd_priv, and TDs are preallocated, the allocation happens
when there's no pressure, and not when all of your memory is dirtied.
It can also happen on a process context.

> > I suppose we could do one last effort:
> >  - redefine usb_buffer_alloc to allow for endpoint argument
> >  - implement methods in HCDs to allocate and free QPs and xxx_priv
> >  - spell out in documentation very clearly that drivers should
> >    NOT use these facilities by default and only use them when
> >    memory pressure invokes these URBs
> > 
> > This is something which, I think, only Greg Kroah can decide on doing
> > or not doing.
> 
> I am not in favor of such a large change.

Yeah...

I mentioned in my reply to David that I would like to explore more
narrow approaches, like a threadless ub-like usb-storage. This won't
help Hans in any way, though.

-- 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/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.