diff -u qemu-kvm-0.11.0/debian/patches/series qemu-kvm-0.11.0/debian/patches/series --- qemu-kvm-0.11.0/debian/patches/series +++ qemu-kvm-0.11.0/debian/patches/series @@ -9,0 +10 @@ +12_whitelist_host_virtio_networking_features.patch only in patch2: unchanged: --- qemu-kvm-0.11.0.orig/debian/patches/12_whitelist_host_virtio_networking_features.patch +++ qemu-kvm-0.11.0/debian/patches/12_whitelist_host_virtio_networking_features.patch @@ -0,0 +1,41 @@ +whitelist host virtio networking features + +This patch is a followup to 8eca6b1bc770982595db2f7207c65051572436cb, +fixing crashes when guests with 2.6.25 virtio drivers have saturated +virtio network connections. + +https://bugs.edge.launchpad.net/ubuntu/+source/qemu-kvm/+bug/458521 + +That patch should have been whitelisting *_HOST_* rather than the the +*_GUEST_* features. + +I tested this by running an Ubuntu 8.04 Hardy guest (2.6.24 kernel + +2.6.25-virtio driver). I saturated both the incoming, and outgoing +network connection with nc, seeing sustained 6MB/s up and 6MB/s down +bitrates for ~20 minutes. Previously, this crashed immediately. Now, +the guest does not crash and maintains network connectivity throughout +the test. + +Signed-off-by: Dustin Kirkland +Signed-off-by: Mark McLoughlin +Tested-by: Dustin Kirkland + +diff --git a/hw/virtio-net.c b/hw/virtio-net.c +index ce8e6cb..27834fa 100644 +--- a/hw/virtio-net.c ++++ b/hw/virtio-net.c +@@ -164,10 +164,10 @@ static uint32_t virtio_net_bad_features(VirtIODevice *vdev) + /* Linux kernel 2.6.25. It understood MAC (as everyone must), + * but also these: */ + features |= (1 << VIRTIO_NET_F_MAC); +- features |= (1 << VIRTIO_NET_F_GUEST_CSUM); +- features |= (1 << VIRTIO_NET_F_GUEST_TSO4); +- features |= (1 << VIRTIO_NET_F_GUEST_TSO6); +- features |= (1 << VIRTIO_NET_F_GUEST_ECN); ++ features |= (1 << VIRTIO_NET_F_CSUM); ++ features |= (1 << VIRTIO_NET_F_HOST_TSO4); ++ features |= (1 << VIRTIO_NET_F_HOST_TSO6); ++ features |= (1 << VIRTIO_NET_F_HOST_ECN); + + return features & virtio_net_get_features(vdev); + }