[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 2/5] xen/vpci: move xen_domctl_createdomain vPCI flag to common
On 10/31/23 06:56, Jan Beulich wrote: > On 31.10.2023 00:52, Stewart Hildebrand wrote: >> --- a/xen/arch/arm/domain.c >> +++ b/xen/arch/arm/domain.c >> @@ -607,7 +607,8 @@ int arch_sanitise_domain_config(struct >> xen_domctl_createdomain *config) >> { >> unsigned int max_vcpus; >> unsigned int flags_required = (XEN_DOMCTL_CDF_hvm | XEN_DOMCTL_CDF_hap); >> - unsigned int flags_optional = (XEN_DOMCTL_CDF_iommu | >> XEN_DOMCTL_CDF_vpmu); >> + unsigned int flags_optional = (XEN_DOMCTL_CDF_iommu | >> XEN_DOMCTL_CDF_vpmu | >> + XEN_DOMCTL_CDF_vpci); > > Is the flag (going to be, with the initial work) okay to have for Dom0 > on Arm? Hm. Allowing/enabling vPCI for dom0 on ARM should follow or be part of the PCI passthrough SMMU series [1]. I'll move this change to the next patch ("xen/arm: enable vPCI for dom0") and add a note over there. [1] https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg00210.html > >> --- a/xen/arch/x86/domain.c >> +++ b/xen/arch/x86/domain.c >> @@ -712,7 +712,8 @@ int arch_sanitise_domain_config(struct >> xen_domctl_createdomain *config) >> return 0; >> } >> >> -static bool emulation_flags_ok(const struct domain *d, uint32_t emflags) >> +static bool emulation_flags_ok(const struct domain *d, uint32_t emflags, >> + uint32_t cdf) > > While apparently views differ, ./CODING_STYLE wants "unsigned int" to be > used for the latter two arguments. OK, I'll change both to unsigned int. > >> @@ -722,14 +723,17 @@ static bool emulation_flags_ok(const struct domain *d, >> uint32_t emflags) >> if ( is_hvm_domain(d) ) >> { >> if ( is_hardware_domain(d) && >> - emflags != (X86_EMU_VPCI | X86_EMU_LAPIC | X86_EMU_IOAPIC) ) >> + (!( cdf & XEN_DOMCTL_CDF_vpci ) || > > Nit: Stray blanks inside the inner parentheses. OK, I'll fix. > >> + emflags != (X86_EMU_LAPIC | X86_EMU_IOAPIC)) ) >> return false; >> if ( !is_hardware_domain(d) && >> - emflags != (X86_EMU_ALL & ~X86_EMU_VPCI) && >> - emflags != X86_EMU_LAPIC ) >> + ((cdf & XEN_DOMCTL_CDF_vpci) || >> + (emflags != X86_EMU_ALL && >> + emflags != X86_EMU_LAPIC)) ) >> return false; >> } >> - else if ( emflags != 0 && emflags != X86_EMU_PIT ) >> + else if ( (cdf & XEN_DOMCTL_CDF_vpci) || > > Wouldn't this better be enforced in common code? Yes, I will move it to xen/common/domain.c:sanitise_domain_config(). > >> --- a/xen/arch/x86/setup.c >> +++ b/xen/arch/x86/setup.c >> @@ -892,10 +892,11 @@ static struct domain *__init create_dom0(const >> module_t *image, >> { >> dom0_cfg.flags |= (XEN_DOMCTL_CDF_hvm | >> ((hvm_hap_supported() && !opt_dom0_shadow) ? >> - XEN_DOMCTL_CDF_hap : 0)); >> + XEN_DOMCTL_CDF_hap : 0) | >> + XEN_DOMCTL_CDF_vpci); > > Less of a change and imo slightly neater as a result would be to simply > put the addition on the same line where CDF_hvm already is. But as with > many style aspects, views may differ here of course ... I'll change it. > > Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |