On Tue, 5 Sept 2023 at 11:59, Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > IMO, rather than copying from the original memory, swiotlb_tbl_map_single() should > simply zero the original page(s) when establishing the mapping. That would harden > all usage of swiotlb and avoid the read-before-write behavior that is problematic > for KVM. I don't disagree, but the argument at the time (I think from Christoph, but I might be barking entirely up the wrong tree) was that the swiotlb behavior should match hardware DMA, and we had known cases where the hardware only did partial IO. Honestly, even pre-zeroing sounds silly (and *much* too expensive, even if less so than copying), and we'd be better off if we only zero the rest once we have seen a partial DMA result, but I don't actually know if we have that partial size knowledge. Linus