Messages in this thread |  | | Subject | Re: [PATCH RFC 00/15] KVM: Dirty ring interface | From | Jason Wang <> | Date | Wed, 4 Dec 2019 18:39:48 +0800 |
| |
On 2019/11/30 上午5:34, Peter Xu wrote: > Branch is here:https://github.com/xzpeter/linux/tree/kvm-dirty-ring > > Overview > ============ > > This is a continued work from Lei Cao<lei.cao@stratus.com> and Paolo > on the KVM dirty ring interface. To make it simple, I'll still start > with version 1 as RFC. > > The new dirty ring interface is another way to collect dirty pages for > the virtual machine, but it is different from the existing dirty > logging interface in a few ways, majorly: > > - Data format: The dirty data was in a ring format rather than a > bitmap format, so the size of data to sync for dirty logging does > not depend on the size of guest memory any more, but speed of > dirtying. Also, the dirty ring is per-vcpu (currently plus > another per-vm ring, so total ring number is N+1), while the dirty > bitmap is per-vm. > > - Data copy: The sync of dirty pages does not need data copy any more, > but instead the ring is shared between the userspace and kernel by > page sharings (mmap() on either the vm fd or vcpu fd) > > - Interface: Instead of using the old KVM_GET_DIRTY_LOG, > KVM_CLEAR_DIRTY_LOG interfaces, the new ring uses a new interface > called KVM_RESET_DIRTY_RINGS when we want to reset the collected > dirty pages to protected mode again (works like > KVM_CLEAR_DIRTY_LOG, but ring based) > > And more.
Looks really interesting, I wonder if we can make this as a library then we can reuse it for vhost.
Thanks
|  |