> > > > > I presume there is some overhead in bouncing to lowmem?  I imagine that
> > > > > highmem support for the HCDs wouldn't be that difficult -- they are just
> > > > > PCI devices, after all.
> > > >
> > > > I'm unclear on what "bouncing to lowmem" involves, but I'd rather avoid
> > > > teaching all three HCDs a second model for addressing transfer buffers.
> > >
> > > AFAIK bouncing means a plain, physical copy.
> >
> > Probably not going to impact the USB 1.1 bandwidth utilization that
> > Matt was concerned with ... :)
> 
> It might hurt with swapping.

Might, but that's not going to affect bandwidth much.  Time of a memcpy
is way less than wasting a fullspeed bulk packet.  Cache thrashing is a
secondary effect at that level.


> > > Either the HCDs can do 64bit DMA or they can't.
> > > Do you really expect there to be a significant number of 32bit machines
> > > whose HCD can do 64bit DMA ?
> >
> > Highmem doesn't only have to do with 64bit DMA.  At least in the 2.4
> > series there's a model that addresses over about 880MBytes are also
> > classed as "highmem".
> 
> Is there an impact of the full 32bit DMA patches Jens has done for 2.4
> which might concivably be included into 2.5 ?

I don't know.  As I commented earlier, there seems to be a shortage
of documentation on "highmem", and that includes code comments.


> > > If not, it's IMHO not worth doing it as you'd have either two kinds of
> > > urbs or overhead in the common case.
> >
> > I think some special accomodation for the block I/O layer is going to
> > have to happen.
> 
> The block io layer should have adaptions to provide for the capability
> devices provide. We should not have to deal with copying >32bit pages
> ourselves.

As I understand, USB won't have to deal with that.  For 2.4 the block
layer always bounces I/O to DMA-ready buffers (yes?), and for 2.5 as
I understand, we'll change USB to know page-based-buffers so that
the PCI subsystem handles any mapping (it may not mean copies).


> > > On 64Bit machines we might have to deal with HCDs who can do 32Bit DMA
> > > only. Perhaps there should be a gfp field in the usb_device struct
> > > to export knowledge about the memory the HCD can cope with.
> >
> > Shouldn't be needed.
> 
> How do we deal with the combination of 32bit OHCI and 64bit EHCI ?

It's all done through pci_set_dma_mask() ... by default, the mask is
set for 32bit DMA.  And whatever it is, the PCI layer deals with it
transparently when it sets up DMA mappings.

- Dave



_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to