On 31.01.2018 12:03, Claudio Imbrenda wrote: > On Wed, 31 Jan 2018 09:57:35 +0100 > Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> wrote: [...] >>> + >>> /* implemented in interrupt.c */ >>> int kvm_s390_handle_wait(struct kvm_vcpu *vcpu); >>> void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu); >>> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h >>> index 6bdd4b9..ea524a8 100644 >>> --- a/include/linux/kvm_host.h >>> +++ b/include/linux/kvm_host.h >>> @@ -308,6 +308,13 @@ static inline unsigned long >>> kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memsl return >>> ALIGN(memslot->npages, BITS_PER_LONG) / 8; } >>> >>> +static inline unsigned long *kvm_shadow_dirty_bitmap(struct >>> kvm_memory_slot *memslot) >> >> Hrm, it's only more or less a shadow for the generic dirty case which >> you touch below. I'd like to have an opinion from Paolo on this one as >> we touch common code. > > yeah, I know, I also don't like it, but I couldn't figure a better name. > kvm_second_bitmap? kvm_second_dirty_bitmap? kvm_dirty_bitmap_end? > > any suggestions? kvm_dirty_bitmap_(spare|extra) or something along the lines? > > Also I don't like the excessive length of all these names, but I guess > I'll have to live with it. :-) > >> Also I'd want to split this, taking the memslot stuff into the next >> patch and do the generic dirty bitmap helper in this one. > > Will do > >>> +{ >>> + unsigned long len = kvm_dirty_bitmap_bytes(memslot); >>> + >>> + return memslot->dirty_bitmap + len / >>> sizeof(*memslot->dirty_bitmap); +} >>> + >>> struct kvm_s390_adapter_int { >>> u64 ind_addr; >>> u64 summary_addr; >>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c >>> index 210bf82..9e18331 100644 >>> --- a/virt/kvm/kvm_main.c >>> +++ b/virt/kvm/kvm_main.c >>> @@ -1158,7 +1158,7 @@ int kvm_get_dirty_log_protect(struct kvm *kvm, >>> >>> n = kvm_dirty_bitmap_bytes(memslot); >>> >>> - dirty_bitmap_buffer = dirty_bitmap + n / sizeof(long); >>> + dirty_bitmap_buffer = kvm_shadow_dirty_bitmap(memslot); >>> memset(dirty_bitmap_buffer, 0, n); >>> >>> spin_lock(&kvm->mmu_lock); >>> >> >> >
Attachment:
signature.asc
Description: OpenPGP digital signature