From: Pranjal Shrivastava <praan@google.com>
To: Daniel Mentz <danielmentz@google.com>
Cc: Joerg Roedel <joro@8bytes.org>, Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Mostafa Saleh <smostafa@google.com>,
Nicolin Chen <nicolinc@nvidia.com>,
iommu@lists.linux.dev, Jason Gunthorpe <jgg@nvidia.com>
Subject: Re: [PATCH v5 1/3] iommu/arm-smmu-v3: Introduce struct arm_smmu_event
Date: Wed, 27 Nov 2024 09:25:23 +0000 [thread overview]
Message-ID: <Z0blg7wbWr05qp3w@google.com> (raw)
In-Reply-To: <CAE2F3rCO1PbzMEdJB1zRFK+FsbYa0w2TWrGL-XV6y9A9vrqytA@mail.gmail.com>
On Tue, Nov 26, 2024 at 07:25:12PM -0800, Daniel Mentz wrote:
> On Tue, Nov 12, 2024 at 12:30 AM Pranjal Shrivastava <praan@google.com> wrote:
> > + event->stag = FIELD_GET(EVTQ_1_STAG, raw[1]);
> > + event->stall = raw[1] & EVTQ_1_STALL;
>
> Any particular reason you're not using FIELD_GET on EVTQ_1_STALL like
> in FIELD_GET(EVTQ_1_STALL, raw[1]); ?
>
No particular reason as such, just wanted to ensure a bool value as the
current usage in `arm_smmu_handle_evt` fetched the stall field similarly
I'll update this to use a FIELD_GET
> > + event->class = FIELD_GET(EVTQ_1_CLASS, raw[1]);
> > + event->iova = FIELD_GET(EVTQ_2_ADDR, raw[2]);
> > + event->ipa = raw[3];
>
> Shouldn't this be
>
> event->ipa =FIELD_GET(EVTQ_3_IPA, raw[3]);
No. For this, there's a reason for not using the
`FIELD_GET(EVTQ_3_IPA, raw[3]);`. As mentioned in the cover letter, this
was the root cause of the IPA truncation bug, i.e. FIELD_GET only
fetches the IPA field without trailing zeroes, truncating the address.
For e.g. IPA = 0xfffff instead of 0xfffff000 which is faulting address.
Also, since the definition of the field is GENMASK_ULL(51,12) it doesn't
work for events like `F_STE_FETCH` where the Fetch address field is:
GENMASK_ULL(51,3).
Since the SMMUv3 spec ensures that the bitfields NOT representing an
address, i.e. fields other than GENMASK_ULL(51,12) or GENMASK_ULL(51,3),
are zeros. It's safe to read the raw[3] dword directly.
I think this wasn't discovered until now as we are NOT using the
EVTQ_3_IPA mask anywhere in the `arm-smmu-v3*` source files.
Thanks,
Praan
next prev parent reply other threads:[~2024-11-27 9:25 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-12 8:30 [PATCH v5 0/3] iommu/arm-smmu-v3: Parse out event records Pranjal Shrivastava
2024-11-12 8:30 ` [PATCH v5 1/3] iommu/arm-smmu-v3: Introduce struct arm_smmu_event Pranjal Shrivastava
2024-11-12 23:30 ` Nicolin Chen
2024-11-15 13:13 ` Pranjal Shrivastava
2024-11-15 21:34 ` Nicolin Chen
2024-11-18 16:24 ` Jason Gunthorpe
2024-11-19 9:03 ` Will Deacon
2024-11-19 9:27 ` Pranjal Shrivastava
2024-11-20 9:56 ` Will Deacon
2024-11-20 11:46 ` Pranjal Shrivastava
2024-11-27 3:25 ` Daniel Mentz
2024-11-27 9:25 ` Pranjal Shrivastava [this message]
2024-11-27 19:42 ` Daniel Mentz
2024-11-27 20:53 ` Pranjal Shrivastava
2024-11-28 23:40 ` Daniel Mentz
2024-11-29 12:56 ` Pranjal Shrivastava
2024-11-12 8:30 ` [PATCH v5 2/3] iommu/arm-smmu-v3: Log better event records Pranjal Shrivastava
2024-11-12 8:30 ` [PATCH v5 3/3] iommu/arm-smmu-v3: Avoid redundant master lookup in events Pranjal Shrivastava
2024-11-12 23:52 ` Nicolin Chen
2024-11-15 13:26 ` Pranjal Shrivastava
2024-11-15 21:46 ` Nicolin Chen
2024-11-20 4:45 ` [PATCH v5 0/3] iommu/arm-smmu-v3: Parse out event records Daniel Mentz
2024-11-20 6:54 ` Pranjal Shrivastava
2024-11-20 7:12 ` Pranjal Shrivastava
2024-11-20 11:43 ` Pranjal Shrivastava
2024-11-22 23:33 ` Daniel Mentz
2024-11-26 9:30 ` Pranjal Shrivastava
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=Z0blg7wbWr05qp3w@google.com \
--to=praan@google.com \
--cc=danielmentz@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 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.