Paolo Bonzini <pbonzini@xxxxxxxxxx> writes: > Il 07/01/2013 01:02, Rusty Russell ha scritto: >> Paolo Bonzini <pbonzini@xxxxxxxxxx> writes: >>> Il 02/01/2013 06:03, Rusty Russell ha scritto: >>>> Paolo Bonzini <pbonzini@xxxxxxxxxx> writes: >>>>> The virtqueue_add_buf function has two limitations: >>>>> >>>>> 1) it requires the caller to provide all the buffers in a single call; >>>>> >>>>> 2) it does not support chained scatterlists: the buffers must be >>>>> provided as an array of struct scatterlist; >>>> >>>> Chained scatterlists are a horrible interface, but that doesn't mean we >>>> shouldn't support them if there's a need. >>>> >>>> I think I once even had a patch which passed two chained sgs, rather >>>> than a combo sg and two length numbers. It's very old, but I've pasted >>>> it below. >>>> >>>> Duplicating the implementation by having another interface is pretty >>>> nasty; I think I'd prefer the chained scatterlists, if that's optimal >>>> for you. >>> >>> Unfortunately, that cannot work because not all architectures support >>> chained scatterlists. >> >> WHAT? I can't figure out what an arch needs to do to support this? > > It needs to use the iterator functions in its DMA driver. But we don't care for virtio. >> All archs we care about support them, though, so I think we can ignore >> this issue for now. > > Kind of... In principle all QEMU-supported arches can use virtio, and > the speedup can be quite useful. And there is no Kconfig symbol for SG > chains that I can use to disable virtio-scsi on unsupported arches. :/ Well, we #error if it's not supported. Then the lazy architectures can fix it. Cheers, Rusty. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html