[Top][All Lists]

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

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

From: Leonardo E. Reiter
Subject: Re: [Qemu-devel] Re: Network Performance between Win Host and Linux
Date: Wed, 12 Apr 2006 10:04:57 -0400
User-agent: Mozilla Thunderbird 1.0.7 (X11/20051013)

Hi Ken,

(all) the patches seem to work very well and be very stable with Windows 2000 guests here. I measured some SMB over TCP/IP transfers, and got about a 1.5x downstream improvement and a 2x upstream improvement. You will likely get more boost from less convoluted protocols like FTP or something, but I didn't get around to testing that. Plus it's not clear how much Windows itself is impeding the bandwidth. I am using -kernel-kqemu.

2 additional things I noticed:

1. before your patches, the upstream transfers (guest->host) consumed almost no CPU at all, but of course were much slower. Now, about half the CPU gets used under heavy upstream load. The downstream, with Windows guests at least, consumes 100% CPU the same as before. I suspect you addressed this specifically with your select hack to avoid the delay if there is pending slirp activity

2. overall latency "feels" improved as well, at least for basic stuff like web browsing, etc. This is purely subjective.

Nice work! I'll be testing with a Linux VM soon and try to pin down some better benchmarks, free of Windows clutter.

- Leo Reiter

Kenneth Duda wrote:
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).

Leonardo E. Reiter
Vice President of Product Development, CTO

Win4Lin, Inc.
Virtual Computing from Desktop to Data Center
Main: +1 512 339 7979
Fax: +1 512 532 6501

reply via email to

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