Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Nov 2014 22:06:13 +0000 (UTC)
From:      eclectic 923 <eclectic923@yahoo.com>
To:        "net@freebsd.org" <net@freebsd.org>
Subject:   Patches for linux virtio_net driver
Message-ID:  <1960028583.3815364.1416607573474.JavaMail.yahoo@jws10669.mail.bf1.yahoo.com>

next in thread | raw e-mail | index | archive | help
------=_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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1960028583.3815364.1416607573474.JavaMail.yahoo>