From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH 2/4] Revert virtio tap hack Date: Sat, 03 May 2008 23:03:47 -0500 Message-ID: <481D35A3.5080508@codemonkey.ws> References: <1209869233-17324-1-git-send-email-aliguori@us.ibm.com> <1209869233-17324-2-git-send-email-aliguori@us.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000708040004080907000200" Cc: kvm-devel@lists.sourceforge.net, Marcelo Tosatti , Avi Kivity Return-path: In-Reply-To: <1209869233-17324-2-git-send-email-aliguori@us.ibm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces@lists.sourceforge.net Errors-To: kvm-devel-bounces@lists.sourceforge.net List-Id: kvm.vger.kernel.org This is a multi-part message in MIME format. --------------000708040004080907000200 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Anthony Liguori wrote: > While it has served us well, it is long overdue that we eliminate the > virtio-net tap hack. It turns out that zero-copy has very little impact on > performance. The tap hack was gaining such a significant performance boost > not because of zero-copy, but because it avoided dropping packets on receive > which is apparently a significant problem with the tap implementation in QEMU. > FWIW, attached is a pretty straight forward zero-copy patch. What's interesting is that I see no change in throughput using this patch. The CPU is pegged at 100% during the iperf run. Since we're still using small MTUs, this isn't surprising. Copying a 1500 byte packet that we have to bring into the cache anyway doesn't seem significant. I think zero-copy will be more important with GSO though. Regards, Anthony Liguori > Patches 3 and 4 in this series address the packet dropping issue and the net > result is a 25% boost in RX performance even in the absence of zero-copy. > > Also worth mentioning, is that this makes merging virtio into upstream QEMU > significantly easier. > > Signed-off-by: Anthony Liguori > --------------000708040004080907000200 Content-Type: application/mbox; name="net-tap-zero-copy.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="net-tap-zero-copy.patch" ZGlmZiAtLWdpdCBhL3FlbXUvaHcvdmlydGlvLW5ldC5jIGIvcWVtdS9ody92aXJ0aW8tbmV0 LmMKaW5kZXggNTUzODk3OS4uZGMxMzYzMCAxMDA2NDQKLS0tIGEvcWVtdS9ody92aXJ0aW8t bmV0LmMKKysrIGIvcWVtdS9ody92aXJ0aW8tbmV0LmMKQEAgLTYzLDYgKzYzLDggQEAgdHlw ZWRlZiBzdHJ1Y3QgVmlydElPTmV0CiAgICAgVkxBTkNsaWVudFN0YXRlICp2YzsKICAgICBR RU1VVGltZXIgKnR4X3RpbWVyOwogICAgIGludCB0eF90aW1lcl9hY3RpdmU7CisgICAgaW50 IGxhc3RfZWxlbV92YWxpZDsKKyAgICBWaXJ0UXVldWVFbGVtZW50IGxhc3RfZWxlbTsKIH0g VmlydElPTmV0OwogCiAvKiBUT0RPCkBAIC0xMTIsMzUgKzExNCw3NSBAQCBzdGF0aWMgaW50 IHZpcnRpb19uZXRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogICAgIHJldHVybiAxOwog fQogCi1zdGF0aWMgdm9pZCB2aXJ0aW9fbmV0X3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25z dCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgdmlydGlvX25ldF9yZWNl aXZlX3pjKHZvaWQgKm9wYXF1ZSwgSU9aZXJvQ29weUhhbmRsZXIgKnpjLAorCQkJCSAgdm9p ZCAqZGF0YSkKIHsKICAgICBWaXJ0SU9OZXQgKm4gPSBvcGFxdWU7Ci0gICAgVmlydFF1ZXVl RWxlbWVudCBlbGVtOworICAgIFZpcnRRdWV1ZUVsZW1lbnQgKmVsZW0gPSAmbi0+bGFzdF9l bGVtOwogICAgIHN0cnVjdCB2aXJ0aW9fbmV0X2hkciAqaGRyOwotICAgIGludCBvZmZzZXQs IGk7CisgICAgc3NpemVfdCBlcnI7CiAKLSAgICBpZiAodmlydHF1ZXVlX3BvcChuLT5yeF92 cSwgJmVsZW0pID09IDApIHsKKyAgICBpZiAoIW4tPmxhc3RfZWxlbV92YWxpZCAmJiB2aXJ0 cXVldWVfcG9wKG4tPnJ4X3ZxLCBlbGVtKSA9PSAwKSB7CiAJZnByaW50ZihzdGRlcnIsICJ2 aXJ0aW9fbmV0OiB0aGlzIHNob3VsZCBub3QgaGFwcGVuXG4iKTsKIAlyZXR1cm47CiAgICAg fQogCi0gICAgaGRyID0gKHZvaWQgKillbGVtLmluX3NnWzBdLmlvdl9iYXNlOworICAgIG4t Pmxhc3RfZWxlbV92YWxpZCA9IDE7CisKKyAgICBoZHIgPSAodm9pZCAqKWVsZW0tPmluX3Nn WzBdLmlvdl9iYXNlOwogICAgIGhkci0+ZmxhZ3MgPSAwOwogICAgIGhkci0+Z3NvX3R5cGUg PSBWSVJUSU9fTkVUX0hEUl9HU09fTk9ORTsKIAorICAgIGRvIHsKKwllcnIgPSB6YyhkYXRh LCAmZWxlbS0+aW5fc2dbMV0sIGVsZW0tPmluX251bSAtIDEpOworICAgIH0gd2hpbGUgKGVy ciA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUik7CisKKyAgICBpZiAoZXJyID09IC0xICYmIGVy cm5vID09IEVBR0FJTikKKwlyZXR1cm47CisKKyAgICBpZiAoZXJyIDwgMCkgeworCWZwcmlu dGYoc3RkZXJyLCAidmlydGlvX25ldDogZXJyb3IgZHVyaW5nIElPXG4iKTsKKwlyZXR1cm47 CisgICAgfQorCisgICAgLyogc2lnbmFsIG90aGVyIHNpZGUgKi8KKyAgICBuLT5sYXN0X2Vs ZW1fdmFsaWQgPSAwOworICAgIHZpcnRxdWV1ZV9wdXNoKG4tPnJ4X3ZxLCBlbGVtLCBzaXpl b2YoKmhkcikgKyBlcnIpOworICAgIHZpcnRpb19ub3RpZnkoJm4tPnZkZXYsIG4tPnJ4X3Zx KTsKK30KKworc3RydWN0IGNvbXBhdF9kYXRhCit7CisgICAgY29uc3QgdWludDhfdCAqYnVm OworICAgIGludCBzaXplOworfTsKKworc3RhdGljIHNzaXplX3QgY29tcGF0X2NvcHkodm9p ZCAqb3BhcXVlLCBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdmNudCkKK3sKKyAgICBzdHJ1 Y3QgY29tcGF0X2RhdGEgKmNvbXBhdCA9IG9wYXF1ZTsKKyAgICBpbnQgb2Zmc2V0LCBpOwor CiAgICAgLyogY29weSBpbiBwYWNrZXQuICB1Z2ggKi8KICAgICBvZmZzZXQgPSAwOwotICAg IGkgPSAxOwotICAgIHdoaWxlIChvZmZzZXQgPCBzaXplICYmIGkgPCBlbGVtLmluX251bSkg ewotCWludCBsZW4gPSBNSU4oZWxlbS5pbl9zZ1tpXS5pb3ZfbGVuLCBzaXplIC0gb2Zmc2V0 KTsKLQltZW1jcHkoZWxlbS5pbl9zZ1tpXS5pb3ZfYmFzZSwgYnVmICsgb2Zmc2V0LCBsZW4p OworICAgIGkgPSAwOworICAgIHdoaWxlIChvZmZzZXQgPCBjb21wYXQtPnNpemUgJiYgaSA8 IGlvdmNudCkgeworCWludCBsZW4gPSBNSU4oaW92W2ldLmlvdl9sZW4sIGNvbXBhdC0+c2l6 ZSAtIG9mZnNldCk7CisJbWVtY3B5KGlvdltpXS5pb3ZfYmFzZSwgY29tcGF0LT5idWYgKyBv ZmZzZXQsIGxlbik7CiAJb2Zmc2V0ICs9IGxlbjsKIAlpKys7CiAgICAgfQogCi0gICAgLyog c2lnbmFsIG90aGVyIHNpZGUgKi8KLSAgICB2aXJ0cXVldWVfcHVzaChuLT5yeF92cSwgJmVs ZW0sIHNpemVvZigqaGRyKSArIG9mZnNldCk7Ci0gICAgdmlydGlvX25vdGlmeSgmbi0+dmRl diwgbi0+cnhfdnEpOworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHZp cnRpb19uZXRfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50 IHNpemUpCit7CisgICAgc3RydWN0IGNvbXBhdF9kYXRhIGNvbXBhdDsKKworICAgIGNvbXBh dC5idWYgPSBidWY7CisgICAgY29tcGF0LnNpemUgPSBzaXplOworCisgICAgdmlydGlvX25l dF9yZWNlaXZlX3pjKG9wYXF1ZSwgY29tcGF0X2NvcHksICZjb21wYXQpOwogfQogCiAvKiBU WCAqLwpAQCAtMjIwLDYgKzI2Miw3IEBAIFBDSURldmljZSAqdmlydGlvX25ldF9pbml0KFBD SUJ1cyAqYnVzLCBOSUNJbmZvICpuZCwgaW50IGRldmZuKQogICAgIG1lbWNweShuLT5tYWMs IG5kLT5tYWNhZGRyLCA2KTsKICAgICBuLT52YyA9IHFlbXVfbmV3X3ZsYW5fY2xpZW50KG5k LT52bGFuLCB2aXJ0aW9fbmV0X3JlY2VpdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2aXJ0aW9fbmV0X2Nhbl9yZWNlaXZlLCBuKTsKKyAgICBuLT52Yy0+ZmRfcmVh ZF96YyA9IHZpcnRpb19uZXRfcmVjZWl2ZV96YzsKIAogICAgIG4tPnR4X3RpbWVyID0gcWVt dV9uZXdfdGltZXIodm1fY2xvY2ssIHZpcnRpb19uZXRfdHhfdGltZXIsIG4pOwogICAgIG4t PnR4X3RpbWVyX2FjdGl2ZSA9IDA7CmRpZmYgLS1naXQgYS9xZW11L25ldC5oIGIvcWVtdS9u ZXQuaAppbmRleCBkZmRmOWFmLi40Nzg1MThlIDEwMDY0NAotLS0gYS9xZW11L25ldC5oCisr KyBiL3FlbXUvbmV0LmgKQEAgLTEsMTEgKzEsMTcgQEAKICNpZm5kZWYgUUVNVV9ORVRfSAog I2RlZmluZSBRRU1VX05FVF9ICiAKKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisKK3R5cGVkZWYg c3NpemVfdCAoSU9aZXJvQ29weUhhbmRsZXIpKHZvaWQgKiwgc3RydWN0IGlvdmVjICosIGlu dCk7Cit0eXBlZGVmIHZvaWQgKElPUmVhZFpDSGFuZGxlcikodm9pZCAqLCBJT1plcm9Db3B5 SGFuZGxlciAqLCB2b2lkICopOworCiAvKiBWTEFOcyBzdXBwb3J0ICovCiAKIHR5cGVkZWYg c3RydWN0IFZMQU5DbGllbnRTdGF0ZSBWTEFOQ2xpZW50U3RhdGU7CiAKIHN0cnVjdCBWTEFO Q2xpZW50U3RhdGUgeworICAgIElPUmVhZFpDSGFuZGxlciAqZmRfcmVhZF96YzsKICAgICBJ T1JlYWRIYW5kbGVyICpmZF9yZWFkOwogICAgIC8qIFBhY2tldHMgbWF5IHN0aWxsIGJlIHNl bnQgaWYgdGhpcyByZXR1cm5zIHplcm8uICBJdCdzIHVzZWQgdG8KICAgICAgICByYXRlLWxp bWl0IHRoZSBzbGlycCBjb2RlLiAgKi8KZGlmZiAtLWdpdCBhL3FlbXUvdmwuYyBiL3FlbXUv dmwuYwppbmRleCA3NGMzNGI2Li5hMjIyYzdjIDEwMDY0NAotLS0gYS9xZW11L3ZsLmMKKysr IGIvcWVtdS92bC5jCkBAIC0zOTc0LDYgKzM5NzQsNyBAQCB0eXBlZGVmIHN0cnVjdCBUQVBT dGF0ZSB7CiAgICAgY2hhciBkb3duX3NjcmlwdFsxMDI0XTsKICAgICBjaGFyIGJ1Zls0MDk2 XTsKICAgICBpbnQgc2l6ZTsKKyAgICBpbnQgcmVjZWl2ZWRfZWFnYWluOwogfSBUQVBTdGF0 ZTsKIAogc3RhdGljIHZvaWQgdGFwX3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50 OF90ICpidWYsIGludCBzaXplKQpAQCAtMzk4OSwxMiArMzk5MCw1NCBAQCBzdGF0aWMgdm9p ZCB0YXBfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNp emUpCiAgICAgfQogfQogCisjaWZuZGVmIF9fc3VuX18KK3N0YXRpYyBWTEFOQ2xpZW50U3Rh dGUgKnRhcF9jYW5femVyb19jb3B5KFRBUFN0YXRlICpzKQoreworICAgIFZMQU5DbGllbnRT dGF0ZSAqdmMsICp2YzEgPSBOVUxMOworICAgIGludCB2Y19jb3VudCA9IDA7CisKKyAgICBm b3IgKHZjID0gcy0+dmMtPnZsYW4tPmZpcnN0X2NsaWVudDsgdmM7IHZjID0gdmMtPm5leHQp IHsKKwlpZiAodmMgPT0gcy0+dmMpCisJICAgIGNvbnRpbnVlOworCisJaWYgKCF2Yy0+ZmRf cmVhZF96YyB8fCB2Y19jb3VudCkKKwkgICAgcmV0dXJuIE5VTEw7CisKKwl2Y19jb3VudCsr OworCXZjMSA9IHZjOworICAgIH0KKworICAgIHJldHVybiB2YzE7Cit9CisKK3N0YXRpYyBz c2l6ZV90IHRhcF9zZW5kdih2b2lkICpvcGFxdWUsIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQg aW92Y250KQoreworICAgIFRBUFN0YXRlICpzID0gb3BhcXVlOworICAgIHNzaXplX3QgcmV0 OworCisgICAgcmV0ID0gcmVhZHYocy0+ZmQsIGlvdiwgaW92Y250KTsKKyAgICBpZiAocmV0 ID09IC0xICYmIGVycm5vID09IEVBR0FJTikKKwlzLT5yZWNlaXZlZF9lYWdhaW4gPSAxOwor CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgdGFwX3NlbmRfemVyb19jb3B5 KFRBUFN0YXRlICpzLCBWTEFOQ2xpZW50U3RhdGUgKnZjKQoreworICAgIHMtPnJlY2VpdmVk X2VhZ2FpbiA9IDA7CisgICAgd2hpbGUgKHMtPnJlY2VpdmVkX2VhZ2FpbiA9PSAwICYmCisJ ICAgKCF2Yy0+ZmRfY2FuX3JlYWQgfHwgdmMtPmZkX2Nhbl9yZWFkKHZjLT5vcGFxdWUpKSkg eworCXZjLT5mZF9yZWFkX3pjKHZjLT5vcGFxdWUsIHRhcF9zZW5kdiwgcyk7CisgICAgfQor fQorI2VuZGlmCisKIHN0YXRpYyBpbnQgdGFwX2Nhbl9zZW5kKHZvaWQgKm9wYXF1ZSkKIHsK ICAgICBUQVBTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICBWTEFOQ2xpZW50U3RhdGUgKnZjOwog ICAgIGludCBjYW5fcmVjZWl2ZSA9IDA7Ci0gCisKICAgICAvKiBDaGVjayB0byBzZWUgaWYg YW55IG9mIG91ciBjbGllbnRzIGNhbiByZWNlaXZlIGEgcGFja2V0ICovCiAgICAgZm9yICh2 YyA9IHMtPnZjLT52bGFuLT5maXJzdF9jbGllbnQ7IHZjOyB2YyA9IHZjLT5uZXh0KSB7CiAJ LyogU2tpcCBvdXJzZWx2ZXMgKi8KQEAgLTQwMTgsNiArNDA2MSwxNSBAQCBzdGF0aWMgaW50 IHRhcF9jYW5fc2VuZCh2b2lkICpvcGFxdWUpCiBzdGF0aWMgdm9pZCB0YXBfc2VuZCh2b2lk ICpvcGFxdWUpCiB7CiAgICAgVEFQU3RhdGUgKnMgPSBvcGFxdWU7CisjaWZuZGVmIF9fc3Vu X18KKyAgICBWTEFOQ2xpZW50U3RhdGUgKnpjOworCisgICAgemMgPSB0YXBfY2FuX3plcm9f Y29weShzKTsKKyAgICBpZiAoemMpIHsKKwl0YXBfc2VuZF96ZXJvX2NvcHkocywgemMpOwor CXJldHVybjsKKyAgICB9CisjZW5kaWYKIAogICAgIC8qIEZpcnN0IHRyeSB0byBzZW5kIGFu eSBidWZmZXJlZCBwYWNrZXQgKi8KICAgICBpZiAocy0+c2l6ZSA+IDApIHsK --------------000708040004080907000200 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone --------------000708040004080907000200 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel --------------000708040004080907000200--