lkml.org 
[lkml]   [2020]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 06/22] kvm: mmu: Make address space ID a property of memslots
    On Fri, Sep 25, 2020 at 02:22:46PM -0700, Ben Gardon wrote:
    > Save address space ID as a field in each memslot so that functions that
    > do not use rmaps (which implicitly encode the id) can handle multiple
    > address spaces correctly.
    >
    > Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
    > machine. This series introduced no new failures.
    >
    > This series can be viewed in Gerrit at:
    > https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538
    >
    > Signed-off-by: Ben Gardon <bgardon@google.com>
    > ---
    > include/linux/kvm_host.h | 1 +
    > virt/kvm/kvm_main.c | 1 +
    > 2 files changed, 2 insertions(+)
    >
    > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
    > index 05e3c2fb3ef78..a460bc712a81c 100644
    > --- a/include/linux/kvm_host.h
    > +++ b/include/linux/kvm_host.h
    > @@ -345,6 +345,7 @@ struct kvm_memory_slot {
    > struct kvm_arch_memory_slot arch;
    > unsigned long userspace_addr;
    > u32 flags;
    > + int as_id;

    Ha! Peter Xu's dirtly ring also added this. This should be a u16, it'll
    save 8 bytes per memslot (oooooooh). Any chance you want to include Peter's
    patch[*]? It has some nitpicking from Peter and I regarding what to do
    with as_id on deletion. That would also avoid silent merge conflicts on
    Peter's end.

    [*] https://lkml.kernel.org/r/20200708193408.242909-2-peterx@redhat.com

    > short id;
    > };
    >
    > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
    > index cf88233b819a0..f9c80351c9efd 100644
    > --- a/virt/kvm/kvm_main.c
    > +++ b/virt/kvm/kvm_main.c
    > @@ -1318,6 +1318,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
    > new.npages = mem->memory_size >> PAGE_SHIFT;
    > new.flags = mem->flags;
    > new.userspace_addr = mem->userspace_addr;
    > + new.as_id = as_id;
    >
    > if (new.npages > KVM_MEM_MAX_NR_PAGES)
    > return -EINVAL;
    > --
    > 2.28.0.709.gb0816b6eb0-goog
    >

    \
     
     \ /
      Last update: 2020-09-30 08:11    [W:4.079 / U:0.252 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site