|
From: | Yi Liu |
Subject: | Re: [RFC 00/18] vfio: Adopt iommufd |
Date: | Tue, 17 May 2022 16:55:32 +0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.7.0 |
Hi Zhangfei, On 2022/5/12 17:01, zhangfei.gao@foxmail.com wrote:
Hi, Yi On 2022/5/11 下午10:17, zhangfei.gao@foxmail.com wrote:On 2022/5/10 下午10:08, Yi Liu wrote:On 2022/5/10 20:45, Jason Gunthorpe wrote:On Tue, May 10, 2022 at 08:35:00PM +0800, Zhangfei Gao wrote:Thanks Yi and Eric, Then will wait for the updated iommufd kernel for the PCI MMIO region. Another question, How to get the iommu_domain in the ioctl.The ID of the iommu_domain (called the hwpt) it should be returned by the vfio attach ioctl.yes, hwpt_id is returned by the vfio attach ioctl and recorded in qemu. You can query page table related capabilities with this id. https://lore.kernel.org/kvm/20220414104710.28534-16-yi.l.liu@intel.com/Thanks Yi, Do we use iommufd_hw_pagetable_from_id in kernel? The qemu send hwpt_id via ioctl. Currently VFIOIOMMUFDContainer has hwpt_list, Which member is good to save hwpt_id, IOMMUTLBEntry?Can VFIOIOMMUFDContainer have multi hwpt?
yes, it is possible
Since VFIOIOMMUFDContainer has hwpt_list now.If so, how to get specific hwpt from map/unmap_notify in hw/vfio/as.c, where no vbasedev can be used for compare.I am testing with a workaround, adding VFIOIOASHwpt *hwpt in VFIOIOMMUFDContainer.And save hwpt when vfio_device_attach_container.In kernel ioctl: iommufd_vfio_ioctl @dev: Device to get an iommu_domain foriommufd_hw_pagetable_from_id(struct iommufd_ctx *ictx, u32 pt_id, struct device *dev)But iommufd_vfio_ioctl seems no para dev?We can set dev=Null since IOMMUFD_OBJ_HW_PAGETABLE does not need dev. iommufd_hw_pagetable_from_id(ictx, hwpt_id, NULL)
this is not good. dev is passed in to this function to allocate domain and also check sw_msi things. If you pass in a NULL, it may even unable to get a domain for the hwpt. It won't work I guess.
Thanks
-- Regards, Yi Liu
[Prev in Thread] | Current Thread | [Next in Thread] |