> > > > > 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