On 10/29/07, Blue Swirl wrote: > We could cache the resolved addresses to overcome the additional setup > overhead. Each stage should install cache invalidation callbacks or a > method to call for recalculation of the addresses. For example IOMMU > or ESPDMA mappings change very often. I meant to write "don't change very often." This version actually resolves the host memory address so that scsi-disk could (with some additional plumbing) write directly to final destination. I think both pre- and postprocessing hooks may be needed, but those are not implemented yet. What about error handling? For example, first page is OK but second is not. Truncate all further blocks and install a post-processing hook that raises a bus error? Example output: esp DMADriverAIOCB 0x27433f0 IO ranges: base 0000000000000000 len 0000000000000800 Prehooks: Posthooks: espdma DMADriverAIOCB 0x27433f0 IO ranges: base 00000000fe00000a len 0000000000000800 Prehooks: Posthooks: iommu DMADriverAIOCB 0x27433f0 IO ranges: base 0000000007fe100a len 0000000000000800 Prehooks: Posthooks: physical DMADriverAIOCB 0x27433f0 IO ranges: base 00002b8e6f82200a len 0000000000000800 Prehooks: Posthooks: