* [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging.
@ 2012-11-26 17:58 Ian Molton
2012-11-26 18:35 ` Peter Maydell
0 siblings, 1 reply; 2+ messages in thread
From: Ian Molton @ 2012-11-26 17:58 UTC (permalink / raw)
To: qemu-devel
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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging.
2012-11-26 17:58 [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging Ian Molton
@ 2012-11-26 18:35 ` Peter Maydell
0 siblings, 0 replies; 2+ messages in thread
From: Peter Maydell @ 2012-11-26 18:35 UTC (permalink / raw)
To: Ian Molton; +Cc: qemu-devel, kvmarm
On 26 November 2012 17:58, Ian Molton <ian.molton@codethink.co.uk> wrote:
> 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've cc'd the kvmarm mailing list to give this a slightly wider airing.
> 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.
Yeah, not sure if anybody's tested video in a KVM guest.
> 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.
-- PMM
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-11-26 18:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-26 17:58 [Qemu-devel] [BUG] Missing feature, KVM on ARM, dirty page logging Ian Molton
2012-11-26 18:35 ` Peter Maydell
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.