* RE: [PATCH rc v4 2/5] iommu/arm-smmu-v3: Implement is_attach_deferred() for kdump [not found] ` <1d339a2353e9793c46853192a93d28fd7caac4a1.1777446969.git.nicolinc@nvidia.com> @ 2026-05-08 7:39 ` Tian, Kevin 0 siblings, 0 replies; 6+ messages in thread From: Tian, Kevin @ 2026-05-08 7:39 UTC (permalink / raw) To: Nicolin Chen, will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com Cc: joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com > From: Nicolin Chen <nicolinc@nvidia.com> > Sent: Wednesday, April 29, 2026 3:21 PM > > Though the kdump kernel adopts the crashed kernel's stream table, the > iommu > core will still try to attach each probed device to a default domain, which > overwrites the adopted STE and breaks in-flight DMA from that device. > > Implement an is_attach_deferred() callback to prevent this. For each device > that has STE.V=1 and STE.Cfg!=Abort in the adopted table, defer the default > domain attachment, until the device driver explicitly requests it. > > Fixes: b63b3439b856 ("iommu/arm-smmu-v3: Abort all transactions if SMMU > is enabled in kdump kernel") > Cc: stable@vger.kernel.org # v6.12+ > Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <25398d02373e7592d0555e7da9dbf33b3e83983a.1777446969.git.nicolinc@nvidia.com>]
* RE: [PATCH rc v4 3/5] iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel [not found] ` <25398d02373e7592d0555e7da9dbf33b3e83983a.1777446969.git.nicolinc@nvidia.com> @ 2026-05-08 7:41 ` Tian, Kevin 2026-05-09 7:44 ` Nicolin Chen 0 siblings, 1 reply; 6+ messages in thread From: Tian, Kevin @ 2026-05-08 7:41 UTC (permalink / raw) To: Nicolin Chen, will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com Cc: joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com > From: Nicolin Chen <nicolinc@nvidia.com> > Sent: Wednesday, April 29, 2026 3:21 PM > > In kdump cases, the crashed kernel's CDs and page tables can be corrupted, > which could trigger event spamming. Also, we cannot serve page requests. > > Skip the EVTQ/PRIQ setup entirely rather than enabling then disabling them. this is a refactoring to achieve the same goal as before... > > Skip the IRQ setup and guard their thread functions as well. ... while this sounds a new enforcement (then better in a separate patch?) > > Also add some inline comments explaining that. > > Fixes: b63b3439b856 ("iommu/arm-smmu-v3: Abort all transactions if SMMU > is enabled in kdump kernel") > Cc: stable@vger.kernel.org # v6.12+ > Suggested-by: Kevin Tian <kevin.tian@intel.com> > Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Overall it looks good: Reviewed-by: Kevin Tian <kevin.tian@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH rc v4 3/5] iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel 2026-05-08 7:41 ` [PATCH rc v4 3/5] iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel Tian, Kevin @ 2026-05-09 7:44 ` Nicolin Chen 0 siblings, 0 replies; 6+ messages in thread From: Nicolin Chen @ 2026-05-09 7:44 UTC (permalink / raw) To: Tian, Kevin Cc: will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com, joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com On Fri, May 08, 2026 at 07:41:20AM +0000, Tian, Kevin wrote: > > From: Nicolin Chen <nicolinc@nvidia.com> > > Sent: Wednesday, April 29, 2026 3:21 PM > > > > In kdump cases, the crashed kernel's CDs and page tables can be corrupted, > > which could trigger event spamming. Also, we cannot serve page requests. > > > > Skip the EVTQ/PRIQ setup entirely rather than enabling then disabling them. > > this is a refactoring to achieve the same goal as before... > > > > > Skip the IRQ setup and guard their thread functions as well. > > ... while this sounds a new enforcement (then better in a separate patch?) In v5, I split it into two patches and kept your Reviewed-by: - iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel - iommu/arm-smmu-v3: Suppress EVTQ/PRIQ events in kdump kernel Thanks Nicolin ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <38bbcaae651ccc3adcc78e232bdb5ce217c86693.1777446969.git.nicolinc@nvidia.com>]
* RE: [PATCH rc v4 4/5] iommu/arm-smmu-v3: Retain CR0_SMMUEN during kdump device reset [not found] ` <38bbcaae651ccc3adcc78e232bdb5ce217c86693.1777446969.git.nicolinc@nvidia.com> @ 2026-05-08 7:43 ` Tian, Kevin 0 siblings, 0 replies; 6+ messages in thread From: Tian, Kevin @ 2026-05-08 7:43 UTC (permalink / raw) To: Nicolin Chen, will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com Cc: joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com > From: Nicolin Chen <nicolinc@nvidia.com> > Sent: Wednesday, April 29, 2026 3:21 PM > > When ARM_SMMU_OPT_KDUMP_ADOPT is detected, do not disable > SMMUEN and skip > the CR1/CR2/STRTAB_BASE update sequence in arm_smmu_device_reset(). > Those > register writes are all CONSTRAINED UNPREDICTABLE while > CR0_SMMUEN==1, so > leaving them intact lets in-flight DMAs continue to be translated by the > adopted stream table. > > Initialize 'enables' to 0 so it can carry CR0_SMMUEN in kdump case. Then, > preserve that when enabling the command queue. > > Clear latched gerror bits if necessary. > > Fixes: b63b3439b856 ("iommu/arm-smmu-v3: Abort all transactions if SMMU > is enabled in kdump kernel") > Cc: stable@vger.kernel.org # v6.12+ > Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <bb1aa2d0d1fabadb76dfef9ea9cf44f4a96c65be.1777446969.git.nicolinc@nvidia.com>]
* RE: [PATCH rc v4 5/5] iommu/arm-smmu-v3: Detect ARM_SMMU_OPT_KDUMP_ADOPT in probe() [not found] ` <bb1aa2d0d1fabadb76dfef9ea9cf44f4a96c65be.1777446969.git.nicolinc@nvidia.com> @ 2026-05-08 7:47 ` Tian, Kevin 2026-05-09 7:53 ` Nicolin Chen 0 siblings, 1 reply; 6+ messages in thread From: Tian, Kevin @ 2026-05-08 7:47 UTC (permalink / raw) To: Nicolin Chen, will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com Cc: joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com > From: Nicolin Chen <nicolinc@nvidia.com> > Sent: Wednesday, April 29, 2026 3:21 PM > > arm_smmu_device_hw_probe() runs before arm_smmu_init_structures(), so > it's > natural to decide whether the kdump kernel must adopt the crashed kernel's > stream table. > > Given that memremap is used to adopt the old stream table, set this option > only on a coherent SMMU. > > And make sure SMMU isn't in Service Failure Mode. > > Fixes: b63b3439b856 ("iommu/arm-smmu-v3: Abort all transactions if SMMU > is enabled in kdump kernel") > Cc: stable@vger.kernel.org # v6.12+ > Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com>, with nits: > > +static void arm_smmu_device_hw_probe_kdump(struct arm_smmu_device > *smmu) > +{ > + u32 gerror, gerrorn, active; > + > + /* > + * If SMMU is already active in kdump case, there could be in-flight > DMA > + * from devices initiated by the crashed kernel. > + */ > + if (!(readl_relaxed(smmu->base + ARM_SMMU_CR0) & > CR0_SMMUEN)) > + return; Above comment is for the entire function. for the check here the comment should be that no in-fly DMA to require adoption due to SMMU disabled. > + > + /* For now, only support a coherent SMMU that works with > MEMREMAP_WB */ > + if (!(smmu->features & ARM_SMMU_FEAT_COHERENCY)) { > + dev_warn(smmu->dev, > + "kdump: non-coherent SMMU can't adopt stream > table\n"); "can't adopt stream table so SMMU will be reset to block all DMAs" ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH rc v4 5/5] iommu/arm-smmu-v3: Detect ARM_SMMU_OPT_KDUMP_ADOPT in probe() 2026-05-08 7:47 ` [PATCH rc v4 5/5] iommu/arm-smmu-v3: Detect ARM_SMMU_OPT_KDUMP_ADOPT in probe() Tian, Kevin @ 2026-05-09 7:53 ` Nicolin Chen 0 siblings, 0 replies; 6+ messages in thread From: Nicolin Chen @ 2026-05-09 7:53 UTC (permalink / raw) To: Tian, Kevin Cc: will@kernel.org, robin.murphy@arm.com, jgg@nvidia.com, joro@8bytes.org, praan@google.com, kees@kernel.org, baolu.lu@linux.intel.com, miko.lenczewski@arm.com, smostafa@google.com, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, linux-kernel@vger.kernel.org, stable@vger.kernel.org, jamien@nvidia.com On Fri, May 08, 2026 at 07:47:22AM +0000, Tian, Kevin wrote: > > From: Nicolin Chen <nicolinc@nvidia.com> > > + /* > > + * If SMMU is already active in kdump case, there could be in-flight > > DMA > > + * from devices initiated by the crashed kernel. > > + */ > > + if (!(readl_relaxed(smmu->base + ARM_SMMU_CR0) & > > CR0_SMMUEN)) > > + return; > > Above comment is for the entire function. for the check here the comment > should be that no in-fly DMA to require adoption due to SMMU disabled. Changed it to: /* No adoption if SMMU is disabled (i.e., there is no in-flight DMA) */ > > + > > + /* For now, only support a coherent SMMU that works with > > MEMREMAP_WB */ > > + if (!(smmu->features & ARM_SMMU_FEAT_COHERENCY)) { > > + dev_warn(smmu->dev, > > + "kdump: non-coherent SMMU can't adopt stream > > table\n"); > > "can't adopt stream table so SMMU will be reset to block all DMAs" That'd be a bit too long. So, I changed it to: "kdump: non-coherent SMMU unsupported; reset to block all DMAs\n"); Thanks Nicolin ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-05-09 7:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1777446969.git.nicolinc@nvidia.com>
[not found] ` <1d339a2353e9793c46853192a93d28fd7caac4a1.1777446969.git.nicolinc@nvidia.com>
2026-05-08 7:39 ` [PATCH rc v4 2/5] iommu/arm-smmu-v3: Implement is_attach_deferred() for kdump Tian, Kevin
[not found] ` <25398d02373e7592d0555e7da9dbf33b3e83983a.1777446969.git.nicolinc@nvidia.com>
2026-05-08 7:41 ` [PATCH rc v4 3/5] iommu/arm-smmu-v3: Skip EVTQ/PRIQ setup in kdump kernel Tian, Kevin
2026-05-09 7:44 ` Nicolin Chen
[not found] ` <38bbcaae651ccc3adcc78e232bdb5ce217c86693.1777446969.git.nicolinc@nvidia.com>
2026-05-08 7:43 ` [PATCH rc v4 4/5] iommu/arm-smmu-v3: Retain CR0_SMMUEN during kdump device reset Tian, Kevin
[not found] ` <bb1aa2d0d1fabadb76dfef9ea9cf44f4a96c65be.1777446969.git.nicolinc@nvidia.com>
2026-05-08 7:47 ` [PATCH rc v4 5/5] iommu/arm-smmu-v3: Detect ARM_SMMU_OPT_KDUMP_ADOPT in probe() Tian, Kevin
2026-05-09 7:53 ` Nicolin Chen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox