From owner-freebsd-net@FreeBSD.ORG Fri Nov 21 22:06:21 2014 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 93FDFD24 for ; Fri, 21 Nov 2014 22:06:21 +0000 (UTC) Received: from nm29-vm1.bullet.mail.bf1.yahoo.com (nm29-vm1.bullet.mail.bf1.yahoo.com [98.139.213.144]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 472E4215 for ; Fri, 21 Nov 2014 22:06:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1416607574; bh=NbQq93uy9UAv0Hp0Fq5bVxQCwo1+BlDPcOwXRMatzDA=; h=Date:From:Reply-To:To:Subject:From:Subject; b=cXk2zBWND8GCADp3iRYjLNMfdU2dF4Ab0cLAg5Jdfx4zv6o6xw1bueQ1VgJfSaOwozdwZNk8P4qXfFdCd5ukm9z1+jinMmkSy6c9Yh6/OS8BazoGPasXnHhOuOdNGcTcQv9Yd1a9eYvFnGil5wOp59temaY/cHNZQ4VmYrPPo2xE+NEd6Qv7ALQuH5xgR3yKL8N/j8Lby+0oLa7f2JwyZYcj3kE9KwAenZiiFPv5t+uaDOzVRe+iS26QtagUvQBaxWwvdSbGmaHC7Qh2vAP7Rw3CbHJdpNCNsNH8LzK93Nxq2JZGDi+ZbOnUuYoaEu9yET+fdKYu2p6bnqgPuA0tqQ== DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s2048; d=yahoo.com; b=eKW2WFlsCUNoJLI7aXQwT15Sah4Q2KogW8vyFW+3EZZSAD+EJnxQdSjNko3tiuQPVRk1I679Quq+MYaqy8byRCqafMFgYglMDGA2CLZcmRsKRymwYgyxZA8QQnP5VKf8fH3fpiN6GerqM8G7+T0iEp/NtVQczZSAbcl8AaipWLFsDsm03eJLAf84V53NTHIeHlpJ03qEO8ziE++EAeVEXCR3EQAZHcdnpuA8wq8HW7a5UEzBGebIhLGBQR3/mhQ/gKWgs7Pq2c7cYxg4yS0UaL0u1vUJYoTxJ4y13E/s65qvKpICjQYyZwANQ1jtcPYcoqFApmAtwpaUhMv/TwbPnQ==; Received: from [98.139.214.32] by nm29.bullet.mail.bf1.yahoo.com with NNFMP; 21 Nov 2014 22:06:14 -0000 Received: from [98.139.212.233] by tm15.bullet.mail.bf1.yahoo.com with NNFMP; 21 Nov 2014 22:06:14 -0000 Received: from [127.0.0.1] by omp1042.mail.bf1.yahoo.com with NNFMP; 21 Nov 2014 22:06:14 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 544767.30592.bm@omp1042.mail.bf1.yahoo.com X-YMail-OSG: RN6taeEVM1nFnb1P4KkWIh9VxLZvpbnOUTcnyMQMs3KU5e6M0azn_ST5pUMOQTc piKjWf4olCoSqchoXT_BtTWVT66iDNllW3.6EIUPQ5vigm03cgVsH8DtjvTogzpWD77Ikw6MY7.2 rFuAspyj3e8iF6H6WYOF5BBp2KQdLewZGIjYbTugCsBD0nrQHJ0sYrB2jDWg.VFwkI_UqdC4Ufbu vfnqTSd_20Jx4Bg6lLE7AMFZ704pFWozAEma..d36pQvqoG6GRZfkciem0KBMUy4wgN0cVY5._EQ _t9wPKqvinCfJ_Z60y_cZddUSiODSZP1KlDw1irQKpCUcYK4Rqto7cVeDyvbS0Mfj.egHqEhlZO6 6adrPmdTqo_9BOCPp4jUmBqGyUYKsoxy4LaOTyRkxMVYhHleLrUNg5yXorxwb6FeUxepr7ts1jy3 D9HgJ0AMjimlRwIDfrtQHVErf5CtxaKO1CtL0PfMwU4uAlGjsGQoDqoqN8l0s4XPGxu9cifT1sRH gNXIXkg0bfttyBPHqi1Qr37pYO7NJQ_qQigNN6kcyGANWq9xLh28JjnZnLZmRRDmuF7jvdAtiB.s wq8M3Q.8CC2QPxUUBtctlc2ExT3Eq7qkd6WNZTuVCOWY- Received: by 76.13.26.79; Fri, 21 Nov 2014 22:06:14 +0000 Date: Fri, 21 Nov 2014 22:06:13 +0000 (UTC) From: eclectic 923 Reply-To: eclectic 923 To: "net@freebsd.org" Message-ID: <1960028583.3815364.1416607573474.JavaMail.yahoo@jws10669.mail.bf1.yahoo.com> Subject: Patches for linux virtio_net driver MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_3815363_1763837088.1416607573474" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Nov 2014 22:06:21 -0000 ------=_Part_3815363_1763837088.1416607573474 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit I know this is the Freebsd mailing list, but http://info.iet.unipi.it/~luigi/netmap/#85cb indicates that discussion should be sent to this list. I recently added netmap to a 3.10 LINUX kernel for use in a KVM guest. The virtio driver didn't work. There were two problems. On the 3.10.60 kernel from kernel.org, the patch to virtio_net.c didn't work, one part of the patch was rejected. This is easily fixed. More serious, was that the virtio initialization code didn't work, nor did the packet receive code. The basic problem was failure to initialize the indices properly and failure to maintain a 1 slot separation between head/tail indices. (Same problem 2 locations in the code.) This problem is easily seen by creating a KVM guest with a netmap/virtio_net driver, and simply pinging the guest from the host. The receive traffic can easily be monitored using the pkt-gen tool on the guest. The first 255 pings will work fine, when the index hits 255, then the packet receive will fail, and will continue to fail every time on slot 255. I've included patches for both problems in the hopes that the source code will be updated and others won't have to find these problems. If the source code won't be updated, then I'd appreciate suggestions on the best place to post these patches so others can find them. -- Joe Garvey ------=_Part_3815363_1763837088.1416607573474 Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=virtio_net_3.10.60.patch Content-ID: <610aa3c4-5c02-7702-ee86-313ccf041d34@yahoo.com> IyBUaGUgbmV0bWFwIDMuMTAgcGF0Y2ggZm9yIHRoZSB2aXJ0aW9fbmV0IGRyaXZlciBmYWlscyB0 byBhcHBseS4gVGhpcwojIHBhdGNoIGlzIHRoZSB3aG9sZSBuZXRtYXAgdmlydGlvIGRyaXZlciBw YXRjaCBmb3IgMy4xMC42MCAoZnJvbQojIGtlcm5lbC5vcmcpLCBhbmQgaXQgYXBwbGllcyBjb3Jy ZWN0bHkuCiMKSW5kZXg6IGxpbnV4LTMuMTAuNjAvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGxpbnV4LTMuMTAuNjAub3JpZy9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMJ MjAxNC0xMS0xNCAxMTo0ODoyMy4wMDAwMDAwMDAgLTA1MDAKKysrIGxpbnV4LTMuMTAuNjAvZHJp dmVycy9uZXQvdmlydGlvX25ldC5jCTIwMTQtMTEtMjEgMTI6NTQ6MjkuNzUxNzYwMDk1IC0wNTAw CkBAIC0xMzEsNiArMTMxLDEwIEBACiAJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5iOwogfTsKIAor I2lmIGRlZmluZWQoQ09ORklHX05FVE1BUCkgfHwgZGVmaW5lZChDT05GSUdfTkVUTUFQX01PRFVM RSkKKyNpbmNsdWRlIDx2aXJ0aW9fbmV0bWFwLmg+CisjZW5kaWYKKwogc3RydWN0IHNrYl92bmV0 X2hkciB7CiAJdW5pb24gewogCQlzdHJ1Y3QgdmlydGlvX25ldF9oZHIgaGRyOwpAQCAtMjEwLDYg KzIxNCwxMCBAQAogCS8qIFN1cHByZXNzIGZ1cnRoZXIgaW50ZXJydXB0cy4gKi8KIAl2aXJ0cXVl dWVfZGlzYWJsZV9jYih2cSk7CiAKKyNpZmRlZiBERVZfTkVUTUFQCisgICAgICAgIGlmIChuZXRt YXBfdHhfaXJxKHZpLT5kZXYsIHZxMnR4cSh2cSkpKQorCQlyZXR1cm47CisjZW5kaWYKIAkvKiBX ZSB3ZXJlIHByb2JhYmx5IHdhaXRpbmcgZm9yIG1vcmUgb3V0cHV0IGJ1ZmZlcnMuICovCiAJbmV0 aWZfd2FrZV9zdWJxdWV1ZSh2aS0+ZGV2LCB2cTJ0eHEodnEpKTsKIH0KQEAgLTY0Niw3ICs2NTQs MTYgQEAKIAlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSA9IHJxLT52cS0+dmRldi0+cHJpdjsKIAl2 b2lkICpidWY7CiAJdW5zaWduZWQgaW50IHIsIGxlbiwgcmVjZWl2ZWQgPSAwOworI2lmZGVmIERF Vl9ORVRNQVAKKwlpbnQgd29ya19kb25lID0gMDsKKyAKKwlpZiAobmV0bWFwX3J4X2lycSh2aS0+ ZGV2LCB2cTJyeHEocnEtPnZxKSwgJndvcmtfZG9uZSkpIHsKKwkJbmFwaV9jb21wbGV0ZShuYXBp KTsKKwkJTkQoImNhbGxlZCBuZXRtYXBfcnhfaXJxIik7CiAKKwkJcmV0dXJuIDE7CisJfQorI2Vu ZGlmCiBhZ2FpbjoKIAl3aGlsZSAocmVjZWl2ZWQgPCBidWRnZXQgJiYKIAkgICAgICAgKGJ1ZiA9 IHZpcnRxdWV1ZV9nZXRfYnVmKHJxLT52cSwgJmxlbikpICE9IE5VTEwpIHsKQEAgLTY3OSw2ICs2 OTYsMTYgQEAKIHsKIAlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSA9IG5ldGRldl9wcml2KGRldik7 CiAJaW50IGk7CisjaWZkZWYgREVWX05FVE1BUAorICAgICAgICBpbnQgb2sgPSB2aXJ0aW9fbmV0 bWFwX2luaXRfYnVmZmVycyh2aSk7CisKKyAgICAgICAgbmV0bWFwX2VuYWJsZV9hbGxfcmluZ3Mo ZGV2KTsKKyAgICAgICAgaWYgKG9rKSB7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdmkt Pm1heF9xdWV1ZV9wYWlyczsgaSsrKQorCQl2aXJ0bmV0X25hcGlfZW5hYmxlKCZ2aS0+cnFbaV0p OworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgogCiAJZm9yIChpID0g MDsgaSA8IHZpLT5tYXhfcXVldWVfcGFpcnM7IGkrKykgewogCQlpZiAoaSA8IHZpLT5jdXJyX3F1 ZXVlX3BhaXJzKQpAQCAtOTcyLDYgKzk5OSw5IEBACiAJc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkg PSBuZXRkZXZfcHJpdihkZXYpOwogCWludCBpOwogCisjaWZkZWYgREVWX05FVE1BUAorICAgICAg ICBuZXRtYXBfZGlzYWJsZV9hbGxfcmluZ3MoZGV2KTsKKyNlbmRpZgogCS8qIE1ha2Ugc3VyZSBy ZWZpbGxfd29yayBkb2Vzbid0IHJlLWVuYWJsZSBuYXBpISAqLwogCWNhbmNlbF9kZWxheWVkX3dv cmtfc3luYygmdmktPnJlZmlsbCk7CiAKQEAgLTE2NDQsNiArMTY3NCwxMCBAQAogCQlnb3RvIGZy ZWVfcmVjdl9idWZzOwogCX0KIAorI2lmZGVmIERFVl9ORVRNQVAKKyAgICAgICAgdmlydGlvX25l dG1hcF9hdHRhY2godmkpOworI2VuZGlmCisKIAkvKiBBc3N1bWUgbGluayB1cCBpZiBkZXZpY2Ug Y2FuJ3QgcmVwb3J0IGxpbmsgc3RhdHVzLAogCSAgIG90aGVyd2lzZSBnZXQgbGluayBzdGF0dXMg ZnJvbSBjb25maWcuICovCiAJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2aS0+dmRldiwgVklSVElP X05FVF9GX1NUQVRVUykpIHsKQEAgLTE2OTAsNiArMTcyNCw5IEBACiB7CiAJc3RydWN0IHZpcnRu ZXRfaW5mbyAqdmkgPSB2ZGV2LT5wcml2OwogCisjaWZkZWYgREVWX05FVE1BUAorICAgICAgICBu ZXRtYXBfZGV0YWNoKHZpLT5kZXYpOworI2VuZGlmCiAJdW5yZWdpc3Rlcl9ob3RjcHVfbm90aWZp ZXIoJnZpLT5uYik7CiAKIAkvKiBQcmV2ZW50IGNvbmZpZyB3b3JrIGhhbmRsZXIgZnJvbSBhY2Nl c3NpbmcgdGhlIGRldmljZS4gKi8K ------=_Part_3815363_1763837088.1416607573474 Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=virtio_netmap.patch Content-ID: <81b1efd9-9c11-fbc2-07e4-5d6d076218cc@yahoo.com> IyBUaGlzIGZpbGUgaXMgYSBwYXRjaCB0byB0aGUgbmV0bWFwIHZpcnRpb19uZXQgZHJpdmVyIGlu Y2x1ZGUgZmlsZS4KIyBUaGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgaW5pdGlhbGl6YXRpb24s IGFuZCBkdXJpbmcgcmVhZCBwYWNrZXQgd2l0aAojIGNvbnRyb2wgb2YgdGhlIGluZGljaWVzIC4K IwojIFRoaXMgcHJvYmxlbSBpcyBlYXNpbHkgc2VlbiBieSBidWlsZGluZyBhIEtWTSBuZXRtYXAv dmlydGlvX25ldCBkcml2ZXIsIGFuZAojIHNpbXBseSBwaW5naW5nIGl0IChob3N0IHBpbmdzIEtW TSBndWVzdCkuIEFsbCBnb2VzIHdlbGwsIHVudGlsIHJpbmcgYnVmZmVyCiMgcmVhY2hlcyBpbmRl eCAyNTUsIGFuZCBubyBwYWNrZXQgaXMgYWN0dWFsbHkgcmVjZWl2ZWQuIFRoaXMgd2lsbCBmaXgg dGhhdAojIHByb2JsZW0gYW5kIHJlc3VsdGVkIGluIGEgd29ya2luZyBkcml2ZXIuCiMKSW5kZXg6 IGIvTElOVVgvdmlydGlvX25ldG1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGEvTElOVVgvdmlydGlvX25l dG1hcC5oCTIwMTQtMTEtMjEgMTY6MjY6MDMuOTUxMjc4MDIxIC0wNTAwCisrKyBiL0xJTlVYL3Zp cnRpb19uZXRtYXAuaAkyMDE0LTExLTIxIDE2OjI2OjI1LjQ1MTM4NjY2NSAtMDUwMApAQCAtMzk4 LDggKzM5OCw4IEBACiAJICogU2Vjb25kIHBhcnQ6IHNraXAgcGFzdCBwYWNrZXRzIHRoYXQgdXNl cnNwYWNlIGhhcyByZWxlYXNlZC4KIAkgKi8KIAlubV9pID0ga3JpbmctPm5yX2h3Y3VyOyAvKiBu ZXRtYXAgcmluZyBpbmRleCAqLwotCWlmIChubV9pICE9IGhlYWQpIHsKLQkJZm9yIChuID0gMDsg bm1faSAhPSBoZWFkOyBuKyspIHsKKwlpZiAobm1fbmV4dChubV9pLCBsaW0pICE9IGhlYWQpIHsK KwkJZm9yIChuID0gMDsgbm1fbmV4dChubV9pLCBsaW0pICE9IGhlYWQ7IG4rKykgewogCQkJc3Ry dWN0IG5ldG1hcF9zbG90ICpzbG90ID0gJnJpbmctPnNsb3Rbbm1faV07CiAJCQl2b2lkICphZGRy ID0gTk1CKHNsb3QpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVycjsKQEAgLTQyMSw3 ICs0MjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgdmlydHF1ZXVlX2tpY2sodnEpOwog CQkJbm1faSA9IG5tX25leHQobm1faSwgbGltKTsKIAkJfQotCQlrcmluZy0+bnJfaHdjdXIgPSBo ZWFkOworCQlrcmluZy0+bnJfaHdjdXIgPSBubV9pOwogCX0KIAogCS8qIFdlIGhhdmUgZmluaXNo ZWQgcHJvY2Vzc2luZyB1c2VkIFJYIGJ1ZmZlcnMsIHNvIHdlIGhhdmUgdG8gdGVsbApAQCAtNDU0 LDYgKzQ1NCw3IEBACiAJZm9yIChyID0gMDsgciA8IG5hLT5udW1fcnhfcmluZ3M7IHIrKykgewog CQlDT01QQVRfREVDTF9TRwogICAgICAgICAgICAgICAgIHN0cnVjdCBuZXRtYXBfcmluZyAqcmlu ZyA9IG5hLT5yeF9yaW5nc1tyXS5yaW5nOworCQlzdHJ1Y3QgbmV0bWFwX2tyaW5nICprcmluZyA9 ICZuYS0+cnhfcmluZ3Nbcl07CiAJCXN0cnVjdCB2aXJ0cXVldWUgKnZxID0gR0VUX1JYX1ZRKHZp LCByKTsKIAkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZyA9IEdFVF9SWF9TRyh2aSwgcik7CiAJICAg ICAgICBzdHJ1Y3QgbmV0bWFwX3Nsb3QqIHNsb3Q7CkBAIC00ODUsNiArNDg2LDcgQEAKIAkJCWlm IChWUV9GVUxMKHZxLCBlcnIpKQogCQkJCWJyZWFrOwogCQl9CisJCWtyaW5nLT5ucl9od2N1ciA9 IGk7CiAJCUQoImFkZGVkICVkIGluYnVmcyBvbiBxdWV1ZSAlZCIsIGksIHIpOwogCQl2aXJ0cXVl dWVfa2ljayh2cSk7CiAJfQo= ------=_Part_3815363_1763837088.1416607573474--