From: Jason Gunthorpe <jgg@ziepe.ca>
To: Vasant Hegde <vasant.hegde@amd.com>
Cc: iommu@lists.linux.dev, joro@8bytes.org,
suravee.suthikulpanit@amd.com, wei.huang2@amd.com,
jsnitsel@redhat.com
Subject: Re: [PATCH v3 10/16] iommu/amd: Modify logic for checking GT and PPR features
Date: Tue, 8 Aug 2023 10:55:27 -0300 [thread overview]
Message-ID: <ZNJJTzuCyKXQojfe@ziepe.ca> (raw)
In-Reply-To: <14ad5515-e320-198f-8e94-1a83678a51b1@amd.com>
On Mon, Aug 07, 2023 at 10:14:23PM +0530, Vasant Hegde wrote:
> Hi Jason,
>
>
> On 8/4/2023 6:49 PM, Jason Gunthorpe wrote:
> > On Fri, Aug 04, 2023 at 06:42:10AM +0000, Vasant Hegde wrote:
> >> From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
> >>
> >> In order to support v2 page table, IOMMU driver need to check if the
> >> hardware can support Guest Translation (GT) and Peripheral Page Requet
> >> (PPR) features. Currently, IOMMU driver uses global (amd_iommu_v2_present)
> >> and per-iommu (struct amd_iommu.is_iommu_v2) variables to track the
> >> features. There variables area redundant since we could simply just check
> >> the global EFR mask.
> >>
> >> Therefore, replace it with a helper function with appropriate name.
> >>
> >> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
> >> Co-developed-by: Vasant Hegde <vasant.hegde@amd.com>
> >> Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
> >> ---
> >> drivers/iommu/amd/amd_iommu.h | 11 +++++++++++
> >> drivers/iommu/amd/amd_iommu_types.h | 9 ++++-----
> >> drivers/iommu/amd/init.c | 14 +-------------
> >> drivers/iommu/amd/iommu.c | 2 +-
> >> 4 files changed, 17 insertions(+), 19 deletions(-)
> >>
> >> diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h
> >> index a5a350ee36fe..0605f02fa711 100644
> >> --- a/drivers/iommu/amd/amd_iommu.h
> >> +++ b/drivers/iommu/amd/amd_iommu.h
> >> @@ -95,6 +95,17 @@ static inline bool iommu_feature(struct amd_iommu *iommu, u64 mask)
> >> return !!(iommu->features & mask);
> >> }
> >>
> >> +static inline bool check_feature_on_all_iommus(u64 mask)
> >> +{
> >> + return !!(amd_iommu_efr & mask);
> >> +}
> >> +
> >> +static inline bool amd_iommu_gt_ppr_supported(void)
> >> +{
> >> + return (check_feature_on_all_iommus(FEATURE_GT) &&
> >> + check_feature_on_all_iommus(FEATURE_PPR));
> >> +}
> >> +
> >
> > I'm still against adding more globals, the iommu struct was available,
> > just use it directly in this patch.
>
> Sorry. I missed to append the reason after re-generating patch series.
>
> We want to make sure features supported by all IOMMUs are consistent.
> Hence we introduced this function. This function will be used in
> subsequent series (ex: before enabling IOMMU PPR feature, etc).
That isn't really the right direction. iommus are per-instance things,
each instance should attend to its own stuff. Globals should be avoided.
> Also there are features like SNP which has requirement that all
> IOMMUs supports features before enabling it. So moving all checks to
> check_feature_on_all_iommu() makes it easy.
It is confusing why this would be necessary, but even if it is, it
should be limitd to SNP with a big comment explaining why SNP is
broken.
Jason
next prev parent reply other threads:[~2023-08-08 13:55 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-04 6:42 [PATCH v3 00/16] iommu/amd: SVA Support (Part 1) - cleanup/refactoring Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 01/16] iommu/amd: Remove unused amd_io_pgtable.pt_root variable Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 02/16] iommu/amd: Consolidate timeout pre-define to amd_iommu_type.h Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 03/16] iommu/amd: Consolidate logic to allocate protection domain Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 04/16] iommu/amd: Refactor protection domain allocation code Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 05/16] iommu/amd/iommu_v2: Use protection_domain in struct device_state Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 06/16] iommu/amd: Introduce helper functions for managing GCR3 table Vasant Hegde
2023-08-04 13:17 ` Jason Gunthorpe
2023-08-04 16:51 ` Vasant Hegde
2023-08-04 18:13 ` Jason Gunthorpe
2023-08-07 6:13 ` Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 07/16] iommu/amd: Use struct protection_domain in helper functions Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 08/16] iommu/amd: Do not set amd_iommu_pgtable in pass-through mode Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 09/16] iommu/amd: Miscellaneous clean up when free domain Vasant Hegde
2023-08-04 13:19 ` Jason Gunthorpe
2023-08-04 6:42 ` [PATCH v3 10/16] iommu/amd: Modify logic for checking GT and PPR features Vasant Hegde
2023-08-04 13:19 ` Jason Gunthorpe
2023-08-07 16:44 ` Vasant Hegde
2023-08-08 13:55 ` Jason Gunthorpe [this message]
2023-08-10 20:31 ` Suthikulpanit, Suravee
2023-08-11 13:15 ` Jason Gunthorpe
2023-08-11 17:02 ` Suthikulpanit, Suravee
2023-08-04 6:42 ` [PATCH v3 11/16] iommu/amd: Rename ats related variables Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 12/16] iommu/amd: Add support for different types of PPR handler Vasant Hegde
2023-08-04 13:28 ` Jason Gunthorpe
2023-08-04 16:22 ` Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 13/16] iommu/amd: Introduce iommu_dev_data.flags to track device capabilities Vasant Hegde
2023-08-04 13:36 ` Jason Gunthorpe
2023-08-04 6:42 ` [PATCH v3 14/16] iommu/amd: Enable device ATS/PASID/PRI capabilities independently Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 15/16] iommu/amd: Initialize iommu_device->max_pasids Vasant Hegde
2023-08-04 13:14 ` Jason Gunthorpe
2023-08-07 16:45 ` Vasant Hegde
2023-08-04 6:42 ` [PATCH v3 16/16] iommu/amd: Simplify amd_iommu_device_info() Vasant Hegde
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=ZNJJTzuCyKXQojfe@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=iommu@lists.linux.dev \
--cc=joro@8bytes.org \
--cc=jsnitsel@redhat.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=vasant.hegde@amd.com \
--cc=wei.huang2@amd.com \
/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.