linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Mostafa Saleh <smostafa@google.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: acpica-devel@lists.linux.dev, Hanjun Guo <guohanjun@huawei.com>,
	iommu@lists.linux.dev, Joerg Roedel <joro@8bytes.org>,
	Kevin Tian <kevin.tian@intel.com>,
	kvm@vger.kernel.org, Len Brown <lenb@kernel.org>,
	linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	Lorenzo Pieralisi <lpieralisi@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Robert Moore <robert.moore@intel.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Will Deacon <will@kernel.org>,
	Alex Williamson <alex.williamson@redhat.com>,
	Eric Auger <eric.auger@redhat.com>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	Moritz Fischer <mdf@kernel.org>,
	Michael Shavit <mshavit@google.com>,
	Nicolin Chen <nicolinc@nvidia.com>,
	patches@lists.linux.dev,
	Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
Subject: Re: [PATCH v2 6/8] iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info
Date: Mon, 2 Sep 2024 10:11:16 +0000	[thread overview]
Message-ID: <ZtWPRDsQ-VV-6juL@google.com> (raw)
In-Reply-To: <20240830171602.GX3773488@nvidia.com>

On Fri, Aug 30, 2024 at 02:16:02PM -0300, Jason Gunthorpe wrote:
> On Fri, Aug 30, 2024 at 03:23:41PM +0000, Mostafa Saleh wrote:
> > > +/**
> > > + * struct iommu_hw_info_arm_smmuv3 - ARM SMMUv3 hardware information
> > > + *                                   (IOMMU_HW_INFO_TYPE_ARM_SMMUV3)
> > > + *
> > > + * @flags: Must be set to 0
> > > + * @__reserved: Must be 0
> > > + * @idr: Implemented features for ARM SMMU Non-secure programming interface
> > > + * @iidr: Information about the implementation and implementer of ARM SMMU,
> > > + *        and architecture version supported
> > > + * @aidr: ARM SMMU architecture version
> > > + *
> > > + * For the details of @idr, @iidr and @aidr, please refer to the chapters
> > > + * from 6.3.1 to 6.3.6 in the SMMUv3 Spec.
> > > + *
> > > + * User space should read the underlying ARM SMMUv3 hardware information for
> > > + * the list of supported features.
> > > + *
> > > + * Note that these values reflect the raw HW capability, without any insight if
> > > + * any required kernel driver support is present. Bits may be set indicating the
> > > + * HW has functionality that is lacking kernel software support, such as BTM. If
> > > + * a VMM is using this information to construct emulated copies of these
> > > + * registers it should only forward bits that it knows it can support.
> > > + *
> > > + * In future, presence of required kernel support will be indicated in flags.
> > > + */
> > > +struct iommu_hw_info_arm_smmuv3 {
> > > +	__u32 flags;
> > > +	__u32 __reserved;
> > > +	__u32 idr[6];
> > > +	__u32 iidr;
> > > +	__u32 aidr;
> > > +};
> > There is a ton of information here, I think we might need to santitze the
> > values for what user space needs to know (that's why I was asking about qemu)
> > also SMMU_IDR4 is implementation define, not sure if we can unconditionally
> > expose it to userspace.
> 
> What is the harm? Does exposing IDR data to userspace in any way
> compromise the security or integrity of the system?
> 
> I think no - how could it?

I don’t see a clear harm or exploit with exposing IDRs, but IMHO we
should deal with userspace with the least privilege principle and
only expose what user space cares about (with sanitised IDRs or
through another mechanism)

For example, KVM doesn’t allow reading reading the CPU system
registers to know if SVE(or other features) is supported but hides
that by a CAP in KVM_CHECK_EXTENSION

> 
> As the comments says, the VMM should not just blindly forward this to
> a guest!

I don't think the kernel should trust userspace.

> 
> The VMM needs to make its own IDR to reflect its own vSMMU
> capabilities. It can refer to the kernel IDR if it needs to.
> 
> So, if the kernel is going to limit it, what criteria would you
> propose the kernel use?

I agree that the VMM would create a virtual IDR for guest, but that
doesn't have to be directly based on the physical one (same as CPU).

Thanks,
Mostafa

> 
> Jason


  reply	other threads:[~2024-09-02 10:20 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 15:51 [PATCH v2 0/8] Initial support for SMMUv3 nested translation Jason Gunthorpe
2024-08-27 15:51 ` [PATCH v2 1/8] vfio: Remove VFIO_TYPE1_NESTING_IOMMU Jason Gunthorpe
2024-08-30  7:40   ` Tian, Kevin
2024-08-27 15:51 ` [PATCH v2 2/8] iommu/arm-smmu-v3: Use S2FWB when available Jason Gunthorpe
2024-08-27 19:48   ` Nicolin Chen
2024-08-28 18:30     ` Jason Gunthorpe
2024-08-28 19:47       ` Nicolin Chen
2024-08-28 19:50   ` Nicolin Chen
2024-08-30  7:44   ` Tian, Kevin
2024-08-30  7:56     ` Nicolin Chen
2024-08-30  8:01       ` Tian, Kevin
2024-08-30 15:12   ` Mostafa Saleh
2024-08-30 16:40     ` Jason Gunthorpe
2024-09-02  9:29       ` Mostafa Saleh
2024-09-03  0:05         ` Jason Gunthorpe
2024-09-03  7:57           ` Mostafa Saleh
2024-09-03 23:33             ` Jason Gunthorpe
2024-09-10 10:55               ` Mostafa Saleh
2024-09-10 20:22                 ` Jason Gunthorpe
2024-09-17  9:48                   ` Mostafa Saleh
2024-09-04 14:20   ` Shameerali Kolothum Thodi
2024-09-04 15:00     ` Jason Gunthorpe
2024-09-10 11:25       ` Shameerali Kolothum Thodi
2024-09-11 22:52         ` Jason Gunthorpe
2024-08-27 15:51 ` [PATCH v2 3/8] ACPICA: IORT: Update for revision E.f Jason Gunthorpe
2024-08-29 10:14   ` Rafael J. Wysocki
2024-08-27 15:51 ` [PATCH v2 4/8] ACPI/IORT: Support CANWBS memory access flag Jason Gunthorpe
2024-08-30  7:52   ` Tian, Kevin
2024-08-30 13:54     ` Jason Gunthorpe
2024-09-03  7:14       ` Tian, Kevin
2024-08-27 15:51 ` [PATCH v2 5/8] iommu/arm-smmu-v3: Report IOMMU_CAP_ENFORCE_CACHE_COHERENCY for CANWBS Jason Gunthorpe
2024-08-27 20:12   ` Nicolin Chen
2024-08-28 19:12     ` Jason Gunthorpe
2024-08-30 15:19   ` Mostafa Saleh
2024-08-30 17:10     ` Jason Gunthorpe
2024-08-27 15:51 ` [PATCH v2 6/8] iommu/arm-smmu-v3: Support IOMMU_GET_HW_INFO via struct arm_smmu_hw_info Jason Gunthorpe
2024-08-30  7:55   ` Tian, Kevin
2024-08-30 15:23   ` Mostafa Saleh
2024-08-30 17:16     ` Jason Gunthorpe
2024-09-02 10:11       ` Mostafa Saleh [this message]
2024-09-03  0:16         ` Jason Gunthorpe
2024-09-03  8:34           ` Mostafa Saleh
2024-09-03 23:40             ` Jason Gunthorpe
2024-09-04  7:11               ` Shameerali Kolothum Thodi
2024-09-04 12:01                 ` Jason Gunthorpe
2024-09-06 11:19                   ` Mostafa Saleh
2024-08-27 15:51 ` [PATCH v2 7/8] iommu/arm-smmu-v3: Implement IOMMU_HWPT_ALLOC_NEST_PARENT Jason Gunthorpe
2024-08-27 20:16   ` Nicolin Chen
2024-08-30  7:58   ` Tian, Kevin
2024-08-30 13:55     ` Jason Gunthorpe
2024-08-30 15:27   ` Mostafa Saleh
2024-08-30 17:18     ` Jason Gunthorpe
2024-09-02  8:57       ` Mostafa Saleh
2024-08-27 15:51 ` [PATCH v2 8/8] iommu/arm-smmu-v3: Support IOMMU_DOMAIN_NESTED Jason Gunthorpe
2024-08-27 21:23   ` Nicolin Chen
2024-08-28 19:01     ` Jason Gunthorpe
2024-08-28 19:27       ` Nicolin Chen
2024-08-30  8:16   ` Tian, Kevin
2024-08-30 14:13     ` Jason Gunthorpe
2024-08-30 14:39     ` Jason Gunthorpe
2024-08-30 16:09   ` Mostafa Saleh
2024-08-30 16:59     ` Nicolin Chen
2024-08-30 17:04     ` Jason Gunthorpe
2024-09-02  9:57       ` Mostafa Saleh
2024-09-03  0:30         ` Jason Gunthorpe
2024-09-03  1:13           ` Nicolin Chen
2024-09-03  9:00           ` Mostafa Saleh
2024-09-03 23:55             ` Jason Gunthorpe
2024-09-06 11:07               ` Mostafa Saleh
2024-09-06 13:34                 ` Jason Gunthorpe
2024-09-10 11:12                   ` Mostafa Saleh
2024-09-15 21:39                     ` Jason Gunthorpe
2024-09-06 18:28       ` Jason Gunthorpe
2024-09-06 18:49         ` Nicolin Chen
2024-09-06 23:15           ` Jason Gunthorpe
2024-08-27 21:31 ` [PATCH v2 0/8] Initial support for SMMUv3 nested translation Nicolin Chen
2024-08-28 16:31   ` Shameerali Kolothum Thodi
2024-08-28 17:14     ` Nicolin Chen
2024-08-28 18:06       ` Shameerali Kolothum Thodi
2024-08-28 18:12         ` Nicolin Chen
2024-08-29 13:14           ` Shameerali Kolothum Thodi
2024-08-29 14:52             ` Shameerali Kolothum Thodi
2024-08-29 16:10               ` Nicolin Chen
2024-08-30  9:07                 ` Shameerali Kolothum Thodi
2024-08-30 17:01                   ` Nicolin Chen
2024-09-12  3:42   ` Zhangfei Gao
2024-09-12  4:05     ` Nicolin Chen
2024-09-12  4:25     ` Baolu Lu
2024-09-12  7:32       ` Zhangfei Gao
2024-10-15  3:21       ` Zhangfei Gao
2024-10-15 13:09         ` Jason Gunthorpe
2024-10-17  1:53           ` Zhangfei Gao
2024-10-17 11:57             ` Jason Gunthorpe
2024-10-16  2:23 ` Zhangfei Gao
2024-10-16 11:53   ` Jason Gunthorpe

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=ZtWPRDsQ-VV-6juL@google.com \
    --to=smostafa@google.com \
    --cc=acpica-devel@lists.linux.dev \
    --cc=alex.williamson@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=guohanjun@huawei.com \
    --cc=iommu@lists.linux.dev \
    --cc=jean-philippe@linaro.org \
    --cc=jgg@nvidia.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=lpieralisi@kernel.org \
    --cc=mdf@kernel.org \
    --cc=mshavit@google.com \
    --cc=nicolinc@nvidia.com \
    --cc=patches@lists.linux.dev \
    --cc=rafael@kernel.org \
    --cc=robert.moore@intel.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=sudeep.holla@arm.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;
as well as URLs for NNTP newsgroup(s).