[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250311155637.GB5138@willie-the-truck>
Date: Tue, 11 Mar 2025 15:56:38 +0000
From: Will Deacon <will@...nel.org>
To: Nicolin Chen <nicolinc@...dia.com>
Cc: jgg@...dia.com, kevin.tian@...el.com, corbet@....net, joro@...tes.org,
suravee.suthikulpanit@....com, robin.murphy@....com,
dwmw2@...radead.org, baolu.lu@...ux.intel.com,
linux-kernel@...r.kernel.org, iommu@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org,
linux-kselftest@...r.kernel.org, linux-doc@...r.kernel.org,
eric.auger@...hat.com, jean-philippe@...aro.org, mdf@...nel.org,
mshavit@...gle.com, shameerali.kolothum.thodi@...wei.com,
smostafa@...gle.com, ddutile@...hat.com, yi.l.liu@...el.com,
praan@...gle.com, patches@...ts.linux.dev
Subject: Re: [PATCH v8 13/14] iommu/arm-smmu-v3: Report events that belong to
devices attached to vIOMMU
On Tue, Feb 25, 2025 at 09:25:41AM -0800, Nicolin Chen wrote:
> Aside from the IOPF framework, iommufd provides an additional pathway to
> report hardware events, via the vEVENTQ of vIOMMU infrastructure.
>
> Define an iommu_vevent_arm_smmuv3 uAPI structure, and report stage-1 events
> in the threaded IRQ handler. Also, add another four event record types that
> can be forwarded to a VM.
>
> Reviewed-by: Kevin Tian <kevin.tian@...el.com>
> Reviewed-by: Jason Gunthorpe <jgg@...dia.com>
> Reviewed-by: Pranjal Shrivastavat <praan@...gle.com>
> Signed-off-by: Nicolin Chen <nicolinc@...dia.com>
> ---
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 7 +++
> include/uapi/linux/iommufd.h | 23 +++++++
> .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c | 17 ++++++
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 60 +++++++++++--------
> 4 files changed, 82 insertions(+), 25 deletions(-)
[...]
> @@ -1866,7 +1869,14 @@ static int arm_smmu_handle_event(struct arm_smmu_device *smmu,
> goto out_unlock;
> }
>
> - ret = iommu_report_device_fault(master->dev, &fault_evt);
> + if (event->stall) {
> + ret = iommu_report_device_fault(master->dev, &fault_evt);
> + } else {
> + if (master->vmaster && !event->s2)
> + ret = arm_vmaster_report_event(master->vmaster, evt);
> + else
> + ret = -EOPNOTSUPP; /* Unhandled events should be pinned */
> + }
nit: You don't need this extra indentation.
Patch looks fine:
Acked-by: Will Deacon <will@...nel.org>
Will
Powered by blists - more mailing lists