qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: Network Performance between Win Host and Linux


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

Attachment: qemu-slirp-mbuf-bug.patch
Description: Text document

Attachment: qemu-slirp-reassembly-bug.patch
Description: Text document

Attachment: qemu-slirp-32k-packets.patch
Description: Text document

Attachment: qemu-slirp-performance.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]