Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Jul 2006 11:38:10 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        David Malone <dwmalone@maths.tcd.ie>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: contiguous memory allocation problem
Message-ID:  <200607021138.11945.hselasky@c2i.net>
In-Reply-To: <20060701194435.GA30115@walton.maths.tcd.ie>
References:  <200605271102.19799.hselasky@c2i.net> <200607011044.54872.hselasky@c2i.net> <20060701194435.GA30115@walton.maths.tcd.ie>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday 01 July 2006 21:44, David Malone wrote:
> On Sat, Jul 01, 2006 at 10:44:54AM +0200, Hans Petter Selasky wrote:
> > > The latest concensus seems to be that the USB system should make use of
> > > the scatter-gather facilities in the hardware to avoid the need to
> > > allocate large contiguous memory chunks.  iedowse@ had mostly finished
> > > implementing this in mid May.
> >
> > Yes, but scatter and gather will add extra complexity to the driver, and
> > maybe an extra memory copy in most cases. The idea is to allocate less
> > than or equal to a page of memory, and then avoid the problem?
>
> I believe the USB drivers in -current grew scatter/gather support
> about a month ago. See the commit message below. Is this likely to
> help?

I see.

But there is one problem, that has been overlooked, and that is High speed 
isochronous transfers, which are not supported by the existing USB system. I 
don't think that the EHCI specification was designed for scatter and gather, 
when you consider this:

8 transfers of 0xC00 bytes has to fit on 7 pages. If this is going to work, 
and I am right, one page has to contain two transfers. (see page 43 of 
ehci-r10.pdf)

Currently the PAGE_SIZE is 0x1000, right? As you can see "(0xC00 * 2) > 
0x1000".

So is it possible to change the PAGE_SIZE ?

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607021138.11945.hselasky>