All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Joao Martins <joao.m.martins@oracle.com>
Cc: "Duan, Zhenzhong" <zhenzhong.duan@intel.com>,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"alex.williamson@redhat.com" <alex.williamson@redhat.com>,
	"clg@redhat.com" <clg@redhat.com>,
	"nicolinc@nvidia.com" <nicolinc@nvidia.com>,
	"eric.auger@redhat.com" <eric.auger@redhat.com>,
	"peterx@redhat.com" <peterx@redhat.com>,
	"jasowang@redhat.com" <jasowang@redhat.com>,
	"Tian, Kevin" <kevin.tian@intel.com>,
	"Liu, Yi L" <yi.l.liu@intel.com>,
	"Sun, Yi Y" <yi.y.sun@intel.com>,
	"Peng, Chao P" <chao.p.peng@intel.com>,
	Thomas Huth <thuth@redhat.com>,
	Eric Farman <farman@linux.ibm.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	"Jason J. Herne" <jjherne@linux.ibm.com>,
	Tony Krowiak <akrowiak@linux.ibm.com>
Subject: Re: [PATCH v4 28/41] vfio/iommufd: Implement the iommufd backend
Date: Thu, 9 Nov 2023 08:57:00 -0400	[thread overview]
Message-ID: <20231109125700.GZ4488@nvidia.com> (raw)
In-Reply-To: <b6f22a3a-84cc-44ab-947b-b7e12656fe87@oracle.com>

On Thu, Nov 09, 2023 at 12:17:35PM +0000, Joao Martins wrote:
> 
> 
> On 08/11/2023 12:48, Jason Gunthorpe wrote:
> > On Wed, Nov 08, 2023 at 07:16:52AM +0000, Duan, Zhenzhong wrote:
> > 
> >>>> +    ret = iommufd_backend_alloc_hwpt(iommufd, vbasedev->devid,
> >>>> +                                     container->ioas_id, &hwpt_id);
> >>>> +
> >>>> +    if (ret) {
> >>>> +        error_setg_errno(errp, errno, "error alloc shadow hwpt");
> >>>> +        return ret;
> >>>> +    }
> >>>
> >>> The above alloc_hwpt fails for mdevs (at least, it fails for me attempting to use
> >>> iommufd backend with vfio-ccw and vfio-ap on s390).  The ioctl is failing in the
> >>> kernel because it can't find an IOMMUFD_OBJ_DEVICE.
> >>>
> >>> AFAIU that's because the mdevs are meant to instead use kernel access via
> >>> vfio_iommufd_emulated_attach_ioas, not hwpt.  That's how mdevs behave when
> >>> looking at the kernel vfio compat container.
> >>>
> >>> As a test, I was able to get vfio-ccw and vfio-ap working using the iommufd
> >>> backend by just skipping this alloc_hwpt above and instead passing container-
> >>>> ioas_id into the iommufd_cdev_attach_hwpt below.  That triggers the
> >>> vfio_iommufd_emulated_attach_ioas call in the kernel.
> >>
> >> Thanks for help test and investigation.
> >> I was only focusing on real device and missed the mdev particularity, sorry.
> >> You are right, there is no hwpt support for mdev, not even an emulated hwpt.
> >> I'll digging into this and see how to distinguish mdev with real device in
> >> this low level function.
> > 
> > I was expecting that hwpt manipulation would be done exclusively
> > inside the device-specific vIOMMU userspace driver. Generic code paths
> > that don't have that knowledge should use the IOAS for everything
> 
> I am probably late into noticing this given Zhenzhong v5; but arent' we
> forgetting the enforcing of dirty tracking in HWPT is done /via/
> ALLOC_HWPT ?

The underlying viommu driver supporting mdev cannot support dirty
tracking via the hwpt flag, so it doesn't matter.

The entire point is that a mdev doesn't have a hwpt or any of the hwpt
linked features including dirty tracking.

Jason


  reply	other threads:[~2023-11-09 13:02 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-02  7:12 [PATCH v4 00/41] vfio: Adopt iommufd Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 01/41] vfio/container: Move IBM EEH related functions into spapr_pci_vfio.c Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 02/41] vfio/container: Move vfio_container_add/del_section_window into spapr.c Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 03/41] vfio/container: Move spapr specific init/deinit " Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 04/41] vfio/spapr: Make vfio_spapr_create/remove_window static Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 05/41] vfio/common: Move vfio_host_win_add/del into spapr.c Zhenzhong Duan
2023-11-06  9:33   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 06/41] vfio: Introduce base object for VFIOContainer and targeted interface Zhenzhong Duan
2023-11-06 16:36   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 07/41] vfio/container: Introduce a empty VFIOIOMMUOps Zhenzhong Duan
2023-11-06 16:36   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 08/41] vfio/container: Switch to dma_map|unmap API Zhenzhong Duan
2023-11-06 16:37   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 09/41] vfio/common: Introduce vfio_container_init/destroy helper Zhenzhong Duan
2023-11-06 16:37   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 10/41] vfio/common: Move giommu_list in base container Zhenzhong Duan
2023-11-06 16:50   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 11/41] vfio/container: Move space field to " Zhenzhong Duan
2023-11-06 16:50   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 12/41] vfio/container: Switch to IOMMU BE set_dirty_page_tracking/query_dirty_bitmap API Zhenzhong Duan
2023-11-06 16:50   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 13/41] vfio/container: Move per container device list in base container Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 14/41] vfio/container: Convert functions to " Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 15/41] vfio/container: Move pgsizes and dma_max_mappings " Zhenzhong Duan
2023-11-06 16:53   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 16/41] vfio/container: Move vrdl_list " Zhenzhong Duan
2023-11-06 16:53   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 17/41] vfio/container: Move listener " Zhenzhong Duan
2023-11-06 16:57   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 18/41] vfio/container: Move dirty_pgsizes and max_dirty_bitmap_size " Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 19/41] vfio/container: Move iova_ranges " Zhenzhong Duan
2023-11-06 16:58   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 20/41] vfio/container: Implement attach/detach_device Zhenzhong Duan
2023-11-06 16:59   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 21/41] vfio/spapr: Introduce spapr backend and target interface Zhenzhong Duan
2023-11-06 17:30   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 22/41] vfio/spapr: switch to spapr IOMMU BE add/del_section_window Zhenzhong Duan
2023-11-06 17:33   ` Cédric Le Goater
2023-11-07  3:06     ` Duan, Zhenzhong
2023-11-07 13:07       ` Cédric Le Goater
2023-11-07 17:34   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 23/41] vfio/spapr: Move prereg_listener into spapr container Zhenzhong Duan
2023-11-06 17:34   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 24/41] vfio/spapr: Move hostwin_list " Zhenzhong Duan
2023-11-06 17:35   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 25/41] Add iommufd configure option Zhenzhong Duan
2023-11-07 13:14   ` Cédric Le Goater
2023-11-07 14:37     ` Cédric Le Goater
2023-11-08  6:08       ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 26/41] backends/iommufd: Introduce the iommufd object Zhenzhong Duan
2023-11-07 13:33   ` Cédric Le Goater
2023-11-08  3:35     ` Duan, Zhenzhong
2023-11-08  9:40       ` Cédric Le Goater
2023-11-08  9:43         ` Duan, Zhenzhong
2023-11-08  5:50     ` Markus Armbruster
2023-11-08 10:03       ` Cédric Le Goater
2023-11-08 10:30         ` Markus Armbruster
2023-11-08 13:48           ` Cédric Le Goater
2023-11-09  9:05             ` Markus Armbruster
2023-11-10  2:03               ` Duan, Zhenzhong
2023-11-14  9:40                 ` Cédric Le Goater
2023-11-14 10:18                   ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 27/41] util/char_dev: Add open_cdev() Zhenzhong Duan
2023-11-07 13:37   ` Cédric Le Goater
2023-11-08  4:29     ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 28/41] vfio/iommufd: Implement the iommufd backend Zhenzhong Duan
2023-11-07 13:41   ` Cédric Le Goater
2023-11-08  5:45     ` Duan, Zhenzhong
2023-11-08  2:59   ` Matthew Rosato
2023-11-08  7:16     ` Duan, Zhenzhong
2023-11-08 12:48       ` Jason Gunthorpe
2023-11-08 13:25         ` Duan, Zhenzhong
2023-11-08 14:19           ` Jason Gunthorpe
2023-11-09  2:45             ` Duan, Zhenzhong
2023-11-09 12:17         ` Joao Martins
2023-11-09 12:57           ` Jason Gunthorpe [this message]
2023-11-09 12:59             ` Joao Martins
2023-11-09 13:03               ` Joao Martins
2023-11-09 13:09                 ` Jason Gunthorpe
2023-11-09 13:21                   ` Joao Martins
2023-11-09 14:34                     ` Jason Gunthorpe
2023-11-10  3:15                       ` Duan, Zhenzhong
2023-11-10 13:09                         ` Joao Martins
2023-11-13  3:17                           ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 29/41] vfio/iommufd: Relax assert check for " Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 30/41] vfio/iommufd: Add support for iova_ranges Zhenzhong Duan
2023-11-06 17:19   ` Cédric Le Goater
2023-11-07  3:07     ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 31/41] vfio/pci: Extract out a helper vfio_pci_get_pci_hot_reset_info Zhenzhong Duan
2023-11-07 13:48   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 32/41] vfio/pci: Introduce a vfio pci hot reset interface Zhenzhong Duan
2023-11-07 13:52   ` Cédric Le Goater
2023-11-08  5:46     ` Duan, Zhenzhong
2023-11-02  7:12 ` [PATCH v4 33/41] vfio/iommufd: Enable pci hot reset through iommufd cdev interface Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 34/41] vfio/pci: Allow the selection of a given iommu backend Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 35/41] vfio/pci: Make vfio cdev pre-openable by passing a file handle Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 36/41] vfio: Allow the selection of a given iommu backend for platform ap and ccw Zhenzhong Duan
2023-11-07 18:18   ` Cédric Le Goater
2023-11-02  7:12 ` [PATCH v4 37/41] vfio/platform: Make vfio cdev pre-openable by passing a file handle Zhenzhong Duan
2023-11-02  7:12 ` [PATCH v4 38/41] vfio/ap: " Zhenzhong Duan
2023-11-07 18:19   ` Cédric Le Goater
2023-11-02  7:13 ` [PATCH v4 39/41] vfio/ccw: " Zhenzhong Duan
2023-11-07 18:20   ` Cédric Le Goater
2023-11-02  7:13 ` [PATCH v4 40/41] vfio: Make VFIOContainerBase poiner parameter const in VFIOIOMMUOps callbacks Zhenzhong Duan
2023-11-02  7:13 ` [PATCH v4 41/41] vfio: Compile out iommufd for PPC target Zhenzhong Duan
2023-11-07 13:44   ` Cédric Le Goater
2023-11-08  4:31     ` Duan, Zhenzhong
2023-11-06 14:23 ` [PATCH v4 00/41] vfio: Adopt iommufd Cédric Le Goater
2023-11-07 18:28 ` Cédric Le Goater
2023-11-08  3:26   ` Matthew Rosato
2023-11-08  8:37     ` Duan, Zhenzhong
2023-11-08  9:07       ` Duan, Zhenzhong
2023-11-08  9:23         ` Cédric Le Goater
2023-11-08  9:21     ` Cédric Le Goater

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=20231109125700.GZ4488@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=chao.p.peng@intel.com \
    --cc=clg@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=farman@linux.ibm.com \
    --cc=jasowang@redhat.com \
    --cc=jjherne@linux.ibm.com \
    --cc=joao.m.martins@oracle.com \
    --cc=kevin.tian@intel.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=nicolinc@nvidia.com \
    --cc=pasic@linux.ibm.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --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.