From: Christoph Hellwig <hch@infradead.org>
To: Will Deacon <will@kernel.org>
Cc: Michael Kelley <mhklinux@outlook.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kernel-team@android.com" <kernel-team@android.com>,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
Christoph Hellwig <hch@lst.de>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Robin Murphy <robin.murphy@arm.com>,
Petr Tesarik <petr.tesarik1@huawei-partners.com>,
Dexuan Cui <decui@microsoft.com>,
Nicolin Chen <nicolinc@nvidia.com>
Subject: Re: [PATCH v4 1/5] swiotlb: Fix double-allocation of slots due to broken alignment handling
Date: Tue, 27 Feb 2024 07:38:40 -0800 [thread overview]
Message-ID: <Zd4CANmJdW_t69S2@infradead.org> (raw)
In-Reply-To: <20240223124742.GB10641@willie-the-truck>
On Fri, Feb 23, 2024 at 12:47:43PM +0000, Will Deacon wrote:
> > > /*
> > > * For allocations of PAGE_SIZE or larger only look for page aligned
> > > * allocations.
> > > */
> > > if (alloc_size >= PAGE_SIZE)
> > > - iotlb_align_mask |= ~PAGE_MASK;
> > > - iotlb_align_mask &= ~(IO_TLB_SIZE - 1);
> > > -
> > > - /*
> > > - * For mappings with an alignment requirement don't bother looping to
> > > - * unaligned slots once we found an aligned one.
> > > - */
> > > - stride = (iotlb_align_mask >> IO_TLB_SHIFT) + 1;
> > > + stride = umax(stride, PAGE_SHIFT - IO_TLB_SHIFT + 1);
> >
> > Is this special handling of alloc_size >= PAGE_SIZE really needed?
>
> I've been wondering that as well, but please note that this code (and the
> comment) are in the upstream code, so I was erring in favour of keeping
> that while fixing the bugs. We could have an extra patch dropping it if
> we can convince ourselves that it's not adding anything, though.
This special casing goes back to before git history. It obviously is not
needed, but it might have made sense back then. If people come up with
a good argument I'm totally fine with removing it, but I also think we
need to get the fixes here in ASAP, so things that are just cleanups
probably aren't priority right now.
> > While the iommu_dma_map_page() case can already fail due to
> > "too large" requests because of not setting a max mapping size,
> > this patch can cause smaller requests to fail as well until Patch 4
> > gets applied. That might be problem to avoid, perhaps by
> > merging the Patch 4 changes into this patch.
>
> I'll leave this up to Christoph. Personally, I'm keen to avoid having
> a giant patch trying to fix all the SWIOTLB allocation issues in one go,
> as it will inevitably get reverted due to a corner case that we weren't
> able to test properly, breaking the common cases at the same time.
Let's keep it split.
next prev parent reply other threads:[~2024-02-27 15:38 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-21 11:34 [PATCH v4 0/5] Fix double allocation in swiotlb_alloc() Will Deacon
2024-02-21 11:35 ` [PATCH v4 1/5] swiotlb: Fix double-allocation of slots due to broken alignment handling Will Deacon
2024-02-21 23:35 ` Michael Kelley
2024-02-23 12:47 ` Will Deacon
2024-02-23 13:36 ` Petr Tesařík
2024-02-23 17:04 ` Michael Kelley
2024-02-27 15:38 ` Christoph Hellwig [this message]
2024-02-21 11:35 ` [PATCH v4 2/5] swiotlb: Enforce page alignment in swiotlb_alloc() Will Deacon
2024-02-21 23:36 ` Michael Kelley
2024-02-21 11:35 ` [PATCH v4 3/5] swiotlb: Honour dma_alloc_coherent() " Will Deacon
2024-02-21 23:36 ` Michael Kelley
2024-02-21 11:35 ` [PATCH v4 4/5] swiotlb: Fix alignment checks when both allocation and DMA masks are present Will Deacon
2024-02-21 23:37 ` Michael Kelley
2024-02-21 11:35 ` [PATCH v4 5/5] iommu/dma: Force swiotlb_max_mapping_size on an untrusted device Will Deacon
2024-02-21 23:39 ` Michael Kelley
2024-02-23 19:58 ` Nicolin Chen
2024-02-23 21:10 ` Michael Kelley
2024-02-25 21:17 ` Michael Kelley
2024-02-26 19:35 ` Robin Murphy
2024-02-26 21:11 ` Michael Kelley
2024-02-27 13:22 ` Robin Murphy
2024-02-27 14:30 ` Michael Kelley
2024-02-27 15:40 ` Christoph Hellwig
2024-02-27 15:53 ` Robin Murphy
2024-02-28 12:05 ` Will Deacon
2024-02-23 11:34 ` [PATCH v4 0/5] Fix double allocation in swiotlb_alloc() Nicolin Chen
2024-02-23 12:25 ` Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zd4CANmJdW_t69S2@infradead.org \
--to=hch@infradead.org \
--cc=decui@microsoft.com \
--cc=hch@lst.de \
--cc=iommu@lists.linux.dev \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mhklinux@outlook.com \
--cc=nicolinc@nvidia.com \
--cc=petr.tesarik1@huawei-partners.com \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).