speeding up ugen by an order of magnitude.

Scott Long scottl at freebsd.org
Wed Jul 7 15:12:49 PDT 2004


On Wed, 7 Jul 2004, Poul-Henning Kamp wrote:
> In message <200407072129.15095.mycroft at netbsd.org>, "Charles M. Hannum" w=
rites:
> >On Wednesday 07 July 2004 20:46, Charles M. Hannum wrote:
> >> 1) You'll need to add an interface for assigning pipes for read and wr=
ite,
> >> since there may be more than just bulk pipes (and may be more than one=
 bulk
> >> pipe in each direction), and we only have have device node to work wit=
h.
> >
> >Seems I misspoke there.  That part looks fine.
> >
> >I think you're going to be screwed by the buffer alignment, though.  Thi=
s also
> >causes some issues with umass if you're not using a bounce buffer.
>
> We've already had that issue with ATA for the b=F8rked Geode controller:
> physio does nothing for alignment and relies on userland doing something
> sensible.
>
> I think this is pretty reasonable for the kind of hardware-near
> work that physio is usually employed in (including if we use it for
> ugen).
>
> Obviously, if the alignment is not OK, EINVAL should be returned,
> and that means that the driver should explicitly check the alignment.

Note that busdma can handle alignment now for loaded buffers by using
bounce pages.

Scott


More information about the freebsd-current mailing list