[Top][All Lists]

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

[Qemu-devel] [PATCH] Improve -net user (slirp) performance by 4x

From: Ed Swierk
Subject: [Qemu-devel] [PATCH] Improve -net user (slirp) performance by 4x
Date: Sun, 30 Apr 2006 20:00:44 -0700

Three bugs in the slirp code have an enormous adverse effect on
networking performance.

1. The maximum TCP segment size for data flowing from the VM to the
host is unnecessarily limited to 512 bytes. 1460 bytes is the
appropriate value for Ethernet.

2. TCP acknowledgements are being delayed unnecessarily, in violation
of the TCP Congestion Control RFC (2581). There is no reason to delay
TCP acknowledgements (and certainly no reason to give special
treatment to packets consisting of a single ESC character, as the code
does now!).

3. qemu sleeps soundly while packets back up in slirp's buffers. slirp
socket fds should be added to the main qemu select() loop to avoid
unnecessary delays.

As Ken Duda mentioned in an earlier thread, measurements with a simple
Python script indicate that the attached patch accelerates TCP
throughput from about 2 megabytes/sec to 9 megabytes/sec, in both

I'm sure many folks would benefit from this improvement; please let me
know if there is anything I can do to help nudge it into CVS.


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

reply via email to

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