From: Eric Farman <farman@linux.ibm.com>
To: "Cédric Le Goater" <clg@redhat.com>,
"Joao Martins" <joao.m.martins@oracle.com>,
"Zhenzhong Duan" <zhenzhong.duan@intel.com>
Cc: alex.williamson@redhat.com, eric.auger@redhat.com,
chao.p.peng@intel.com, Thomas Huth <thuth@redhat.com>,
Matthew Rosato <mjrosato@linux.ibm.com>,
"open list:S390 general arch..." <qemu-s390x@nongnu.org>,
qemu-devel@nongnu.org
Subject: Re: [PATCH 2/2] vfio/ccw: Don't initialize HOST_IOMMU_DEVICE with mdev
Date: Mon, 22 Jul 2024 13:45:36 -0400 [thread overview]
Message-ID: <21b3a584cf28e56a3436ae57548a7ea57869d855.camel@linux.ibm.com> (raw)
In-Reply-To: <4369ce16-0b40-4df3-8db0-276bb0887fa0@redhat.com>
On Mon, 2024-07-22 at 17:36 +0200, Cédric Le Goater wrote:
> On 7/22/24 17:09, Joao Martins wrote:
> > On 22/07/2024 15:57, Eric Farman wrote:
> > > On Mon, 2024-07-22 at 15:07 +0800, Zhenzhong Duan wrote:
> > > > mdevs aren't "physical" devices and when asking for backing IOMMU info,
> > > > it fails the entire provisioning of the guest. Fix that by setting
> > > > vbasedev->mdev true so skipping HostIOMMUDevice initialization in the
> > > > presence of mdevs.
> > >
> > > Hmm, picking the two commits that Cedric mentioned in his cover-letter reply [1] doesn't "fail the entire provisioning of the guest" for me.
> > >
> > > Applying this patch on top of that causes the call from vfio_attach_device() to hiod_legacy_vfio_realize() to be skipped, which seems odd. What am I missing?
> > >
> > > [1] https://lore.kernel.org/qemu-devel/4c9a184b-514c-4276-95ca-9ed86623b9a4@redhat.com/
> > >
> >
> > If you are using IOMMUFD
> >
Which is not the case in defconfig.
> > it will fail the entire provisioning i.e. GET_HW_INFO
> > fails because there's no actual device/IOMMU you can probe hardware information
> > from and you can't start a guest. This happened at least for me in x86 vfio-pci
> > mdevs (or at least I reproduced it when trying to test mdev_tty)
> >
> > But if you don't support IOMMUFD, then it probably makes no difference as type1
> > doesn't do anything particularly special besides initializing some static data.
This was my concern. The static data doesn't look particularly exciting, but it does seem strange to
be skipping over it in the non-iommufd case now.
> > The realize is skipped because you technically don't have a physical host IOMMU
> > directly behind the mdev, but rather some parent function related software
> > entity doing that for you.
> >
> > Zhengzhong noticed there were some other mdevs aside from vfio-pci and in an
> > attempt to prevent regression elsewhere it posted for the other mdevs in qemu.
>
>
> yes. I confirm with :
>
> -device vfio-ap,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/8eb8351a-e656-4187-b773-fea4e926310d,iommufd=iommufd0 \
> -object iommufd,id=iommufd0 \
> -trace 'iommufd*'
>
> iommufd_cdev_getfd /dev/vfio/devices/vfio4 (fd=28)
Ah, right... Need to enable iommufd AND vfio_device_cdev to get into this potential situation. I
guess this is better than random failures down the road.
Acked-by: Eric Farman <farman@linux.ibm.com>
> iommufd_backend_connect fd=27 owned=1 users=1
> iommufd_cdev_connect_and_bind [iommufd=27] Successfully bound device 8eb8351a-e656-4187-b773-fea4e926310d (fd=28): output devid=1
> iommufd_backend_alloc_ioas iommufd=27 ioas=2
> iommufd_cdev_alloc_ioas [iommufd=27] new IOMMUFD container with ioasid=2
> iommufd_cdev_attach_ioas_hwpt [iommufd=27] Successfully attached device 8eb8351a-e656-4187-b773-fea4e926310d (28) to id=2
> iommufd_backend_map_dma iommufd=27 ioas=2 iova=0x0 size=0x200000000 addr=0x3fd9ff00000 readonly=0 (0)
> iommufd_cdev_device_info 8eb8351a-e656-4187-b773-fea4e926310d (28) num_irqs=1 num_regions=0 flags=33
> iommufd_cdev_detach_ioas_hwpt [iommufd=27] Successfully detached 8eb8351a-e656-4187-b773-fea4e926310d
> iommufd_backend_unmap_dma iommufd=27 ioas=2 iova=0x0 size=0x200000000 (0)
> iommufd_backend_free_id iommufd=27 id=2 (0)
> iommufd_backend_disconnect fd=-1 users=0
>
> qemu-kvm: -device vfio-ap,id=hostdev0,sysfsdev=/sys/bus/mdev/devices/8eb8351a-e656-4187-b773-fea4e926310d,iommufd=iommufd0: vfio 8eb8351a-e656-4187-b773-fea4e926310d: Failed to get hardware info: No such file or directory
>
>
>
> Thanks,
>
> C.
>
>
next prev parent reply other threads:[~2024-07-22 17:46 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-22 7:07 [PATCH 0/2] Don't initialize HOST_IOMMU_DEVICE with mdev Zhenzhong Duan
2024-07-22 7:07 ` [PATCH 1/2] vfio/ap: " Zhenzhong Duan
2024-07-22 9:18 ` Joao Martins
2024-07-22 15:46 ` Anthony Krowiak
2024-07-22 15:52 ` Joao Martins
2024-07-22 7:07 ` [PATCH 2/2] vfio/ccw: " Zhenzhong Duan
2024-07-22 9:18 ` Joao Martins
2024-07-22 14:57 ` Eric Farman
2024-07-22 15:09 ` Joao Martins
2024-07-22 15:36 ` Cédric Le Goater
2024-07-22 17:45 ` Eric Farman [this message]
2024-07-23 2:52 ` Duan, Zhenzhong
2024-07-22 9:31 ` [PATCH 0/2] " Eric Auger
2024-07-22 10:02 ` Cédric Le Goater
2024-07-22 13:50 ` 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=21b3a584cf28e56a3436ae57548a7ea57869d855.camel@linux.ibm.com \
--to=farman@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=chao.p.peng@intel.com \
--cc=clg@redhat.com \
--cc=eric.auger@redhat.com \
--cc=joao.m.martins@oracle.com \
--cc=mjrosato@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=thuth@redhat.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 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).