qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Kenneth Duda" <kduda@arastra.com>
To: Paul Brook <paul@codesourcery.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Network Performance between Win Host and Linux
Date: Tue, 11 Apr 2006 10:49:34 -0700	[thread overview]
Message-ID: <6fe044190604111049j186d7c44oea9568ce1a8b54f3@mail.gmail.com> (raw)
In-Reply-To: <200604111828.29361.paul@codesourcery.com>

Paul, thanks for the note.

In my case, the guest CPU is idle.  The host CPU utilization is only 5
or 10 percent when running "find / -print > /dev/null" on the guest. 
So I don't think guest interrupt latency is the issue for me in this
case.

My first guess is that qemu is asleep when the NFS response arrives on
the slirp socket, and stays asleep for several milliseconds before
deciding to check if anything has shown up via slirp.  The problem is
that vl.c's main_loop_wait() has separate calls to select() for slirp
versus non-slirp fd's.  I think this is the problem because strace
reveals qemu blocking for several milliseconds at a time in select(),
waking up with a SIGALRM, and then polling slirp and finding stuff to
do there.  These select calls don't appear hard to integrate, and the
author seems to feel this would be a good idea anyway; from vl.c:

#if defined(CONFIG_SLIRP)
    /* XXX: merge with the previous select() */
    if (slirp_inited) {

I will take a swing at this first.  Please let me know if there's
anything I should be aware of.

Thanks,
    -Ken



On 4/11/06, Paul Brook <paul@codesourcery.com> wrote:
> On Tuesday 11 April 2006 18:20, Kenneth Duda wrote:
> > I am also having severe performance problems using NFS-over-TCP on
> > qemu-0.8 with a Linux host and guest.  I will be looking at this
> > today.  My current theory is that the whole machine is going idle
> > before qemu decides to poll kernel ring buffers holding packets the
> > guest is transmitting, but if anyone has actual information, please
> > let me know.
>
> You could be suffering from high interrupt latency. If the guest CPU is not
> idle then qemu only checks for interrupts (eg. the network RX interrupt)
> every 1ms or 1/host_HZ seconds, whichever is greater.
> If the guest CPU is idle it should respond immediately.
> I wouldn't be surprised if this problem is worse when using kqemu.
>
> Paul
>

  reply	other threads:[~2006-04-11 17:49 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-11 17:20 [Qemu-devel] Network Performance between Win Host and Linux Kenneth Duda
2006-04-11 17:28 ` Paul Brook
2006-04-11 17:49   ` Kenneth Duda [this message]
2006-04-11 18:19     ` Helmut Auer
2006-04-12  2:10       ` Kazu
2006-04-11 20:40     ` Leonardo E. Reiter
2006-04-11 21:46       ` Kenneth Duda
2006-04-11 21:58         ` Leonardo E. Reiter
2006-04-11 22:42           ` Kenneth Duda
2006-04-11 21:00     ` Leonardo E. Reiter
2006-04-11 22:36 ` [Qemu-devel] " Kenneth Duda
2006-04-12 14:04   ` Leonardo E. Reiter
2006-04-12 18:19     ` Kenneth Duda
2006-04-12 18:26       ` Leonardo E. Reiter
2006-04-12 14:31   ` Leonardo E. Reiter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6fe044190604111049j186d7c44oea9568ce1a8b54f3@mail.gmail.com \
    --to=kduda@arastra.com \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).