Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 4 Mar 2024 15:32:03 +0000 | From | Will Deacon <> | Subject | Re: [PATCH v5 6/6] swiotlb: Remove pointless stride adjustment for allocations >= PAGE_SIZE |
| |
On Thu, Feb 29, 2024 at 06:07:32AM +0000, Michael Kelley wrote: > From: Will Deacon <will@kernel.org> Sent: Wednesday, February 28, 2024 5:40 AM > > > > For swiotlb allocations >= PAGE_SIZE, the slab search historically > > adjusted the stride to avoid checking unaligned slots. However, this is > > no longer needed now that the code around it has evolved and the > > stride is calculated from the required alignment. > > > > Either 'alloc_align_mask' is used to specify the allocation alignment or > > the DMA 'min_align_mask' is used to align the allocation with 'orig_addr'. > > At least one of these masks is always non-zero. > > I think the patch is correct, but this justification is not. alloc_align_mask > and the DMA min_align_mask are often both zero. While the NVMe > PCI driver sets min_align_mask, SCSI disk drivers do not (except for the > Hyper-V synthetic SCSI driver). When both are zero, presumably > there are no alignment requirements, so a stride of 1 is appropriate.
Sorry, yes, I messed up the commit message here as I was trying to reason through the allocation case separately from the mapping case. However, I need to digest the rest of this thread before doing the obvious fix...
Will
| ![\](/images/icornerr.gif) |