All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Molton <ian.molton@codethink.co.uk>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging.
Date: Mon, 26 Nov 2012 17:58:58 +0000	[thread overview]
Message-ID: <50B3ADE2.4080605@codethink.co.uk> (raw)

Hi folks,

I'm looking at dirty page logging on KVM on ARM, which appears, at 
present to be non-existent. Is anyone working on this, or willing to 
lend a hand?

I'm running KVM on an OMAP5, and my guest is a vexpress-a15 with PL-111 
framebuffer.

running tcg mode, this works, however in KVM I was seeing (occasionally) 
one frame of video.

Some debugging led me to the dirty_log code, and I discovered that qemu 
makes a bad test for the return code from kvm_vm_ioctl(s, 
KVM_GET_DIRTY_LOG, &d) in kvm_physical_sync_dirty_bitmap(), so the 
problem was going unreported.

Furthermore, I think the vexpress emulation was missing a call to
memory_region_set_log(vram, true, DIRTY_MEMORY_VGA);
for the vram region, which was preventing the host kernel knowing that 
dirty page logging was required. (I think - Im not really very clear on 
the whole qemu memory API, as AFAICT, its barely documented...)

Anyhow, If I add the call to memory_region_set_log(), and if I ask the 
host kernel to mark absolutely everything as dirty, it does in fact, work.

Obviously this is a massive hack, but I'm not too sure where to go on 
from here, so pointers would be nice. Presumably, I'm going to have to 
do some prodding of the hosts page tables, but I'm not clear exactly 
what, as yet.

-Ian

             reply	other threads:[~2012-11-26 17:59 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-26 17:58 Ian Molton [this message]
2012-11-26 18:35 ` [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging Peter Maydell

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=50B3ADE2.4080605@codethink.co.uk \
    --to=ian.molton@codethink.co.uk \
    --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.