> > > there's a problem because there's no busdma for mbufs (well
> > > actually there is but it fails on really small unaligned blocks
> > > which basically breaks it for mbufs).
> >
> > Can you tell me more about this hazard? I can't control the
> > alignment that's asked for by the driver, but I can certainly fudge
> > the size and alignment of the request by the time it gets to this
> > interface. Just tell me the rules. :-)
>
> I don't know, Bill Paul explained that the normal busdma stuff is
> pretty broken for chunks too small. Basically, disks work, network
> cards won't because mbufs are too small.
Ouch. That's a problem. Of course, one of the goals of UDI is to
provide a consistent API into this sort of stuff. We don't distinguish
at the driver level between disk buffers and network buffers. Ideally,
the underlying DMA code really wouldn't know (or have to care) what type
any of this is.
If busdma is "pretty broken" for network-sized requests, I may just
avoid it for now, implement the contigmalloc cache, and move on to more
interesting problems.
RJL
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message