Subject: Re: macvtap performance regression (bisected) between 3.13 and 3.14-rc1

From: Christian Borntraeger <[email-masked]>
Date: Sat, 01 Mar 2014 12:15:14 +0100

On 28/02/14 23:14, Vlad Yasevich wrote:
> On 02/27/2014 03:52 PM, Christian Borntraeger wrote:
>> Vlad,
>>
>> commit 6acf54f1cf0a6747bac9fea26f34cfc5a9029523
>>     macvtap: Add support of packet capture on macvtap device.
>>
>> causes a performance regression for iperf traffic between two KVM guests
>> on my s390 system. Both guests are connected via two macvtaps on the same OSA
>> network card.
>> Before that patch I get ~20 Gbit/sec between two guests, afterwards I get
>> ~4Gbit/sec
>>
>> Latency seems to be unchanges (uperf 1byte ping pong).
>>
>> According to ifconfig in the guest, I have ~ 1500 bytes per packet with this
>> patch and ~  40000 bytes without. So for some reason this patch causes the
>> network stack to do segmentation. (the guest kernel stays the same, only host 
>> kernel is changed).
>>
>> Any ideas?
> 
> I am looking.  It shouldn't cause addition segmentations and when I ran
> netperf on the code I didn't see any difference in the throughput.

Dont know if the different bytes/packets ratio is really the reason or
just a side effect. As a hint: the underlying network device does not support
segmentation, but this should not matter for traffic between to guests.

Maybe you remember, we had a similar situation with commit 3e4f8b787370978733ca6cae452720a4f0c296b8
(macvtap: Perform GSO on forwarding path), the setup is basically the same.

Christian