Messages in this thread | | | Date | 17 Jun 2004 23:25:59 +0200 | Date | Thu, 17 Jun 2004 23:25:59 +0200 | From | Andi Kleen <> | Subject | Re: PATCH: Further aacraid work |
| |
On Thu, Jun 17, 2004 at 04:54:14PM -0400, Alan Cox wrote: > I would rather see it below the I/O layer for things like AMD64. The > reason I say this is that many drivers would suffer from iommu merging not > gain, and others may have limits. > > Something like > > new_sglist = sg_squash(old_sglist, [target max segments], [max per seg]) > > could be used by drivers when appropriate to hand back a better sg list > (or if not possible the existing one). That would put control rather closer > to the driver.
My understanding was that it was too late in the driver because the SG lists are already sized, because higher layer manage this. That is why the BIO_VMERGE_BOUNDARY define is checked by BIO, not the driver.
The input of sg_squash should not be an already mapped list (that would be too costly) better would be probably a pci_map_sg_merge() with hints that tries to merge and other than that works like normal pci_map_sg()
-Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |