|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH 1/6] x86/iommu: re-arrange arch_iommu to separate common fields...
> -----Original Message-----
> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: 26 July 2020 09:14
> To: paul@xxxxxxx
> Cc: 'Andrew Cooper' <andrew.cooper3@xxxxxxxxxx>;
> xen-devel@xxxxxxxxxxxxxxxxxxxx; Durrant, Paul
> <pdurrant@xxxxxxxxxxxx>; 'Lukasz Hawrylko' <lukasz.hawrylko@xxxxxxxxxxxxxxx>;
> 'Wei Liu' <wl@xxxxxxx>;
> 'Roger Pau Monné' <roger.pau@xxxxxxxxxx>; 'Kevin Tian' <kevin.tian@xxxxxxxxx>
> Subject: RE: [EXTERNAL] [PATCH 1/6] x86/iommu: re-arrange arch_iommu to
> separate common fields...
>
> CAUTION: This email originated from outside of the organization. Do not click
> links or open
> attachments unless you can confirm the sender and know the content is safe.
>
>
>
> On 24.07.2020 20:49, Paul Durrant wrote:
> >> From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> >> Sent: 24 July 2020 18:29
> >>
> >> On 24/07/2020 17:46, Paul Durrant wrote:
> >>> diff --git a/xen/include/asm-x86/iommu.h b/xen/include/asm-x86/iommu.h
> >>> index 6c9d5e5632..a7add5208c 100644
> >>> --- a/xen/include/asm-x86/iommu.h
> >>> +++ b/xen/include/asm-x86/iommu.h
> >>> @@ -45,16 +45,23 @@ typedef uint64_t daddr_t;
> >>>
> >>> struct arch_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 */
> >>> - u64 iommu_bitmap; /* bitmap of iommu(s) that the domain
> >>> uses */
> >>> - struct list_head mapped_rmrrs;
> >>> -
> >>> - /* amd iommu support */
> >>> - int paging_mode;
> >>> - struct page_info *root_table;
> >>> - struct guest_iommu *g_iommu;
> >>> + spinlock_t mapping_lock; /* io page table lock */
> >>> +
> >>> + union {
> >>> + /* Intel VT-d */
> >>> + struct {
> >>> + u64 pgd_maddr; /* io page directory machine address */
> >>> + int agaw; /* adjusted guest address width, 0 is level 2
> >>> 30-bit */
> >>> + u64 iommu_bitmap; /* bitmap of iommu(s) that the domain uses
> >>> */
> >>> + struct list_head mapped_rmrrs;
> >>> + } vtd;
> >>> + /* AMD IOMMU */
> >>> + struct {
> >>> + int paging_mode;
> >>> + struct page_info *root_table;
> >>> + struct guest_iommu *g_iommu;
> >>> + } amd_iommu;
> >>> + };
> >>
> >> The naming split here is weird.
> >>
> >> Ideally we'd have struct {vtd,amd}_iommu in appropriate headers, and
> >> this would be simply
> >>
> >> union {
> >> struct vtd_iommu vtd;
> >> struct amd_iommu amd;
> >> };
> >>
> >> If this isn't trivial to arrange, can we at least s/amd_iommu/amd/ here ?
> >
> > I was in two minds. I tried to look for a TLA for the AMD IOMMU and 'amd'
> > seemed a little too non-
> descript. I don't really mind though if there's a strong preference to
> shorted it.
>
> +1 for shortening in some way. Even amd_vi would already be better imo,
> albeit I'm with Andrew and would think just amd is fine here (and
> matches how things are in the file system structure).
>
OK, I'll shorten to 'amd'.
> While at it, may I ask that you also switch the plain "int" fields to
> "unsigned int" - I think that's doable for both of them.
>
Sure, I can do that.
Paul
> Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |