linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] kvm: memory slot cleanups, fix, and increase
@ 2012-12-06 22:20 Alex Williamson
  2012-12-06 22:20 ` [PATCH 01/10] kvm: Restrict non-existing slot state transitions Alex Williamson
                   ` (9 more replies)
  0 siblings, 10 replies; 17+ messages in thread
From: Alex Williamson @ 2012-12-06 22:20 UTC (permalink / raw)
  To: mtosatti, gleb; +Cc: linux-kernel, kvm

This series does away with any kind of complicated resizing of the
slot array and simply does a one time increase.  I do compact struct
kvm_memory_slot a bit to take better advantage of the space we are
using.  This reduces each slot from 64 bytes (x86_64) to 56 bytes.
By enforcing the API around valid operations for an unused slot and
fields that can be modified runtime, I found and was able to fix a
bug in iommu mapping for slots.  The renames enabled me to find the
previously posted bug fix for catching slot overlaps.

As mentioned in the series, the primary motivation for increasing
memory slots is assigned devices.  With this, I've been able to
assign 30 devices to a single VM and could have gone further, but
ran out of SRIOV VFs.  Typical devices use anywhere from 2-4 slots
and max out at 8 slots.  125 user slots (3 private slots) allows
us to support between 28 and 56 typical devices per VM.

Tested on x86_64, compiled on ia64, powerpc, and s390.

Thanks,
Alex

---

Alex Williamson (10):
      kvm: Restrict non-existing slot state transitions
      kvm: Check userspace_addr when modifying a memory slot
      kvm: Fix iommu map/unmap to handle memory slot moves
      kvm: Minor memory slot optimization
      kvm: Rename KVM_MEMORY_SLOTS -> KVM_USER_MEM_SLOTS
      kvm: Make KVM_PRIVATE_MEM_SLOTS optional
      kvm: struct kvm_memory_slot.user_alloc -> bool
      kvm: struct kvm_memory_slot.flags -> u32
      kvm: struct kvm_memory_slot.id -> short
      kvm: Increase user memory slots on x86 to 125


 arch/ia64/include/asm/kvm_host.h    |    4 --
 arch/ia64/kvm/kvm-ia64.c            |    8 ++--
 arch/powerpc/include/asm/kvm_host.h |    6 +--
 arch/powerpc/kvm/book3s_hv.c        |    2 -
 arch/powerpc/kvm/powerpc.c          |    4 +-
 arch/s390/include/asm/kvm_host.h    |    4 --
 arch/s390/kvm/kvm-s390.c            |    4 +-
 arch/x86/include/asm/kvm_host.h     |    8 ++--
 arch/x86/include/asm/vmx.h          |    6 +--
 arch/x86/kvm/vmx.c                  |    6 +--
 arch/x86/kvm/x86.c                  |   10 ++---
 include/linux/kvm_host.h            |   24 +++++++-----
 virt/kvm/kvm_main.c                 |   72 +++++++++++++++++++++++------------
 13 files changed, 90 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-12-10 13:48 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-06 22:20 [PATCH 00/10] kvm: memory slot cleanups, fix, and increase Alex Williamson
2012-12-06 22:20 ` [PATCH 01/10] kvm: Restrict non-existing slot state transitions Alex Williamson
2012-12-06 22:20 ` [PATCH 02/10] kvm: Check userspace_addr when modifying a memory slot Alex Williamson
2012-12-07 18:17   ` Jason Baron
2012-12-07 18:32     ` Alex Williamson
2012-12-07 18:44       ` Jason Baron
2012-12-06 22:20 ` [PATCH 03/10] kvm: Fix iommu map/unmap to handle memory slot moves Alex Williamson
2012-12-06 22:20 ` [PATCH 04/10] kvm: Minor memory slot optimization Alex Williamson
2012-12-06 22:20 ` [PATCH 05/10] kvm: Rename KVM_MEMORY_SLOTS -> KVM_USER_MEM_SLOTS Alex Williamson
2012-12-06 22:21 ` [PATCH 06/10] kvm: Make KVM_PRIVATE_MEM_SLOTS optional Alex Williamson
2012-12-06 22:21 ` [PATCH 07/10] kvm: struct kvm_memory_slot.user_alloc -> bool Alex Williamson
2012-12-06 22:21 ` [PATCH 08/10] kvm: struct kvm_memory_slot.flags -> u32 Alex Williamson
2012-12-06 22:21 ` [PATCH 09/10] kvm: struct kvm_memory_slot.id -> short Alex Williamson
2012-12-06 22:21 ` [PATCH 10/10] kvm: Increase user memory slots on x86 to 125 Alex Williamson
2012-12-07 14:02   ` Takuya Yoshikawa
2012-12-07 16:09     ` Alex Williamson
2012-12-10 13:48       ` Takuya Yoshikawa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).