All of lore.kernel.org
 help / color / mirror / Atom feed
* kvm network latency, higher with virtio ?
@ 2009-09-15 15:15 Luca Bigliardi
  2009-09-16  7:27 ` Michael S. Tsirkin
  0 siblings, 1 reply; 4+ messages in thread
From: Luca Bigliardi @ 2009-09-15 15:15 UTC (permalink / raw)
  To: kvm

Hi,
I'm running some tests between two linux instances bridged together.

If I try to ping 10 times I obtain the following results:

-net nic,model=virtio -net tap :
    rtt min/avg/max/mdev = 0.756/0.967/2.115/0.389 ms

-net nic,model=rtl8139 -net tap :
    rtt min/avg/max/mdev = 0.301/0.449/1.173/0.248 ms

So it seems with virtio the latency is higher. Is it normal?

The results I'm reporting were obtained with
- host
  qemu-kvm 0.11-rc2
  kvm-kmod-2.6.30.1
  kernel: 2.6.30.5 (HIGH_RES_TIMERS=y as suggested in
                    http://www.linux-kvm.org/page/Virtio )
- guest
  kernel: 2.6.31

but I also tested older versions always obtaining latency values at least two
times higher than rtl8139/e1000 .

Thank you,
Luca


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kvm network latency, higher with virtio ?
  2009-09-15 15:15 kvm network latency, higher with virtio ? Luca Bigliardi
@ 2009-09-16  7:27 ` Michael S. Tsirkin
  2009-09-16  8:47   ` Dor Laor
  0 siblings, 1 reply; 4+ messages in thread
From: Michael S. Tsirkin @ 2009-09-16  7:27 UTC (permalink / raw)
  To: Luca Bigliardi; +Cc: kvm

On Tue, Sep 15, 2009 at 05:15:09PM +0200, Luca Bigliardi wrote:
> Hi,
> I'm running some tests between two linux instances bridged together.
> 
> If I try to ping 10 times I obtain the following results:
> 
> -net nic,model=virtio -net tap :
>     rtt min/avg/max/mdev = 0.756/0.967/2.115/0.389 ms
> 
> -net nic,model=rtl8139 -net tap :
>     rtt min/avg/max/mdev = 0.301/0.449/1.173/0.248 ms
> 
> So it seems with virtio the latency is higher. Is it normal?

Yes, the main reason is the TX timer it uses for interrupt/vm exit mitigation.

> The results I'm reporting were obtained with
> - host
>   qemu-kvm 0.11-rc2
>   kvm-kmod-2.6.30.1
>   kernel: 2.6.30.5 (HIGH_RES_TIMERS=y as suggested in
>                     http://www.linux-kvm.org/page/Virtio )
> - guest
>   kernel: 2.6.31
> 
> but I also tested older versions always obtaining latency values at least two
> times higher than rtl8139/e1000 .
> 
> Thank you,
> Luca
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kvm network latency, higher with virtio ?
  2009-09-16  7:27 ` Michael S. Tsirkin
@ 2009-09-16  8:47   ` Dor Laor
  2009-09-17 16:58     ` Luca Bigliardi
  0 siblings, 1 reply; 4+ messages in thread
From: Dor Laor @ 2009-09-16  8:47 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: Luca Bigliardi, kvm

On 09/16/2009 10:27 AM, Michael S. Tsirkin wrote:
> On Tue, Sep 15, 2009 at 05:15:09PM +0200, Luca Bigliardi wrote:
>> Hi,
>> I'm running some tests between two linux instances bridged together.
>>
>> If I try to ping 10 times I obtain the following results:
>>
>> -net nic,model=virtio -net tap :
>>      rtt min/avg/max/mdev = 0.756/0.967/2.115/0.389 ms
>>
>> -net nic,model=rtl8139 -net tap :
>>      rtt min/avg/max/mdev = 0.301/0.449/1.173/0.248 ms
>>
>> So it seems with virtio the latency is higher. Is it normal?
>
> Yes, the main reason is the TX timer it uses for interrupt/vm exit mitigation.

Originally we used the tx mitigation timer in order to provide better 
throughput on the expense of latency.
Measurements of older versions of virtio proved that we can cancel this 
timer and achieve better latency while not hurting throughput.

Vhost wouldn't use it. For the time being until be get vhost, we should 
probably remove it from qemu.

>
>> The results I'm reporting were obtained with
>> - host
>>    qemu-kvm 0.11-rc2
>>    kvm-kmod-2.6.30.1
>>    kernel: 2.6.30.5 (HIGH_RES_TIMERS=y as suggested in
>>                      http://www.linux-kvm.org/page/Virtio )
>> - guest
>>    kernel: 2.6.31
>>
>> but I also tested older versions always obtaining latency values at least two
>> times higher than rtl8139/e1000 .
>>
>> Thank you,
>> Luca
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kvm" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: kvm network latency, higher with virtio ?
  2009-09-16  8:47   ` Dor Laor
@ 2009-09-17 16:58     ` Luca Bigliardi
  0 siblings, 0 replies; 4+ messages in thread
From: Luca Bigliardi @ 2009-09-17 16:58 UTC (permalink / raw)
  To: Dor Laor; +Cc: Michael S. Tsirkin, kvm

On Wed, Sep 16, 2009 at 11:47:07AM +0300, Dor Laor wrote:

Hi!
Thank you for explaining.

> Measurements of older versions of virtio proved that we can cancel this  
> timer and achieve better latency while not hurting throughput.

Well, I did try the patch Michael is suggesting here:
http://lkml.org/lkml/2009/8/17/140

And I should say that in my testing environment not only the throughput doesn't
decrease, but in some cases it grows (tested using netperf with udp-stream).

> Vhost wouldn't use it. For the time being until be get vhost, we should  
> probably remove it from qemu.

Yes please, check with your tests and consider this.


Thank you,

Luca


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-09-17 17:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-15 15:15 kvm network latency, higher with virtio ? Luca Bigliardi
2009-09-16  7:27 ` Michael S. Tsirkin
2009-09-16  8:47   ` Dor Laor
2009-09-17 16:58     ` Luca Bigliardi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.