Skip to contentSkip to conversation

migration dirty bitmap support ARMv7

PATCH In review Mario Smarduch 2 participants 3 messages Apr 15, 2014 KVM

lore
Share & tools
lore
#0 lore raw

cover migration dirty bitmap support ARMv7

The patch set supports migration dirty bitmap support implementation for arm-kvm. Spliting of pmd's to pte's as suggested is implemented on demand when migration is started.

I tested it on 4-way SMP ARMv7, with SMP guests. 2GB VMs with dirty shared memory segments upto 1.8 GB and relatively fast update rates 16Mb/5mS.

Next course of action would be rmap support which scales much better on bigger systems. Although one think that confused me, x86 migrations were sometimes 10 to 15 times slower, I think it must be something wrong with my configuration.

Mario Smarduch (3):
headers for migration dirtybitmap support
initial write protect of VM address space and on dirty log read hooks to interface with QEMU for initial write protect, dirty log read

 arch/arm/include/asm/kvm_host.h |    9 +++
 arch/arm/kvm/arm.c              |   62 ++++++++++++++-
 arch/arm/kvm/mmu.c              |  158 ++++++++++++++++++++++++++++++++++++++-
 3 files changed, 226 insertions(+), 3 deletions(-)
Signature · 1 line
1.7.9.5
#1 lore raw

Mario,

Quoted 21 lines · Mario Smarduch

The patch set supports migration dirty bitmap support implementation for arm-kvm. Spliting of pmd's to pte's as suggested is implemented on demand when migration is started.

I tested it on 4-way SMP ARMv7, with SMP guests. 2GB VMs with dirty shared memory segments upto 1.8 GB and relatively fast update rates 16Mb/5mS.

Next course of action would be rmap support which scales much better on bigger systems. Although one think that confused me, x86 migrations were sometimes 10 to 15 times slower, I think it must be something wrong with my configuration.

Mario Smarduch (3):
headers for migration dirtybitmap support
initial write protect of VM address space and on dirty log read hooks to interface with QEMU for initial write protect, dirty log read

Quoted 5 lines
 arch/arm/include/asm/kvm_host.h |    9 +++
 arch/arm/kvm/arm.c              |   62 ++++++++++++++-
 arch/arm/kvm/mmu.c              |  158 ++++++++++++++++++++++++++++++++++++++-
 3 files changed, 226 insertions(+), 3 deletions(-)

Overall, I think this patch series requires some work, the most glaring issue being the total lack of documentation (even by my own standards). Also, it is fairly obvious that ARMv8 should be done at the same time (as all that code is shared, and will avoid API abuse...), and that a fair amount of the code is actually generic across architecture, and should be shared.

I'm very much looking forward to the next iteration of this series.

Thanks,

	M.
Signature · 1 line
Jazz is not dead. It just smells funny...
#2 lore raw

Hi Marc,
Thanks for the feedback, very valuable going forward. I'll clean the patch up and
repost with much more documentation. One key error you pointed out,
and I overlooked but knew about it, is to error out from get dirty log if whole VM can't be WPed, at that point QEMU will abort.

- Mario

-----Original Message-----
From: Marc Zyngier [mailto:[email protected]]
Sent: Tuesday, April 15, 2014 2:13 AM
To: Mario Smarduch
Cc: [email protected]; [email protected]; 이정석; 정성진; [email protected]
Subject: Re: [PATCH 0/3] migration dirty bitmap support ARMv7

Mario,

Quoted 22 lines · Mario Smarduch

The patch set supports migration dirty bitmap support implementation for arm-kvm. Spliting of pmd's to pte's as suggested is implemented on demand when migration is started.

I tested it on 4-way SMP ARMv7, with SMP guests.
2GB VMs with dirty shared memory segments upto 1.8 GB and relatively fast update rates 16Mb/5mS.

Next course of action would be rmap support which scales much better on bigger systems. Although one think that confused me, x86 migrations were sometimes
10 to 15 times slower, I think it must be something wrong with my configuration.

Mario Smarduch (3):
headers for migration dirtybitmap support
initial write protect of VM address space and on dirty log read hooks to interface with QEMU for initial write protect, dirty log
read

Quoted 5 lines
 arch/arm/include/asm/kvm_host.h |    9 +++
 arch/arm/kvm/arm.c              |   62 ++++++++++++++-
 arch/arm/kvm/mmu.c              |  158 ++++++++++++++++++++++++++++++++++++++-
 3 files changed, 226 insertions(+), 3 deletions(-)

Overall, I think this patch series requires some work, the most glaring issue being the total lack of documentation (even by my own standards).
Also, it is fairly obvious that ARMv8 should be done at the same time (as all that code is shared, and will avoid API abuse...), and that a fair amount of the code is actually generic across architecture, and should be shared.

I'm very much looking forward to the next iteration of this series.

Thanks,

	M.

--
Jazz is not dead. It just smells funny...