|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v9 3/6] sysctl / libxl: report whether IOMMU/HAP page table sharing is supported
> -----Original Message-----
> From: Jan Beulich <jbeulich@xxxxxxxx>
> Sent: 12 September 2019 14:28
> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> Cc: JulienGrall <julien.grall@xxxxxxx>; Andrew Cooper
> <Andrew.Cooper3@xxxxxxxxxx>; Anthony Perard
> <anthony.perard@xxxxxxxxxx>; Christian Lindig <christian.lindig@xxxxxxxxxx>;
> George Dunlap
> <George.Dunlap@xxxxxxxxxx>; Ian Jackson <Ian.Jackson@xxxxxxxxxx>; Stefano
> Stabellini
> <sstabellini@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx; Konrad Rzeszutek
> Wilk
> <konrad.wilk@xxxxxxxxxx>; DavidScott <dave@xxxxxxxxxx>; Tim (Xen.org)
> <tim@xxxxxxx>; Wei Liu
> <wl@xxxxxxx>
> Subject: Re: [PATCH v9 3/6] sysctl / libxl: report whether IOMMU/HAP page
> table sharing is supported
>
> On 12.09.2019 15:18, Paul Durrant wrote:
> >> -----Original Message-----
> >> From: Jan Beulich <jbeulich@xxxxxxxx>
> >> Sent: 12 September 2019 14:04
> >> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>
> >> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx; Julien Grall <julien.grall@xxxxxxx>;
> >> Andrew Cooper
> >> <Andrew.Cooper3@xxxxxxxxxx>; Anthony Perard <anthony.perard@xxxxxxxxxx>;
> >> Christian Lindig
> >> <christian.lindig@xxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxx>;
> >> Ian Jackson
> >> <Ian.Jackson@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>;
> >> Konrad Rzeszutek Wilk
> >> <konrad.wilk@xxxxxxxxxx>; DavidScott <dave@xxxxxxxxxx>; Tim (Xen.org)
> >> <tim@xxxxxxx>; Wei Liu
> >> <wl@xxxxxxx>
> >> Subject: Re: [PATCH v9 3/6] sysctl / libxl: report whether IOMMU/HAP page
> >> table sharing is
> supported
> >>
> >> On 12.09.2019 13:17, Paul Durrant wrote:
> >>> --- a/xen/arch/arm/sysctl.c
> >>> +++ b/xen/arch/arm/sysctl.c
> >>> @@ -15,6 +15,9 @@
> >>> void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
> >>> {
> >>> pi->capabilities |= XEN_SYSCTL_PHYSCAP_hvm | XEN_SYSCTL_PHYSCAP_hap;
> >>> +
> >>> + if ( iommu_enabled && iommu_hap_pt_share )
> >>> + pi->capabilities |= XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share;
> >>> }
> >>
> >> I think this should be done in common code.
> >>
> >>> --- a/xen/arch/x86/sysctl.c
> >>> +++ b/xen/arch/x86/sysctl.c
> >>> @@ -164,7 +164,12 @@ void arch_do_physinfo(struct xen_sysctl_physinfo *pi)
> >>> if ( IS_ENABLED(CONFIG_PV) )
> >>> pi->capabilities |= XEN_SYSCTL_PHYSCAP_pv;
> >>> if ( hvm_hap_supported() )
> >>> + {
> >>> pi->capabilities |= XEN_SYSCTL_PHYSCAP_hap;
> >>> +
> >>> + if ( iommu_enabled && iommu_hap_pt_share )
> >>> + pi->capabilities |= XEN_SYSCTL_PHYSCAP_iommu_hap_pt_share;
> >>> + }
> >>> }
> >>
> >> And if it's important to not have the bit set when !hvm_hap_supported(),
> >
> > ...and that's what it’s not in common code... there is no
> > hvm_hap_supported() for Arm
> >
> >> then iommu_hap_pt_share should be cleared in __init code in this case.
> >
> > That would have been an alternative approach if you'd not wanted
> > it #defined in patch #5. (Yes it's a later patch in the series,
> > but this one is later chronologically and I didn't want to
> > invalidate the other patch.)
> > I could perhaps implement hvm_hap_supported() for Arm?
>
> Well, implementing it for Arm is an option (at which point
> XEN_SYSCTL_PHYSCAP_hap could also move to common code). But
> personally I'd advise against providing more stubs than
> necessary on Arm. I may not understand your remark regarding
> patch 5: There's no problem with iommu_hap_pt_share now being
> a #define on Arm - whether the system is HVM capable is an
> x86 specific decision anyway, and hence the clearing of the
> flag could occur e.g. in hvm_enable() when it bails early.
> And btw., with !CONFIG_HVM it could be a #define on x86 as
> well, just to "false" then.
Ok, I had assumed you meant to clear it common code too. But, yes, clearing it
in x86 code would indeed work and I'll see about the !CONFIG_HVM definition.
Paul
>
> Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |