From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
To: Chris Friesen <cbf123@mail.usask.ca>,
avi@redhat.com, mtosatti@redhat.com, kvm@vger.kernel.org
Subject: Re: dirty page tracking in kvm/qemu -- page faults inevitable?
Date: Wed, 30 Jul 2014 14:09:26 +0800 [thread overview]
Message-ID: <53D88C16.5090006@linux.vnet.ibm.com> (raw)
In-Reply-To: <53D81C40.9020800@mail.usask.ca>
On 07/30/2014 06:12 AM, Chris Friesen wrote:
> Hi,
>
> I've got an issue where we're hitting major performance penalties while doing live migration, and it seems like it might
> be due to page faults triggering hypervisor exits, and then we get stuck waiting for the iothread lock which is held by
> the qemu dirty page scanning code.
I am afraid that using dirty-bit instead of write-protection may cause the case
even more worse for iothread-lock because we need to walk whole sptes to get
dirty-set pages, however currently we only need to walk the page set in the
bitmap.
>
> Accordingly, I'm trying to figure out the actual mechanism whereby dirty pages are tracked in qemu/kvm. I've got an Ivy Bridge CPU, a 3.4 kernel on the host, and qemu 1.4.
>
> Looking at the qemu code, it seems to be calling down into kvm to get the dirty page information.
>
> Looking at kvm, most of what I read seems to be doing the usual "mark it read-only and then when we take a page fault mark it as dirty" trick.
>
> However, I read something about Intel EPT having hardware support for tracking dirty pages. It seems like this might avoid the need for a page fault, but might only be available on Haswell or later CPUs--is that correct? Is it supported in kvm? If so, when was support added?
Actually, i have implemented the prototype long time ago, maybe it's the time to benchmark
it and post it out.
next prev parent reply other threads:[~2014-07-30 6:09 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-29 22:12 dirty page tracking in kvm/qemu -- page faults inevitable? Chris Friesen
2014-07-30 6:09 ` Xiao Guangrong [this message]
2014-07-30 7:41 ` Chris Friesen
2014-07-30 15:42 ` Paolo Bonzini
2014-07-30 16:02 ` Chris Friesen
2014-07-30 16:18 ` 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=53D88C16.5090006@linux.vnet.ibm.com \
--to=xiaoguangrong@linux.vnet.ibm.com \
--cc=avi@redhat.com \
--cc=cbf123@mail.usask.ca \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@redhat.com \
/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.