From: Pranjal Shrivastava <praan@google.com>
To: Yigit Oguz <yigitogu@amazon.de>
Cc: joro@8bytes.org, will@kernel.org, robin.murphy@arm.com,
baolu.lu@linux.intel.com, dwmw2@infradead.org,
suravee.suthikulpanit@amd.com, jgg@ziepe.ca, nicolinc@nvidia.com,
iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Lilit Janpoladyan <lilitj@amazon.com>
Subject: Re: [PATCH 1/3] iommu/arm-smmu-v3: Print PCI vendor:device ID in SMMU translation fault logs
Date: Thu, 7 May 2026 17:01:13 +0000 [thread overview]
Message-ID: <afzFWUEyw73n5yAR@google.com> (raw)
In-Reply-To: <20260506150541.60467-2-yigitogu@amazon.de>
On Wed, May 06, 2026 at 03:05:37PM +0000, Yigit Oguz wrote:
> From: Lilit Janpoladyan <lilitj@amazon.com>
>
> For translation, address-size, access, and permission faults, look up
> the pci_dev from the event and append the PCI vendor:device ID after
> the device name, e.g.:
>
> event: F_TRANSLATION client: 0001:02:02.4 [1d0f:8061] sid: ...
>
> For non-PCI devices or unassigned SIDs the output is unchanged.
>
> Signed-off-by: Lilit Janpoladyan <lilitj@amazon.com>
> Signed-off-by: Yigit Oguz <yigitogu@amazon.de>
> ---
> drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 29 ++++++++++++++++++---
> 1 file changed, 25 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> index e8d7dbe495f0..ab1afa36965a 100644
> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
> @@ -2213,12 +2213,30 @@ static void arm_smmu_dump_raw_event(struct arm_smmu_device *smmu, u64 *raw,
>
> #define ARM_SMMU_EVT_KNOWN(e) ((e)->id < ARRAY_SIZE(event_str) && event_str[(e)->id])
> #define ARM_SMMU_LOG_EVT_STR(e) ARM_SMMU_EVT_KNOWN(e) ? event_str[(e)->id] : "UNKNOWN"
> -#define ARM_SMMU_LOG_CLIENT(e) (e)->dev ? dev_name((e)->dev) : "(unassigned sid)"
> +
> +/* "SSSS:BB:DD.F [VVVV:DDDD]\0" — 12 + 1 + 11 + 1 = 25; round to power of 2 */
> +#define ARM_SMMU_CLIENT_LEN 32
> +
Nit: s/ARM_SMMU_CLIENT_LEN/ARM_SMMU_LOG_CLIENT_LEN to maintain the
convention?
> +static const char *arm_smmu_fmt_client(struct arm_smmu_event *e, char *buf, size_t sz)
> +{
> + struct pci_dev *p;
Minor nit: maybe we could intialized it here?
struct pci_dev *p = to_pci_dev(e->dev);
Not a strong opinion though.
> +
> + if (!e->dev)
> + return "(unassigned sid)";
> + if (!dev_is_pci(e->dev))
> + return dev_name(e->dev);
> +
> + p = to_pci_dev(e->dev);
> + snprintf(buf, sz, "%s [%04x:%04x]", dev_name(e->dev), p->vendor, p->device);
> + return buf;
> +}
>
> static void arm_smmu_dump_event(struct arm_smmu_device *smmu, u64 *raw,
> struct arm_smmu_event *evt,
> struct ratelimit_state *rs)
> {
> + char clientbuf[ARM_SMMU_CLIENT_LEN];
Nit: s/clientbuf/client_str ?
I was able to test this with 7.1-rc1 & it looks good:
[ 106.880820] arm-smmu-v3 9050000.smmuv3: event: F_TRANSLATION client: 0000:00:01.0 [8086:10c9] sid: 0x8 ssid: 0x0 iova: 0xffffc000 ipa: 0x0
[ 106.880855] arm-smmu-v3 9050000.smmuv3: unpriv data read s1 "Input address caused fault" stag: 0x0
[ 106.880894] arm-smmu-v3 9050000.smmuv3: event 0x10 received:
[ 106.880922] arm-smmu-v3 9050000.smmuv3: 0x0000000800000010
[ 106.880948] arm-smmu-v3 9050000.smmuv3: 0x0000020800000000
[ 106.880974] arm-smmu-v3 9050000.smmuv3: 0x00000000ffffc004
[ 106.881001] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000
[ 106.881030] arm-smmu-v3 9050000.smmuv3: event: F_TRANSLATION client: 0000:00:01.0 [8086:10c9] sid: 0x8 ssid: 0x0 iova: 0xffffc004 ipa: 0x0
[ 106.881061] arm-smmu-v3 9050000.smmuv3: unpriv data read s1 "Input address caused fault" stag: 0x0
[ 106.881104] arm-smmu-v3 9050000.smmuv3: event 0x10 received:
[ 106.881136] arm-smmu-v3 9050000.smmuv3: 0x0000000800000010
[ 106.881163] arm-smmu-v3 9050000.smmuv3: 0x0000020800000000
[ 106.881189] arm-smmu-v3 9050000.smmuv3: 0x00000000ffffc008
[ 106.881215] arm-smmu-v3 9050000.smmuv3: 0x0000000000000000
Apart from the nits above:
Reviewed-by: Pranjal Shrivastava <praan@google.com>
Tested-by: Pranjal Shrivastava <praan@google.com>
Thanks,
Praan
next prev parent reply other threads:[~2026-05-07 17:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-06 15:05 [PATCH 0/3] iommu: Add PCI vendor:device ID to IOMMU fault logs Yigit Oguz
2026-05-06 15:05 ` [PATCH 1/3] iommu/arm-smmu-v3: Print PCI vendor:device ID in SMMU translation " Yigit Oguz
2026-05-07 17:01 ` Pranjal Shrivastava [this message]
2026-05-06 15:05 ` [PATCH 2/3] iommu/vt-d: Add PCI segment and vendor:device ID to DMAR " Yigit Oguz
2026-05-07 19:21 ` Pranjal Shrivastava
2026-05-22 15:45 ` Oguz, Yigit
2026-05-06 15:05 ` [PATCH 3/3] iommu/amd: Add vendor:device ID to AMD IOMMU event logs Yigit Oguz
2026-05-07 19:52 ` Pranjal Shrivastava
2026-05-08 10:45 ` [PATCH 0/3] iommu: Add PCI vendor:device ID to IOMMU fault logs Robin Murphy
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=afzFWUEyw73n5yAR@google.com \
--to=praan@google.com \
--cc=baolu.lu@linux.intel.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=lilitj@amazon.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=robin.murphy@arm.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=will@kernel.org \
--cc=yigitogu@amazon.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.