From: Will Deacon <will@kernel.org>
To: zhurui <zhurui3@huawei.com>
Cc: Robin Murphy <robin.murphy@arm.com>,
Nicolin Chen <nicolinc@nvidia.com>,
linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org, Joerg Roedel <joro@8bytes.org>,
Lu Baolu <baolu.lu@linux.intel.com>,
Jason Gunthorpe <jgg@ziepe.ca>,
Yicong Yang <yangyicong@hisilicon.com>,
Tomas Krcka <krckatom@amazon.de>,
Jean-Philippe Brucker <jean-philippe@linaro.org>
Subject: Re: [PATCH v2 1/1] iommu/arm-smmu-v3: Fix error case of range command
Date: Wed, 9 Aug 2023 12:23:18 +0100 [thread overview]
Message-ID: <20230809112317.GA3830@willie-the-truck> (raw)
In-Reply-To: <412886be-644a-5b46-9bfa-1c9a358f9a5d@huawei.com>
On Wed, Aug 09, 2023 at 05:22:06PM +0800, zhurui wrote:
> On 2023/8/9 0:43, Robin Murphy wrote:
> > On 08/08/2023 5:24 pm, Will Deacon wrote:
> >> On Mon, Aug 07, 2023 at 08:20:45PM +0100, Robin Murphy wrote:
> >>> Yeah, I'd rather not downgrade to a non-range invalidate since that
> >>> complicates the reasoning for the errata affecting those. If the size of the
> >>> invalidation is equal to TG then it can only represent a single last-level
> >>> page, i.e. TTL=3, thus if it does warrant handling here then indeed
> >>> rearranging to base the condition on num_pages as well ought to suffice.
> >>> However, this is all still begging the question of where and why we're doing
> >>> a *non-leaf* invalidation that isn't aligned to the size of a table, because
> >>> that in itself doesn't make a whole heap of sense - my hunch is that that
> >>> wants figuring out and could probably be fixed at the source.
> >>
> >> Isn't that described above because we're using CMDQ_TLBI_RANGE_NUM_MAX
> >> to break up the range into separate commands?
> >
> > Not really, because if we're doing a genuine non-leaf invalidation of a
> > table then it should be a block-aligned range that ought to fit in a
> > single command and should certainly never involve a single-granule
> > remainder. If we're doing non-leaf invalidations of things that
> > logically don't need to be non-leaf, making them leaf would be the even
> > better option.
> >
>
> I agree with Robin that if the caller is doing a genuine non-leaf invalidation
> of a table, it should not involve a single-granule tlbi. It seems that the
> caller only filter the block size, but not the address aligned or not maybe.
There's only one caller though, right? That's the
io_pgtable_tlb_flush_walk() call in io-pgtable-arm.c which shouldn't trigger
this problem.
Do you have a backtrace for the case when we generate the illegal command?
> >> Do you mind if I queue the patch as-is for now? I don't think the driver
> >> should be emitting illegal commands, and v2 of the patch does seem like
> >> the obvious thing to do.
> >
> > TBH I'd rather you just drop my patch if it's proven problematic, and
> > I'll take another crack at it soon. The potential problems we introduce
> > by using non-range invalidates on errata-affected MMU-700 revisions are
> > worse than the almost-entirely-theoretical one I was trying to address.
> >
>
> If you all agree to roll back the problematic code, is the first patch be OK?
> Should I need to add some more descriptions to clarify this?
I can just go and revert Robin's original patch, but I'd like to see your
backtrace first so that we understand how this is occurring.
Thanks,
Will
next prev parent reply other threads:[~2023-08-09 11:23 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-31 6:21 [PATCH 1/1] Revert "iommu/arm-smmu-v3: Set TTL invalidation hint better" wangwudi
2023-08-01 8:55 ` Will Deacon
2023-08-02 10:52 ` zhurui
2023-08-04 9:31 ` [PATCH v2 1/1] iommu/arm-smmu-v3: Fix error case of range command zhurui
2023-08-04 16:52 ` Will Deacon
2023-08-04 18:30 ` Nicolin Chen
2023-08-06 5:28 ` zhurui
2023-08-07 19:20 ` Robin Murphy
2023-08-08 16:24 ` Will Deacon
2023-08-08 16:43 ` Robin Murphy
2023-08-09 9:22 ` zhurui
2023-08-09 11:23 ` Will Deacon [this message]
2023-08-09 13:48 ` Robin Murphy
2023-08-18 16:19 ` Robin Murphy
2023-08-18 16:21 ` Will Deacon
2023-08-25 8:12 ` zhurui
2023-09-06 5:05 ` Easwar Hariharan
2023-09-06 12:59 ` Robin Murphy
2023-09-07 9:21 ` Will Deacon
2023-08-08 16:12 ` 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=20230809112317.GA3830@willie-the-truck \
--to=will@kernel.org \
--cc=baolu.lu@linux.intel.com \
--cc=iommu@lists.linux.dev \
--cc=jean-philippe@linaro.org \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=krckatom@amazon.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=robin.murphy@arm.com \
--cc=yangyicong@hisilicon.com \
--cc=zhurui3@huawei.com \
/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