|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH] iommu/xen: Add Xen PV-IOMMU driver
Hello Jason,
Le 19/06/2024 à 18:30, Jason Gunthorpe a écrit :
> On Thu, Jun 13, 2024 at 01:50:22PM +0000, Teddy Astie wrote:
>
>> +struct iommu_domain *xen_iommu_domain_alloc(unsigned type)
>> +{
>> + struct xen_iommu_domain *domain;
>> + u16 ctx_no;
>> + int ret;
>> +
>> + if (type & IOMMU_DOMAIN_IDENTITY) {
>> + /* use default domain */
>> + ctx_no = 0;
>
> Please use the new ops, domain_alloc_paging and the static identity domain.
Yes, in the v2, I will use this newer interface.
I have a question on this new interface : is it valid to not have a
identity domain (and "default domain" being blocking); well in the
current implementation it doesn't really matter, but at some point, we
may want to allow not having it (thus making this driver mandatory).
>
>> +static struct iommu_group *xen_iommu_device_group(struct device *dev)
>> +{
>> + if (!dev_is_pci(dev))
>> + return ERR_PTR(-ENODEV);
>> +
>
> device_group is only called after probe_device, since you already
> exclude !pci during probe there is no need for this wrapper, just set
> the op directly to pci_device_group.
>
>> + if (!dev_is_pci(dev))
>> + return;
>
> No op is ever called on a non-probed device, remove all these checks.
>
>
> A paging domain should be the only domain ops that have a populated
> map so this should be made impossible by construction
Makes sense, will remove these redundant checks in v2.
>
>> +static void xen_iommu_release_device(struct device *dev)
>> +{
>> + int ret;
>> + struct pci_dev *pdev;
>> + struct pv_iommu_op op = {
>> + .subop_id = IOMMUOP_reattach_device,
>> + .flags = 0,
>> + .ctx_no = 0 /* reattach device back to default context */
>> + };
>
> Consider if you can use release_domain for this, I think this is
> probably a BLOCKED domain behavior.
The goal is to put back all devices where they were at the beginning
(the default "context"), which is what release_domain looks like it is
doing. Will use it for v2.
>
> Jason
Teddy
Teddy Astie | Vates XCP-ng Intern
XCP-ng & Xen Orchestra - Vates solutions
web: https://vates.tech
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |