On Tue, Jan 31, 2012 at 11:47:32AM +0000, Bhushan Bharat-R65777 wrote:
> Hi All,
> 
> In my development I came across the state where I need more than 32 kvmslots
> 
> QEMU/kvm-all.c:
> 
> <cut>
> struct KVMState
> {
>     KVMSlot slots[32];
>       
> <cut>
> 
> 
> Followings are the solution I thought of:
> Solution 1: 
>       Increase the slot to 64 in both KVM and QEMU. I think this will also 
> require to add a new ioctl call so that qemu can come to know on which KVM it 
> is running (whether it is running on 32 slots KVM or 64 slots KVM).

It already exists, its called KVM_CAP_NR_MEMSLOTS (implemented by x86).

> Other solutions:
>       a) Decouple the qemu and kvm data structure. QEMU and KVM use some 
> variable size data structure or lists etc. QEMU can keep on adding as many as 
> it wants without knowing how much slots KVM supports.
>       b) There are linear search in the KVM slots array in critical path of 
> code of KVM. Does this make some sense using RB-tree, heapsort, balanced 
> binary tree type of solutions?

See discussion at http://lwn.net/Articles/429308/.

x86 optimizes the case of a miss (GFN not mapped by any memslot)
by caching the result into a specially invalid pagetable entry (so 
an invalid fault optimizes away the need to walk all memslots).

It would be good to know how much of a problem an increased memslot
array is for PPC.

> 
> Looking forward for suggestions.
> 
> Thanks
> -Bharat
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to