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

Re: [Xen-devel] [PATCH] dpci: Put the dpci back on the list if scheduled from another CPU.



>>> On 18.03.15 at 14:58, <konrad.wilk@xxxxxxxxxx> wrote:
> On Wed, Mar 18, 2015 at 07:38:12AM +0000, Jan Beulich wrote:
>> >>> On 17.03.15 at 18:15, <konrad.wilk@xxxxxxxxxx> wrote:
>> > The latest one (please see attached) would cause an dead-lock iff
>> > on the CPU we are running the softirq and an do_IRQ comes for the
>> > exact dpci we are in process of executing.
>> 
>> I'm afraid I'm not seeing it - please explain.
> 
> Lets assume that the device is an PCIe with MSI. We have only one
> VCPU in the guest.
> 
> We receive the first interrupt, end up going:
> vmx_vmexit_handler
>  - case EXIT_REASON_EXTERNAL_INTERRUPT
>    \- vmx_do_extint
>       \- do_IRQ
>           \- __do_IRQ_guest
>               \- hvm_do_IRQ_dpci
>                  \- raise_softirq_for
>                       [DPCI_SOFTIRQ bit set]
> vmx_process_softirq
>  sti
>  do_softirq
>    -\ __do_sofitq_
>         \- dpci_softirq
>             -\ hvm_dirq_assist
>                [state is 'running']
> 
> [Same vector comes in]

Is that indeed possible? Afaict nothing in the code sequence above
ack-ed the interrupt, and hence another one can't come in.

Jan


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


 


Rackspace

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