xen-devel
[Xen-devel] Re: [PATCH] Handle MSI irq storm
Also please remember to add a signed-off-by line when you re-submit.
-- Keir
On 3/7/08 10:17, "Shan, Haitao" <haitao.shan@xxxxxxxxx> wrote:
> OK. I write a new patch and send it out later.
> Thanks for your help!
>
> Shan Haitao
>
> -----Original Message-----
> From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
> Sent: 2008年7月3日 17:12
> To: Shan, Haitao
> Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [PATCH] Handle MSI irq storm
>
> On 3/7/08 09:56, "Shan, Haitao" <haitao.shan@xxxxxxxxx> wrote:
>
>> For HVM guest, I assume that when EOI (virtual) is written guest has finished
>> the interrupt handling (or at least, it has started handling).
>> But for non-HVM guest, I have not thought of a good point now. I just assume
>> the interrupt has been services as soon as pirq is sent to guest. Do you have
>> any suggestions on this?
>
> Yes, you can check whether send_guest_pirq() found the event-channel-pending
> flag already set. If so, and the interrupt is ACKTYPE_NONE, then it's a
> spurious interrupt.
>
> I would arrange the logic something like as follows:
> 1. Push your INPROGRESS logic inside of hvm_do_IRQ_dpci() (you'll have to
> create new flag in place of using IRQ_INPROGRESS, obviously). Have
> hvm_do_IRQ_dpci() return one of three statuses: not handled, handled, and
> already pending. Don't bother clearing the flag in the hvm eoi function.
> It's not really a requirement for this scheme to work.
> 2. Have send_guest_pirq() return a boolean indicating whether the
> event-channel is already pending.
> 3. In __do_IRQ_guest() collate already-pending status for each iteration of
> the for loop. After the loop, if all receivers indicated already-pending
> then disable_irq(), set IRQ_INPROGRESS, set the timer, etc.
>
> Oh, allocate the irq timers outside of irq_desc (i.e., have a separate array
> allocated statically in irq.c). Dynamically allocating them on the interrupt
> path is not really very great. And remember to kill_timer() if all guest
> unbind from the interrupt.
>
> Does that all make sense?
>
> -- Keir
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] Handle MSI irq storm, Shan, Haitao
- [Xen-devel] Re: [PATCH] Handle MSI irq storm, Keir Fraser
- Re: [Xen-devel] Re: [PATCH] Handle MSI irq storm, Keir Fraser
- [Xen-devel] RE: [PATCH] Handle MSI irq storm, Shan, Haitao
- Re: [Xen-devel] Re: [PATCH] Handle MSI irq storm, Keir Fraser
- [Xen-devel] RE: [PATCH] Handle MSI irq storm, Shan, Haitao
- [Xen-devel] Re: [PATCH] Handle MSI irq storm, Keir Fraser
- [Xen-devel] RE: [PATCH] Handle MSI irq storm, Shan, Haitao
- RE: [Xen-devel] RE: [PATCH] Handle MSI irq storm, Shan, Haitao
- RE: [Xen-devel] RE: [PATCH] Handle MSI irq storm, Ian Campbell
|
|
|