lkml.org 
[lkml]   [2011]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 6/6] KVM: introduce a table to map slot id to index in memslots arry
    From
    Date
    On Fri, 2011-11-18 at 17:20 +0800, Xiao Guangrong wrote:
    > The operation of getting dirty log is frequency When framebuffer-based
    > displays are used(for example, Xwindow), so, we introduce a mapping table
    > to speed up id_to_memslot()
    >
    > Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
    > ---
    > include/linux/kvm_host.h | 13 +++++++------
    > virt/kvm/kvm_main.c | 7 ++++++-
    > 2 files changed, 13 insertions(+), 7 deletions(-)
    >
    > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
    > index 83b396a..fbf66eb 100644
    > --- a/include/linux/kvm_host.h
    > +++ b/include/linux/kvm_host.h
    > @@ -238,6 +238,8 @@ struct kvm_irq_routing_table {};
    > struct kvm_memslots {
    > u64 generation;
    > struct kvm_memory_slot memslots[KVM_MEM_SLOTS_NUM];
    > + /* The mapping table from slot id to the index in memslots[]. */
    > + int id_to_index[KVM_MEM_SLOTS_NUM];
    > };
    >
    > struct kvm {
    > @@ -340,14 +342,13 @@ static inline struct kvm_memslots *kvm_memslots(struct kvm *kvm)
    > static inline struct kvm_memory_slot *
    > id_to_memslot(struct kvm_memslots *slots, int id)
    > {
    > - int i;
    > + int index = slots->id_to_index[id];
    > + struct kvm_memory_slot *slot;
    >
    > - for (i = 0; i < KVM_MEM_SLOTS_NUM; i++)
    > - if (slots->memslots[i].id == id)
    > - return &slots->memslots[i];
    > + slot = &slots->memslots[index];
    >
    > - WARN_ON(1);
    > - return NULL;
    > + WARN_ON(slot->id != id);
    > + return slot;
    > }

    If we didn't find the right memslot we shouldn't be returning a wrong
    one, we should be failing.

    --

    Sasha.



    \
     
     \ /
      Last update: 2011-11-18 10:47    [W:4.098 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site