Re: How is irq delivered in kvm?

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

 



On Thu, Apr 21, 2011 at 9:11 PM, Avi Kivity <avi@xxxxxxxxxx> wrote:
> On 04/21/2011 04:49 PM, Nguyen Thai Ngoc Duy wrote:
>>
>> Hi,
>>
>> I have a specialized e1000 device driver that expects to receive a
>> single frame per interrupt, no more. It's by design and very hard to
>> change (and it does not serve IP traffic). -net socket or tap can
>> sometimes deliver more than one frame in a row and blow up the driver
>> in turn. I'd like to experiment with tap/socket to only call
>> qemu_send_packet..() once and leave pending frames in queue until next
>> time, with hope that guest will have time to process the frame.
>
> I don't understand how the driver can expect that. ÂThe card is free to
> deliver multiple packets per interrupt. ÂAre you counting on fast timing to
> process the packet before the next packet arrives?

Yes. It uses ethernet as transport to "clone" memory from one machine
to another in a short, precalculated amount of time.

> If you restrict the number of buffers you provide to the card to exactly
> one, you'll get one packet per interrupts (and dropped packets).
>
>> The problem is I'm new to kvm and not sure how the main loop is run.
>> Will there be guest execution time between two tap/socket polls, how
>> long is it? Or is guest run in parallel with the event loop and
>> qemu_set_irq() somehow signals guest immediately?
>
> The latter, it's in parallel.
>
> Are you using qemu-kvm or qemu? Âqemu-kvm will deliver better interrupt
> performance.

I'm using qemu-kvm. What function is used to deliver the interrupt
then, kvm_inject_irq?
-- 
Duy
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux