Re: [PATCH 0/1] KVM: make get dirty log ioctl return the first dirty page's position

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/24/2010 11:45 AM, Takuya Yoshikawa wrote:
Avi Kivity wrote:

Result:
...
kvm_get_map(slot 0): r=    3, slot.len=    655360(2)
kvm_get_map(slot 1): r= 2044, slot.len= 535822336(2044)
kvm_get_map(slot 2): r=    1, slot.len=    131072(0)
kvm_get_map(slot 3): r=    1, slot.len=    131072(0)
kvm_get_map(slot 4): r=    1, slot.len=    131072(0)
kvm_get_map(slot 5): r=   64, slot.len=  16777216(64)
kvm_get_map(slot 6): r=    1, slot.len=     32768(0)
kvm_get_map(slot 7): r=    1, slot.len=     32768(0)
kvm_get_map(slot 0): r=    3, slot.len=    655360(2)
kvm_get_map(slot 1): r= 2044, slot.len= 535822336(2044)
kvm_get_map(slot 2): r=    1, slot.len=    131072(0)
kvm_get_map(slot 3): r=    1, slot.len=    131072(0)
kvm_get_map(slot 4): r=    1, slot.len=    131072(0)
kvm_get_map(slot 5): r=   64, slot.len=  16777216(64)
kvm_get_map(slot 6): r=    1, slot.len=     32768(0)
kvm_get_map(slot 7): r=    1, slot.len=     32768(0)
kvm_get_map(slot 0): r=    3, slot.len=    655360(2)
kvm_get_map(slot 1): r= 2044, slot.len= 535822336(2044)
kvm_get_map(slot 2): r=    1, slot.len=    131072(0)
kvm_get_map(slot 3): r=    1, slot.len=    131072(0)
kvm_get_map(slot 4): r=    1, slot.len=    131072(0)
kvm_get_map(slot 5): r=   64, slot.len=  16777216(64)
kvm_get_map(slot 6): r=    1, slot.len=     32768(0)
kvm_get_map(slot 7): r=    1, slot.len=     32768(0)
kvm_get_map(slot 0): r=    3, slot.len=    655360(2)
kvm_get_map(slot 1): r= 2044, slot.len= 535822336(2044)
kvm_get_map(slot 2): r=    1, slot.len=    131072(0)
kvm_get_map(slot 3): r=    1, slot.len=    131072(0)
kvm_get_map(slot 4): r=    1, slot.len=    131072(0)
kvm_get_map(slot 5): r=   64, slot.len=  16777216(64)
kvm_get_map(slot 6): r=    1, slot.len=     32768(0)
kvm_get_map(slot 7): r=    1, slot.len=     32768(0)
...

Seems to confirm - not much can be skipped.



>> kvm_get_map(slot 1): r= 2044, slot.len= 535822336(2044)
Am I wrong? in this case, the return value is suggesting
we can skip every 2044(the value in the bracket) bitmap check, right?

Er, I was wrong, I thought the value in the brackets had the same units as slots.len. But it's in units of ulongs.

In this case, the entire bitmap can be skipped, so the saving would be significant. But this is for an idle load, where we'll converge quickly anyway. For a busy server, things will look different.

So I recommend you look at the double buffer approach. This can eliminate the kernel scan, the copying, and the userspace scan entirely, as well as remove the vmalloc().

--
error compiling committee.c: too many arguments to function

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux