[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4] VT-d PI: disable VT-d PI when CPU-side PI isn't enabled
>>> On 13.06.17 at 10:29, <JBeulich@xxxxxxxx> wrote: >>>> On 13.06.17 at 10:20, <chao.gao@xxxxxxxxx> wrote: >> From the context calling pi_desc_init(), we can conclude the current >> implementation of VT-d PI depends on CPU-side PI. If we enable VT-d PI >> and disable CPU-side PI by disabling APICv explicitly in xen boot >> command line, we would get an assertion failure. >> >> This patch clears iommu_intpost once finding CPU-side PI won't be enabled. >> It is safe for this is done before this flag starts taking effect. Also >> take this chance to remove the useless check of "acknowledge interrupt on >> exit", which is a minimal requirement which has been checked earlier. >> >> Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> Kevin, Jun? >> --- >> v4: >> - Remove APICv stuff >> - Remove a useless check of "acknowledge interrupt on exit" >> >> v3: >> - check relevant bit directly other than checking the apicv option >> - add sample of 'xl dmesg' >> >> v2: >> - add missing S-o-b >> - comments changes >> - change bool_t to bool and move 'opt_apicv_enabled' declaration to vmcs.h >> >> --- >> xen/arch/x86/hvm/vmx/vmcs.c | 16 ++++++++++++---- >> 1 file changed, 12 insertions(+), 4 deletions(-) >> >> diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c >> index 8103b20..58f89df 100644 >> --- a/xen/arch/x86/hvm/vmx/vmcs.c >> +++ b/xen/arch/x86/hvm/vmx/vmcs.c >> @@ -345,11 +345,19 @@ static int vmx_init_vmcs_config(void) >> >> /* >> * "Process posted interrupt" can be set only when "virtual-interrupt >> - * delivery" and "acknowledge interrupt on exit" is set >> + * delivery" and "acknowledge interrupt on exit" is set. For the latter >> + * is a minimal requirement, only check the former, which is optional. >> */ >> - if ( !(_vmx_secondary_exec_control & >> SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY) >> - || !(_vmx_vmexit_control & VM_EXIT_ACK_INTR_ON_EXIT) ) >> - _vmx_pin_based_exec_control &= ~ PIN_BASED_POSTED_INTERRUPT; >> + if ( !(_vmx_secondary_exec_control & >> SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY) ) >> + _vmx_pin_based_exec_control &= ~ PIN_BASED_POSTED_INTERRUPT; >> + >> + if ( iommu_intpost >> + && !(_vmx_pin_based_exec_control & PIN_BASED_POSTED_INTERRUPT) ) > > With the placement of the && here corrected (belongs on the > earlier line), which can be done while committing of no other > need for v5 arises, > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> > > Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |