[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 09/15] xen/passthrough: iommu: Introduce arch specific code
On 02/24/2014 01:16 PM, Jan Beulich wrote: >>>> On 24.02.14 at 13:57, Julien Grall <julien.grall@xxxxxxxxxx> wrote: >>>> struct hvm_iommu { >>>> - u64 pgd_maddr; /* io page directory machine address */ >>>> - spinlock_t mapping_lock; /* io page table lock */ >>>> - int agaw; /* adjusted guest address width, 0 is level 2 30-bit */ >>>> - struct list_head g2m_ioport_list; /* guest to machine ioport mapping >>>> */ >>>> - u64 iommu_bitmap; /* bitmap of iommu(s) that the domain >>>> uses */ >>>> - struct list_head mapped_rmrrs; >>>> - >>>> - /* amd iommu support */ >>>> - int domain_id; >>> >>> At the very least this field doesn't look all that architecture specific, >>> even if it might only be used on x86/AMD right now. >> >> On ARM, each IOMMU will have it's own private data stored in arch.priv. >> I don't think domain_id will be used as the driver can directly use >> d->domain_id. >> >> I gave a look on AMD IOMMU drivers, and in a same function they mixed >> d->domain_id and domain_hvm_iommu(d)->arch.domain_id. The latter one has >> been initialized to d->domain_id in amd_iommu_domain_init. >> >> I think, we can even remove this field for x86... > > As Andrew suggested too. > >>>> - int paging_mode; >>> >>> The same might go for this one. >> >> There is only one paging mode on ARM. > > But please make your changes here not in the spirit of fitting in ARM, > but to make the code reasonable architecture clean. Which means > that fields having a purpose outside of x86 should remain common, > instead of making x86-specific everything that ARM (currently) has > no use for. I didn't want to repeat that I said for the previous field. ARM doesn't have a generic IOMMU driver (or two) as x86. Basically every vendor can decide to design it's own IOMMU. To avoid to have a big structure with some fields used only by one driver, every IOMMU ARM drivers as its own private structure. IHMO, I think every fields stored in the generic hvm_iommu structure should be initialized by generic code, not by a specific driver. -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |