|
From: | Kenneth Duda |
Subject: | [Qemu-devel] Re: Network Performance between Win Host and Linux |
Date: | Tue, 11 Apr 2006 15:36:32 -0700 |
The "qemu-slirp-performance" patch contains three improvements to qemu slirp networking performance. Booting my virtual machine (which NFS-mounts its root filesystem from the host) has been accelerated by 8x, from over 5 minutes to 40 seconds. TCP throughput has been accelerated from about 2 megabytes/sec to 9 megabytes/sec, in both directions (measured using a simple python script). The system is subjectively more responsive (for activities such as logging in or running simple python scripts). The specific problems fixed are: - the mss for the slirp-to-vm direction was 512 bytes (now 1460); - qemu would block in select() for up to four milliseconds at a time, even when data was waiting on slirp sockets; - slirp was deliberately delaying acks until timer expiration (TF_DELACK), preventing the vm from opening its send window, in violation of rfc2581. These fixes are together in one patch (qemu-slirp-performance.patch). I have also attached some related patches that fix fairly serious slirp bugs for IP datagrams larger than 4k. Before these patches, large packets can corrupt the heap or get reassembled in some entertaining but incorrect orders (because ip_off was being sorted as though it was signed!) These patches are attached in the order I apply them. I hope they are helpful. If there's anything I can do to make them more likely to be accepted into the mainline, please let me know. Thanks, -Ken
qemu-slirp-mbuf-bug.patch
Description: Text document
qemu-slirp-reassembly-bug.patch
Description: Text document
qemu-slirp-32k-packets.patch
Description: Text document
qemu-slirp-performance.patch
Description: Text document
[Prev in Thread] | Current Thread | [Next in Thread] |