> > > Not that I've seen a writeup about highmem (linux/Documentation > > > doesn't seem to have one anyway) but if I infer correctly from that > > > DMA-mapping.txt writeup, URBs don't support it because there's no way > > > to specify buffers as a "struct page *" or an array of "struct > > > scatterlist". That's the only way that document identifies to access > > > "highmem memory". > > This sounds like another good reason to have URBs take scatterlists > directly, oddly enough. :)
If it's got to be done, I'd much rather it were "page + offset", so that the usbcore code can be simpler. We know how to turn scatterlists into bulk queued requests, so there's no need for anything more ... :) > > No, you can always ask to get pages low mem bounced. Highmem is no > > requirement, and if your device really can't support it there's no point > > in attempting to support it. > > 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. At least until later in the 2.5 series, when we believe they'll share a lot more common code and so that new model can be taught to just ONE piece of code. Fixing bugs in one place easier than in three! > I'd rather eliminate as much overhead as possible -- I already get > complaints from performance fanatics about the inability of usb-storage to > get past 92% bus saturation (sustained), and the problem will only get > worse on USB 2.0 Well then you'll be glad to see a patch from me, soonish, that teaches the usb-storage "transport" code to use bulk queueing. That'll get the bandwidth utilization up as high as it can get. It won't address any of these highmem issues though. - Dave _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel