All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Friesen <chris.friesen@windriver.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
	libvir-list@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] high outage times for qemu virtio network links during live migration, trying to debug
Date: Tue, 26 Jan 2016 11:21:22 -0600	[thread overview]
Message-ID: <56A7AB12.8060303@windriver.com> (raw)
In-Reply-To: <56A7A3C7.6090006@redhat.com>

On 01/26/2016 10:50 AM, Paolo Bonzini wrote:
>
>
> On 26/01/2016 17:41, Chris Friesen wrote:
>> I'm using libvirt (1.2.12) with qemu (2.2.0) in the context of OpenStack.
>>
>> If I live-migrate a guest with virtio network interfaces, I see a
>> ~1200msec delay in processing the network packets, and several hundred
>> of them get dropped.  I get the dropped packets, but I'm not sure why
>> the delay is there.
>>
>> I instrumented qemu and libvirt, and the strange thing is that this
>> delay seems to happen before qemu actually starts doing any
>> migration-related work.  (i.e. before qmp_migrate() is called)
>>
>> Looking at my timestamps, the start of the glitch seems to coincide with
>> libvirtd calling qemuDomainMigratePrepareTunnel3Params(), and the end of
>> the glitch occurs when the migration is complete and we're up and
>> running on the destination.
>>
>> My question is, why doesn't qemu continue processing virtio packets
>> while the dirty page scanning and memory transfer over the network is
>> proceeding?
>
> QEMU (or vhost) _are_ processing virtio traffic, because otherwise you'd
> have no delay---only dropped packets.  Or am I missing something?

I have separate timestamps embedded in the packet for when it was sent and when 
it was echoed back by the target (which is the one being migrated).  What I'm 
seeing is that packets to the guest are being sent every msec, but they get 
delayed somewhere for over a second on the way to the destination VM while the 
migration is in progress.  Once the migration is over, a bunch of packets get 
delivered to the app in the guest and are then processed all at once and echoed 
back to the sender in a big burst (and a bunch of packets are dropped, 
presumably due to a buffer overflowing somewhere).

For comparison, we have a DPDK-based fastpath NIC type that we added (sort of 
like vhost-net), and it continues to process packets while the dirty page 
scanning is going on.  Only the actual cutover affects it.

Chris

  reply	other threads:[~2016-01-26 17:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 16:41 [Qemu-devel] high outage times for qemu virtio network links during live migration, trying to debug Chris Friesen
2016-01-26 16:45 ` Daniel P. Berrange
2016-01-26 20:31   ` Chris Friesen
2016-01-26 16:50 ` Paolo Bonzini
2016-01-26 17:21   ` Chris Friesen [this message]
2016-01-26 17:31     ` Paolo Bonzini
2016-01-26 17:49       ` Chris Friesen
2016-01-26 18:07         ` Paolo Bonzini

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=56A7AB12.8060303@windriver.com \
    --to=chris.friesen@windriver.com \
    --cc=libvir-list@redhat.com \
    --cc=pbonzini@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.