qemu/accel
Zenghui Yu 4054adbdd2 kvm: Take into account the unaligned section size when preparing bitmap
The kernel KVM_CLEAR_DIRTY_LOG interface has align requirement on both the
start and the size of the given range of pages. We have been careful to
handle the unaligned cases when performing CLEAR on one slot. But it seems
that we forget to take the unaligned *size* case into account when
preparing bitmap for the interface, and we may end up clearing dirty status
for pages outside of [start, start + size).

If the size is unaligned, let's go through the slow path to manipulate a
temp bitmap for the interface so that we won't bother with those unaligned
bits at the end of bitmap.

I don't think this can happen in practice since the upper layer would
provide us with the alignment guarantee. I'm not sure if kvm-all could rely
on it. And this patch is mainly intended to address correctness of the
specific algorithm used inside kvm_log_clear_one_slot().

Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
Message-Id: <20201208114013.875-1-yuzenghui@huawei.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-12-15 12:52:05 -05:00
..
kvm kvm: Take into account the unaligned section size when preparing bitmap 2020-12-15 12:52:05 -05:00
qtest accel: move qtest CpusAccel functions to a common location 2020-10-24 07:23:19 +02:00
stubs accel/stubs: drop unused cpu.h include 2020-11-16 11:07:56 +00:00
tcg icount: improve exec nocache usage 2020-12-15 12:52:04 -05:00
xen accel: Add xen CpusAccel using dummy-cpus 2020-10-24 07:23:19 +02:00
accel.c accel: Introduce the current_accel() wrapper 2020-01-24 20:59:11 +01:00
dummy-cpus.c accel: move qtest CpusAccel functions to a common location 2020-10-24 07:23:19 +02:00
Kconfig accel/Kconfig: Add the TCG selector 2020-07-10 18:02:21 -04:00
meson.build accel: Add xen CpusAccel using dummy-cpus 2020-10-24 07:23:19 +02:00