All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Wang <jasowang@redhat.com>
To: Zhenzhong Duan <zhenzhong.duan@intel.com>
Cc: qemu-devel@nongnu.org, alex.williamson@redhat.com,
	clg@redhat.com,  eric.auger@redhat.com, peterx@redhat.com,
	mst@redhat.com, jgg@nvidia.com,  nicolinc@nvidia.com,
	joao.m.martins@oracle.com, kevin.tian@intel.com,
	 yi.l.liu@intel.com, yi.y.sun@intel.com, chao.p.peng@intel.com
Subject: Re: [PATCH v1 0/6] Check and sync host IOMMU cap/ecap with vIOMMU
Date: Mon, 4 Mar 2024 12:17:22 +0800	[thread overview]
Message-ID: <CACGkMEtadjC7sX+ssc=5LTaqrrkVZzs4DDMMiUPdPVXRLD0hJw@mail.gmail.com> (raw)
In-Reply-To: <20240228094432.1092748-1-zhenzhong.duan@intel.com>

On Wed, Feb 28, 2024 at 5:46 PM Zhenzhong Duan <zhenzhong.duan@intel.com> wrote:
>
> Hi,
>
> Based on Joao's suggestion, the iommufd nesting prerequisite series [1]
> is further splitted to host IOMMU device abstract part [2] and vIOMMU
> check/sync part. This series implements the 2nd part.
>
> This enables vIOMMU to get host IOMMU cap/ecap information by implementing
> a new set/unset_iommu_device interface, then vIOMMU could check or sync
> with vIOMMU's own cap/ecap config.

Does it mean that it would supress the cap/ecap config from the qemu
command line? If yes, I wonder how to maintain the migration
compatibility.

Thanks

>
> It works by having device side, i.e. VFIO, register either an IOMMULegacyDevice
> or IOMMUFDDevice to vIOMMU, which includes necessary data to archive that.
> Currently only VFIO device is supported, but it could also be used for other
> devices, i.e., VDPA.
>
> For coldplugged device, we can get its host IOMMU cap/ecap during qemu init,
> then check and sync into vIOMMU cap/ecap.
> For hotplugged device, vIOMMU cap/ecap is frozen, we could only check with
> vIOMMU cap/ecap, not allowed to update. If check fails, hotplugged will fail.
>
> This is also a prerequisite for incoming iommufd nesting series:
> 'intel_iommu: Enable stage-1 translation'.
>
> I didn't implement cap/ecap sync for legacy VFIO backend, would like to see
> what Eric want to put in IOMMULegacyDevice for virtio-iommu and if I can
> utilize some of them.
>
> Because it's becoming clear on community's suggestion, I'd like to remove
> rfc tag from this version.
>
> Qemu code can be found at:
> https://github.com/yiliu1765/qemu/tree/zhenzhong/iommufd_nesting_preq_part2_v1
>
> [1] https://lore.kernel.org/qemu-devel/20240201072818.327930-1-zhenzhong.duan@intel.com
> [2] https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg06314.html
>
> Thanks
> Zhenzhong
>
> Changelog:
> v1:
> - convert HostIOMMUDevice to sub object pointer in vtd_check_hdev
>
> rfcv2:
> - introduce common abstract HostIOMMUDevice and sub struct for different BEs (Eric, Cédric)
> - remove iommufd_device.[ch] (Cédric)
> - remove duplicate iommufd/devid define from VFIODevice (Eric)
> - drop the p in aliased_pbus and aliased_pdevfn (Eric)
> - assert devfn and iommu_bus in pci_device_get_iommu_bus_devfn (Cédric, Eric)
> - use errp in iommufd_device_get_info (Eric)
> - split and simplify cap/ecap check/sync code in intel_iommu.c (Cédric)
> - move VTDHostIOMMUDevice declaration to intel_iommu_internal.h (Cédric)
> - make '(vtd->cap_reg >> 16) & 0x3fULL' a MACRO and add missed '+1' (Cédric)
> - block migration if vIOMMU cap/ecap updated based on host IOMMU cap/ecap
> - add R-B
>
>
> Yi Liu (2):
>   intel_iommu: Add set/unset_iommu_device callback
>   intel_iommu: Add a framework to check and sync host IOMMU cap/ecap
>
> Zhenzhong Duan (4):
>   intel_iommu: Extract out vtd_cap_init to initialize cap/ecap
>   intel_iommu: Implement check and sync mechanism in iommufd mode
>   intel_iommu: Use mgaw instead of s->aw_bits
>   intel_iommu: Block migration if cap is updated
>
>  hw/i386/intel_iommu_internal.h |   9 ++
>  include/hw/i386/intel_iommu.h  |   4 +
>  hw/i386/acpi-build.c           |   3 +-
>  hw/i386/intel_iommu.c          | 287 ++++++++++++++++++++++++++-------
>  4 files changed, 245 insertions(+), 58 deletions(-)
>
> --
> 2.34.1
>



  parent reply	other threads:[~2024-03-04  4:18 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28  9:44 [PATCH v1 0/6] Check and sync host IOMMU cap/ecap with vIOMMU Zhenzhong Duan
2024-02-28  9:44 ` [PATCH v1 1/6] intel_iommu: Add set/unset_iommu_device callback Zhenzhong Duan
2024-02-28  9:44 ` [PATCH v1 2/6] intel_iommu: Extract out vtd_cap_init to initialize cap/ecap Zhenzhong Duan
2024-02-28  9:44 ` [PATCH v1 3/6] intel_iommu: Add a framework to check and sync host IOMMU cap/ecap Zhenzhong Duan
2024-03-12 17:03   ` Michael S. Tsirkin
2024-03-13  2:52     ` Duan, Zhenzhong
2024-03-13  7:07       ` Michael S. Tsirkin
2024-03-13  7:54         ` Duan, Zhenzhong
2024-03-13 11:17           ` Michael S. Tsirkin
2024-03-14  4:05             ` Duan, Zhenzhong
2024-03-18 13:20             ` Eric Auger
2024-03-28  7:20               ` Michael S. Tsirkin
2024-03-29  3:22                 ` Duan, Zhenzhong
2024-02-28  9:44 ` [PATCH v1 4/6] intel_iommu: Implement check and sync mechanism in iommufd mode Zhenzhong Duan
2024-02-28  9:44 ` [PATCH v1 5/6] intel_iommu: Use mgaw instead of s->aw_bits Zhenzhong Duan
2024-02-28  9:44 ` [PATCH v1 6/6] intel_iommu: Block migration if cap is updated Zhenzhong Duan
2024-03-04  6:35   ` Prasad Pandit
2024-03-04  8:11     ` Duan, Zhenzhong
2024-03-04  9:43       ` Prasad Pandit
2024-03-04 10:10         ` Duan, Zhenzhong
2024-03-04  4:17 ` Jason Wang [this message]
2024-03-04  6:13   ` [PATCH v1 0/6] Check and sync host IOMMU cap/ecap with vIOMMU Duan, Zhenzhong

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='CACGkMEtadjC7sX+ssc=5LTaqrrkVZzs4DDMMiUPdPVXRLD0hJw@mail.gmail.com' \
    --to=jasowang@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=chao.p.peng@intel.com \
    --cc=clg@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=jgg@nvidia.com \
    --cc=joao.m.martins@oracle.com \
    --cc=kevin.tian@intel.com \
    --cc=mst@redhat.com \
    --cc=nicolinc@nvidia.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yi.l.liu@intel.com \
    --cc=yi.y.sun@intel.com \
    --cc=zhenzhong.duan@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 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.