[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v12 7/7] passthrough/io: Fall back to remapping interrupt when we can't use VT-d PI



On Fri, Apr 07, 2017 at 06:54:59AM -0600, Jan Beulich wrote:
>>>> On 06.04.17 at 02:30, <chao.gao@xxxxxxxxx> wrote:
>> The current logic of using VT-d pi is when guest configurates the pirq's
>> destination vcpu to a single vcpu, the according IRTE is updated to
>> posted format. If the destination of the pirq is multiple vcpus, we will
>> stay in posted format. Obviously, we should fall back to remapping interrupt
>> when guest wrongly configurate destination of pirq or makes it have
>> multi-destination vcpus.
>> 
>> Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx>
>> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
>> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>
>> ---
>> v11:
>> - move the code (one line) that allow the parameter 'vcpu' of 
>> pi_update_irte()
>> can be NULL to Patch [2/6].
>
>There was a change in v12 too, and I'm afraid it's buggy:

Indeed.

>
>> --- a/xen/drivers/passthrough/io.c
>> +++ b/xen/drivers/passthrough/io.c
>> @@ -413,15 +413,8 @@ int pt_irq_create_bind(
>>  
>>          /* Use interrupt posting if it is supported. */
>>          if ( iommu_intpost )
>> -        {
>> -            if ( vcpu )
>> -                pi_update_irte(&vcpu->arch.hvm_vmx.pi_desc, info,
>> -                               pirq_dpci->gmsi.gvec);
>> -            else
>> -                dprintk(XENLOG_G_INFO,
>> -                        "%pv: deliver interrupt in remapping 
>> mode,gvec:%02x\n",
>> -                        vcpu, pirq_dpci->gmsi.gvec);
>> -        }
>> +            pi_update_irte(&vcpu->arch.hvm_vmx.pi_desc, info,
>> +                           pirq_dpci->gmsi.gvec);
>
>pi_update_irte() tolerates a NULL first argument, but if vcpu is NULL
>you don't pass NULL here. I'll fix this up while committing.
>

Thanks for your kind help.
Chao

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.