From: Pranjal Shrivastava <praan@google.com>
To: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>
Cc: Mostafa Saleh <smostafa@google.com>,
Nicolin Chen <nicolinc@nvidia.com>,
iommu@lists.linux.dev, Jason Gunthorpe <jgg@nvidia.com>,
Pranjal Shrivastava <praan@google.com>
Subject: [PATCH v4 0/3] iommu/arm-smmu-v3: Parse out event records
Date: Fri, 18 Oct 2024 18:00:19 +0000 [thread overview]
Message-ID: <20241018180022.807928-1-praan@google.com> (raw)
Enhance the arm-smmu-v3 driver to parse out useful information from
event records into a structure for better event handling & logging.
As requested by Nicolin, some sample logs powered by QEMU:
[ 85.410290] arm-smmu-v3 arm-smmu-v3.0.auto: Unexpected event received: F_PERMISSION
[ 85.410290] master: 0000:00:01.0 sid: 0x00000008.0x00000
[ 85.410290] iova = 0xffffc0d0 ipa = 0x0
[ 85.410290] Unpriv | Data | Write | S1 | Input address caused fault
[ 85.410290] STAG = 0x0 Stall = 0x0
[ 85.411681] arm-smmu-v3 arm-smmu-v3.0.auto: event 0x13 received: master 0000:00:01.0:
[ 85.412045] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000000800000013
[ 85.412347] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000020000000000
[ 85.412630] arm-smmu-v3 arm-smmu-v3.0.auto: 0x00000000ffffc0d0
[ 85.412921] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000000000000000
..and a sample log for devices with a good name:
[ 43.405187] arm-smmu-v3 arm-smmu-v3.0.auto: Unexpected event received: F_TRANSLATION
[ 43.405187] master: igb sid: 0x00000008.0x00000
[ 43.405187] iova = 0xfffff040 ipa = 0x0
[ 43.405187] Unpriv | Data | Write | S1 | CD fetch
[ 43.405187] STAG = 0x0 Stall = 0x0
[ 43.406302] arm-smmu-v3 arm-smmu-v3.0.auto: event 0x10 received: master igb:
[ 43.406622] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000000800000010
[ 43.406875] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000000000000000
[ 43.407131] arm-smmu-v3 arm-smmu-v3.0.auto: 0x00000000fffff040
[ 43.407397] arm-smmu-v3 arm-smmu-v3.0.auto: 0x0000000000000000
v4
* Re-arranged the series to first introduce struct arm_smmu_event
* Improved the complex ternary expression that prints TTRnW info
* Added consistent spacing to the logs & resized log strings
* Moved ratelimiting within `arm_smmu_dump_event`
* Refactored master_name printing by getting a ref to the device
* Refactored `arm_smmu_handle_evt` to avoid redundant master lookup
v3
https://lore.kernel.org/all/20240928005143.2378938-1-praan@google.com/
* Fixed a potential race and null pointer deref for arm_smmu_master
* Improved the logging approach by using multiple strings
* Added logs for STAG & STALL fields for relevant events
* Invoked the log function within `arm_smmu_handle_evt` routine
* Rebased the changes
v2
https://lore.kernel.org/linux-iommu/20240827193026.3993039-1-praan@google.com/
* Addressed review comments
* Introduced `struct arm_smmu_event` to hold relevant event fields
* Broke out helper functions to populate & dump event info
* Modified the event handler routines to use `struct arm_smmu_event`
v1
https://lore.kernel.org/linux-iommu/20240816211722.1404070-1-praan@google.com/
Pranjal Shrivastava (3):
iommu/arm-smmu-v3: Introduce struct arm_smmu_event
iommu/arm-smmu-v3: Log better event records
iommu/arm-smmu-v3: Avoid redundant master lookup in events
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 174 ++++++++++++++++----
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 33 ++++
2 files changed, 172 insertions(+), 35 deletions(-)
--
2.47.0.rc1.288.g06298d1525-goog
next reply other threads:[~2024-10-18 18:00 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-18 18:00 Pranjal Shrivastava [this message]
2024-10-18 18:00 ` [PATCH v4 1/3] iommu/arm-smmu-v3: Introduce struct arm_smmu_event Pranjal Shrivastava
2024-10-19 1:56 ` Nicolin Chen
2024-10-21 6:20 ` Pranjal Shrivastava
2024-10-24 13:11 ` Will Deacon
2024-10-24 14:20 ` Pranjal Shrivastava
2024-10-24 17:02 ` Pranjal Shrivastava
2024-10-24 17:03 ` Jason Gunthorpe
2024-10-24 17:37 ` Pranjal Shrivastava
2024-10-28 12:23 ` Jason Gunthorpe
2024-10-28 14:46 ` Pranjal Shrivastava
2024-11-04 17:23 ` Daniel Mentz
2024-11-04 18:16 ` Pranjal Shrivastava
2024-11-04 18:19 ` Pranjal Shrivastava
2024-11-01 14:41 ` Robin Murphy
2024-11-01 15:08 ` Pranjal Shrivastava
2024-11-04 5:25 ` Daniel Mentz
2024-11-04 8:31 ` Pranjal Shrivastava
2024-11-07 0:10 ` Daniel Mentz
2024-11-07 14:33 ` Pranjal Shrivastava
2024-11-07 0:16 ` Daniel Mentz
2024-11-07 14:57 ` Pranjal Shrivastava
2024-11-11 22:20 ` Daniel Mentz
2024-11-12 0:52 ` Pranjal Shrivastava
2024-11-12 4:01 ` Daniel Mentz
2024-11-12 8:12 ` Pranjal Shrivastava
2024-10-18 18:00 ` [PATCH v4 2/3] iommu/arm-smmu-v3: Log better event records Pranjal Shrivastava
2024-10-19 2:06 ` Nicolin Chen
2024-10-19 4:51 ` Nicolin Chen
2024-10-21 6:29 ` Pranjal Shrivastava
2024-10-21 6:26 ` Pranjal Shrivastava
2024-10-21 22:53 ` Nicolin Chen
2024-10-24 13:15 ` Will Deacon
2024-10-24 14:14 ` Pranjal Shrivastava
2024-10-29 18:53 ` Will Deacon
2024-10-29 19:59 ` Pranjal Shrivastava
2024-10-24 19:00 ` Nicolin Chen
2024-10-29 18:49 ` Will Deacon
2024-11-01 15:05 ` Robin Murphy
2024-11-01 16:06 ` Pranjal Shrivastava
2024-11-04 6:36 ` Daniel Mentz
2024-11-04 10:51 ` Pranjal Shrivastava
2024-10-18 18:00 ` [PATCH v4 3/3] iommu/arm-smmu-v3: Avoid redundant master lookup in events Pranjal Shrivastava
2024-10-19 2:08 ` Nicolin Chen
2024-10-19 1:45 ` [PATCH v4 0/3] iommu/arm-smmu-v3: Parse out event records Nicolin Chen
2024-10-21 6:33 ` Pranjal Shrivastava
2024-10-21 22:51 ` Nicolin Chen
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=20241018180022.807928-1-praan@google.com \
--to=praan@google.com \
--cc=iommu@lists.linux.dev \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=nicolinc@nvidia.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