mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Will Deacon <will@kernel.org>
Cc: Nicolin Chen <nicolinc@nvidia.com>,
	robin.murphy@arm.com, joro@8bytes.org, praan@google.com,
	kevin.tian@intel.com, smostafa@google.com,
	linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev,
	linux-kernel@vger.kernel.org, jamien@nvidia.com, kas@kernel.org
Subject: Re: [PATCH v10 06/13] iommu/arm-smmu-v3: Add ARM_SMMU_OPT_KDUMP_ADOPT for kdump kernel
Date: Sun, 4 Oct 2026 13:35:01 -0300	[thread overview]
Message-ID: <20261004163501.GB4064@nvidia.com> (raw)
In-Reply-To: <asJTsw-oWDlSqNa3@willie-the-truck>

On Sun, Oct 04, 2026 at 02:25:07PM +0100, Will Deacon wrote:
> >  drivers/iommu/arm/arm-smmu-v3/Makefile        |   1 +
> >  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h   |  21 ++
> >  .../iommu/arm/arm-smmu-v3/arm-smmu-v3-kdump.c | 229 ++++++++++++++++++
> 
> Please don't put this here. The live update / handover stuff is going to
> need very similar logic (see the RFC from Pranjal) and I don't fancy
> having to rename or resplit this file when that comes along.

Ah, I was thinking we'd put most of that stuff in here, but a kexec
name would probably be nicer.

> > + * Note:
> > + *  - Adoption only starts on an SMMU that the crashed kernel left enabled, as a
> > + *    disabled SMMU (CR0_SMMUEN=0) could hold meaningless register values.
> > + *  - Values read from the crashed kernel's registers get structural validation
> > + *    only (format, size, span, alignment, and ID range); the physical addresses
> > + *    are not vetted, as the kdump kernel has no record of which pages held the
> > + *    tables.
> 
> Can we at least check that they don't point at the kdump region?

I don't think it is necessary, I  was on the fence about all this
exisitng validation even in the first place.

Is there any easy way to do it?
 
> > + *  - A structural inconsistency at adoption time tosses the entire adoption and
> > + *    makes the SMMU fall back to a full reset blocking in-flight DMAs.
> > + *  - L2 stream tables are adopted lazily at master-inserting time, to bound the
> > + *    peak memory use against a corrupted L1 table; any lazy L2 adoption failure
> > + *    rejects that device alone, as its blast radius is bounded to the bus.
> > + *  - Only a coherent SMMU (ARM_SMMU_FEAT_COHERENCY) is supported, as the stream
> > + *    table adoption is done by memremap with MEMREMAP_WB, which is verified on
> > + *    the real hardware. Callers of these functions are responsible for gating
> > + *    ARM_SMMU_FEAT_COHERENCY once during the probe.
> 
> This is an artificial restriction and not one that I'm wild about for kdump:
> we should be able to support this for non-coherent SMMUs as well. Is there
> anything more to it than using MEMREMAP_WC in that case?
 
I've forgotten why it ended up like this, it was some complication
that seemed hard.. MEMREMAP_WC is not the same attribute dma coherent
would have used, I'm not sure we have the right stuff to be able to
flush any write combining buffer? I'm nervous about that at least.

Remember this is not just reading it but it has to operate like this
after the fact. In handover you wanted to use the dma cohernent
preservation.

So, I think this restriction is mostly a lack of the right MEMREMAP
flag? It is not insovlable just work outside the scope of this series.

Jason

  reply	other threads:[~2026-10-04 16:35 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-30 23:18 [PATCH v10 00/13] iommu/arm-smmu-v3: Adopt the crashed kernel's stream table for kdump Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 01/13] iommu/arm-smmu-v3: Init the vmid_map ida before the stream table setup Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 02/13] iommu/arm-smmu-v3: Make the ASID space per SMMU instance Nicolin Chen
2026-09-23 16:39   ` Jason Gunthorpe
2026-10-04 13:23   ` Will Deacon
2026-10-04 16:22     ` Jason Gunthorpe
2026-08-30 23:18 ` [PATCH v10 03/13] iommu/arm-smmu-v3: Add ARM_SMMU_FEAT_EVTQ for the event queue Nicolin Chen
2026-09-02 11:21   ` Kiryl Shutsemau
2026-09-23 16:39   ` Jason Gunthorpe
2026-10-04 13:24   ` Will Deacon
2026-10-04 20:20     ` Nicolin Chen
2026-10-05  4:37       ` Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 04/13] iommu/arm-smmu-v3: Disable the EVTQ and the PRIQ in a kdump kernel Nicolin Chen
2026-09-02 11:22   ` Kiryl Shutsemau
2026-09-23 16:39   ` Jason Gunthorpe
2026-08-30 23:18 ` [PATCH v10 05/13] iommu/arm-smmu-v3: Add strtab parse helpers to a new arm-smmu-v3-kexec.c Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 06/13] iommu/arm-smmu-v3: Add ARM_SMMU_OPT_KDUMP_ADOPT for kdump kernel Nicolin Chen
2026-10-04 13:25   ` Will Deacon
2026-10-04 16:35     ` Jason Gunthorpe [this message]
2026-10-04 20:59       ` Nicolin Chen
2026-10-05  6:34         ` Will Deacon
2026-10-05  8:04           ` Nicolin Chen
2026-10-04 20:47     ` Nicolin Chen
2026-10-05  6:32       ` Will Deacon
2026-10-05  7:56         ` Nicolin Chen
2026-10-05  8:10           ` Will Deacon
2026-08-30 23:18 ` [PATCH v10 07/13] iommu/arm-smmu-v3-kexec: Add a CD table parse helper Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 08/13] iommu/arm-smmu-v3-kexec: Add ASID/VMID reservation helpers Nicolin Chen
2026-09-23 16:39   ` Jason Gunthorpe
2026-08-30 23:18 ` [PATCH v10 09/13] iommu/arm-smmu-v3-kdump: Reserve crashed kernel's ASIDs and VMIDs Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 10/13] iommu/arm-smmu-v3-kdump: Implement is_attach_deferred() Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 11/13] iommu/arm-smmu-v3: Retain CR0_SMMUEN during kdump device reset Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 12/13] iommu/arm-smmu-v3: Skip RMR bypass for kdump adoption Nicolin Chen
2026-08-30 23:18 ` [PATCH v10 13/13] iommu/arm-smmu-v3: Detect ARM_SMMU_OPT_KDUMP_ADOPT in probe() Nicolin Chen
2026-09-14 10:41 ` [PATCH v10 00/13] iommu/arm-smmu-v3: Adopt the crashed kernel's stream table for kdump Breno Leitao
2026-09-28 15:23 ` Cristian Prundeanu

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=20261004163501.GB4064@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=iommu@lists.linux.dev \
    --cc=jamien@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kas@kernel.org \
    --cc=kevin.tian@intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicolinc@nvidia.com \
    --cc=praan@google.com \
    --cc=robin.murphy@arm.com \
    --cc=smostafa@google.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

all inboxes | Powered by JetHome®