LKML Archive mirror
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Nicolin Chen <nicolinc@nvidia.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>,
	"will@kernel.org" <will@kernel.org>,
	"robin.murphy@arm.com" <robin.murphy@arm.com>,
	"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
	"joro@8bytes.org" <joro@8bytes.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"Liu, Yi L" <yi.l.liu@intel.com>,
	"eric.auger@redhat.com" <eric.auger@redhat.com>,
	"vasant.hegde@amd.com" <vasant.hegde@amd.com>,
	"jon.grimm@amd.com" <jon.grimm@amd.com>,
	"santosh.shukla@amd.com" <santosh.shukla@amd.com>,
	"Dhaval.Giani@amd.com" <Dhaval.Giani@amd.com>,
	"shameerali.kolothum.thodi@huawei.com"
	<shameerali.kolothum.thodi@huawei.com>
Subject: Re: [PATCH RFCv1 08/14] iommufd: Add IOMMU_VIOMMU_SET_DEV_ID ioctl
Date: Mon, 10 Jun 2024 09:04:46 -0300	[thread overview]
Message-ID: <20240610120446.GP19897@nvidia.com> (raw)
In-Reply-To: <ZmN5WZkvDeIS7RRH@Asurada-Nvidia>

On Fri, Jun 07, 2024 at 02:19:21PM -0700, Nicolin Chen wrote:

> > IOTLB efficiency will suffer though when splitting 1p -> 2v while
> > invalidation performance will suffer when joining 2p -> 1v.
> 
> I think the invalidation efficiency is actually solvable. So,
> basically viommu_invalidate would receive a whole batch of cmds
> and dispatch them to different pSMMUs (nested_domains/devices).
> We already have a vdev_id table for devices, yet we just need a
> new vasid table for nested_domains. Right?

You can't know the ASID usage of the hypervisor from the VM, unless
you also inspect the CD table memory in the guest. That seems like
something we should try hard to avoid.

> With that being said, it would make the kernel design a bit more
> complicated. And the VMM still has to separate the commands for
> passthrough devices (HW iotlb) from commands for emulated devices
> (emulated iotlb), unless we further split the topology at the VM
> level to have a dedicated vSMMU for all passthrough devices --
> then VMM could just forward its entire cmdq to the kernel without
> deciphering every command (likely?).

I would not include the emulated devices in a shared SMMU.. For the
same reason, we should try hard to avoid inspecting the page table
memory.

If a viommu is needed for emulated then virtio-iommu may be more
appropriate..

That said I'm sure someone will want to do this, so as long as it is
possible in the VMM, as slow as it may be, then it is fine.

Jason

  reply	other threads:[~2024-06-10 12:04 UTC|newest]

Thread overview: 118+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-13  3:46 [PATCH RFCv1 00/14] Add Tegra241 (Grace) CMDQV Support (part 2/2) Nicolin Chen
2024-04-13  3:46 ` [PATCH RFCv1 01/14] iommufd: Move iommufd_object to public iommufd header Nicolin Chen
2024-05-12 13:21   ` Jason Gunthorpe
2024-05-12 22:40     ` Nicolin Chen
2024-05-13 22:30       ` Jason Gunthorpe
2024-04-13  3:46 ` [PATCH RFCv1 02/14] iommufd: Swap _iommufd_object_alloc and __iommufd_object_alloc Nicolin Chen
2024-05-12 13:26   ` Jason Gunthorpe
2024-05-13  2:29     ` Nicolin Chen
2024-05-13  3:44       ` Nicolin Chen
2024-05-13 22:30       ` Jason Gunthorpe
2024-04-13  3:47 ` [PATCH RFCv1 03/14] iommufd: Prepare for viommu structures and functions Nicolin Chen
2024-05-12 13:42   ` Jason Gunthorpe
2024-05-13  2:35     ` Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 04/14] iommufd: Add struct iommufd_viommu and iommufd_viommu_ops Nicolin Chen
2024-05-12 14:03   ` Jason Gunthorpe
2024-05-13  3:34     ` Nicolin Chen
2024-05-14 15:55       ` Jason Gunthorpe
2024-05-22  8:58         ` Tian, Kevin
2024-05-22  9:57           ` Baolu Lu
2024-05-22 13:39           ` Jason Gunthorpe
2024-05-23  1:43             ` Tian, Kevin
2024-05-23  4:01               ` Nicolin Chen
2024-05-23  5:40                 ` Tian, Kevin
2024-05-23 12:58               ` Jason Gunthorpe
2024-05-24  2:16                 ` Tian, Kevin
2024-05-24 13:03                   ` Jason Gunthorpe
2024-05-24  2:36                 ` Tian, Kevin
2024-04-13  3:47 ` [PATCH RFCv1 05/14] iommufd: Add IOMMUFD_OBJ_VIOMMU and IOMMUFD_CMD_VIOMMU_ALLOC Nicolin Chen
2024-05-12 14:27   ` Jason Gunthorpe
2024-05-13  4:33     ` Nicolin Chen
2024-05-14 15:38       ` Jason Gunthorpe
2024-05-15  1:20         ` Nicolin Chen
2024-05-21 18:05           ` Jason Gunthorpe
2024-05-22  0:13             ` Nicolin Chen
2024-05-22 16:46               ` Jason Gunthorpe
2024-04-13  3:47 ` [PATCH RFCv1 06/14] iommufd/selftest: Add IOMMU_VIOMMU_ALLOC test coverage Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 07/14] iommufd: Add viommu set/unset_dev_id ops Nicolin Chen
2024-05-12 14:46   ` Jason Gunthorpe
2024-05-13  4:39     ` Nicolin Chen
2024-05-14 15:53       ` Jason Gunthorpe
2024-05-15  1:59         ` Nicolin Chen
2024-05-21 18:24           ` Jason Gunthorpe
2024-05-21 22:27             ` Nicolin Chen
2024-05-22 13:59               ` Jason Gunthorpe
2024-05-23  6:19             ` Tian, Kevin
2024-05-23 15:01               ` Jason Gunthorpe
2024-05-24  2:21                 ` Tian, Kevin
2024-05-24  3:26                   ` Nicolin Chen
2024-05-24  5:24                     ` Tian, Kevin
2024-05-24  5:57                       ` Nicolin Chen
2024-05-24  7:21                         ` Tian, Kevin
2024-05-24 13:12                           ` Jason Gunthorpe
2024-05-24 13:05                   ` Jason Gunthorpe
2024-05-23  5:44       ` Tian, Kevin
2024-05-23  6:09         ` Nicolin Chen
2024-05-23  6:22           ` Tian, Kevin
2024-05-23 13:33         ` Jason Gunthorpe
2024-05-12 14:51   ` Jason Gunthorpe
2024-04-13  3:47 ` [PATCH RFCv1 08/14] iommufd: Add IOMMU_VIOMMU_SET_DEV_ID ioctl Nicolin Chen
2024-05-12 14:58   ` Jason Gunthorpe
2024-05-13  5:24     ` Nicolin Chen
2024-05-17  5:14     ` Nicolin Chen
2024-05-21 18:30       ` Jason Gunthorpe
2024-05-22  2:15         ` Nicolin Chen
2024-05-23  6:42   ` Tian, Kevin
2024-05-24  5:40     ` Nicolin Chen
2024-05-24  7:13       ` Tian, Kevin
2024-05-24 13:19         ` Jason Gunthorpe
2024-05-27  1:08           ` Tian, Kevin
2024-05-28 20:22             ` Nicolin Chen
2024-05-28 20:33               ` Nicolin Chen
2024-05-29  2:58               ` Tian, Kevin
2024-05-29  3:20                 ` Nicolin Chen
2024-05-30  0:28                   ` Tian, Kevin
2024-05-30  0:58                     ` Nicolin Chen
2024-05-30  3:05                       ` Tian, Kevin
2024-05-30  4:26                         ` Nicolin Chen
2024-06-01 21:45                       ` Jason Gunthorpe
2024-06-03  3:25                         ` Nicolin Chen
2024-06-06 18:24                           ` Jason Gunthorpe
2024-06-06 18:44                             ` Nicolin Chen
2024-06-07  0:27                               ` Jason Gunthorpe
2024-06-07  0:36                                 ` Tian, Kevin
2024-06-07 14:49                                   ` Jason Gunthorpe
2024-06-07 21:19                                     ` Nicolin Chen
2024-06-10 12:04                                       ` Jason Gunthorpe [this message]
2024-06-10 20:01                                         ` Nicolin Chen
2024-06-10 22:01                                           ` Jason Gunthorpe
2024-06-10 23:04                                             ` Nicolin Chen
2024-06-11  0:28                                               ` Jason Gunthorpe
2024-06-11  0:44                                                 ` Nicolin Chen
2024-06-11 12:17                                                   ` Jason Gunthorpe
2024-06-11 19:11                                                     ` Nicolin Chen
2024-05-28 20:30             ` Nicolin Chen
2024-05-24 13:20       ` Jason Gunthorpe
2024-04-13  3:47 ` [PATCH RFCv1 09/14] iommufd/selftest: Add IOMMU_VIOMMU_SET_DEV_ID test coverage Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 10/14] iommufd/selftest: Add IOMMU_TEST_OP_MV_CHECK_DEV_ID Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 11/14] iommufd: Add struct iommufd_vqueue and its related viommu ops Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 12/14] iommufd: Add IOMMUFD_OBJ_VQUEUE and IOMMUFD_CMD_VQUEUE_ALLOC Nicolin Chen
2024-05-12 15:02   ` Jason Gunthorpe
2024-05-13  4:41     ` Nicolin Chen
2024-05-13 22:36       ` Jason Gunthorpe
2024-05-23  6:57     ` Tian, Kevin
2024-05-24  4:42       ` Nicolin Chen
2024-05-24  5:26         ` Tian, Kevin
2024-05-24  6:03           ` Nicolin Chen
2024-05-23  7:05   ` Tian, Kevin
2024-04-13  3:47 ` [PATCH RFCv1 13/14] iommufd: Add mmap infrastructure Nicolin Chen
2024-05-12 15:19   ` Jason Gunthorpe
2024-05-13  4:43     ` Nicolin Chen
2024-04-13  3:47 ` [PATCH RFCv1 14/14] iommu/tegra241-cmdqv: Add user-space use support Nicolin Chen
2024-05-22  8:40 ` [PATCH RFCv1 00/14] Add Tegra241 (Grace) CMDQV Support (part 2/2) Tian, Kevin
2024-05-22 16:48   ` Jason Gunthorpe
2024-05-22 19:47     ` Nicolin Chen
2024-05-22 23:28       ` Jason Gunthorpe
2024-05-22 23:43         ` Tian, Kevin
2024-05-23  3:09           ` Nicolin Chen
2024-05-23 12:48             ` 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=20240610120446.GP19897@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=Dhaval.Giani@amd.com \
    --cc=eric.auger@redhat.com \
    --cc=iommu@lists.linux.dev \
    --cc=jon.grimm@amd.com \
    --cc=joro@8bytes.org \
    --cc=kevin.tian@intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=nicolinc@nvidia.com \
    --cc=robin.murphy@arm.com \
    --cc=santosh.shukla@amd.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=vasant.hegde@amd.com \
    --cc=will@kernel.org \
    --cc=yi.l.liu@intel.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 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 read-only IMAP folder(s) and NNTP newsgroup(s).