Inter-revision diff: cover letter

Comparing v1 (message) to v4 (message)

--- v1
+++ v4
@@ -7,27 +7,59 @@
 the memory footprint from 90k to ~2.6k bytes.
 
 The changes required to support dynamic sizing are relatively small,
-e.g. are essentially contained in patches 12/13 and 13/13.  Patches 1-11
-clean up the memslot code, which has gotten quite crusy, especially
-__kvm_set_memory_region().  The clean up is likely not strictly necessary
-to switch to dynamic sizing, but I didn't have a remotely reasonable
-level of confidence in the correctness of the dynamic sizing without first
-doing the clean up.
+e.g. are essentially contained in patches 17/19 and 18/19.
 
-Testing, especially non-x86 platforms, would be greatly appreciated.  I'd
-really like to get at least one Tested-by from all architectures.  The
-non-x86 changes are for all intents and purposes untested, e.g. I compile
-tested pieces of the code by copying them into x86, but that's it.  In
-theory, the vast majority of the functional changes are arch agnostic, in
-theory... 
+Patches 2-16 clean up the memslot code, which has gotten quite crusty,
+especially __kvm_set_memory_region().  The clean up is likely not strictly
+necessary to switch to dynamic sizing, but I didn't have a remotely
+reasonable level of confidence in the correctness of the dynamic sizing
+without first doing the clean up.
 
-Sean Christopherson (13):
+The only functional change in v4 is the addition of an x86-specific bug
+fix in x86's handling of KVM_MR_MOVE.  The bug fix is not directly related
+to dynamically allocating memslots, but it has subtle and hidden conflicts
+with the cleanup patches, and the fix is higher priority than anything
+else in the series, i.e. should be merged first.
+
+On non-x86 architectures, v3 and v4 should be functionally equivalent,
+the only non-x86 change in v4 is the dropping of a "const" in
+kvm_arch_commit_memory_region().
+
+v4:
+  - Add patch 01 to fix an x86 rmap/lpage bug, and patches 10 and 11 to
+    resolve hidden conflicts with the bug fix.
+  - Collect tags [Christian, Marc, Philippe].
+  - Rebase to kvm/queue, commit e41a90be9659 ("KVM: x86/mmu: WARN if
+    root_hpa is invalid when handling a page fault").
+v3:
+  - Fix build errors on PPC and MIPS due to missed params during
+    refactoring [kbuild test robot].
+  - Rename the helpers for update_memslots() and add comments describing
+    the new algorithm and how it interacts with searching [Paolo].
+  - Remove the unnecessary and obnoxious warning regarding memslots being
+    a flexible array [Paolo].
+  - Fix typos in the changelog of patch 09/15 [Christoffer].
+  - Collect tags [Christoffer].
+
+v2:
+  - Split "Drop kvm_arch_create_memslot()" into three patches to move
+    minor functional changes to standalone patches [Janosch].
+  - Rebase to latest kvm/queue (f0574a1cea5b, "KVM: x86: fix ...")
+  - Collect an Acked-by and a Reviewed-by
+
+Sean Christopherson (19):
+  KVM: x86: Allocate new rmap and large page tracking when moving
+    memslot
   KVM: Reinstall old memslots if arch preparation fails
+  KVM: Don't free new memslot if allocation of said memslot fails
   KVM: PPC: Move memslot memory allocation into prepare_memory_region()
   KVM: x86: Allocate memslot resources during prepare_memory_region()
   KVM: Drop kvm_arch_create_memslot()
+  KVM: Explicitly free allocated-but-unused dirty bitmap
   KVM: Refactor error handling for setting memory region
   KVM: Move setting of memslot into helper routine
+  KVM: Drop "const" attribute from old memslot in commit_memory_region()
+  KVM: x86: Free arrays for old memslot when moving memslot's base gfn
   KVM: Move memslot deletion to helper function
   KVM: Simplify kvm_free_memslot() and all its descendents
   KVM: Clean up local variable usage in __kvm_set_memory_region()
@@ -35,26 +67,33 @@
   KVM: Ensure validity of memslot with respect to kvm_get_dirty_log()
   KVM: Terminate memslot walks via used_slots
   KVM: Dynamically size memslot array based on number of used slots
+  KVM: selftests: Add test for KVM_SET_USER_MEMORY_REGION
 
- arch/mips/include/asm/kvm_host.h      |   2 +-
- arch/mips/kvm/mips.c                  |  68 +---
- arch/powerpc/include/asm/kvm_ppc.h    |  14 +-
- arch/powerpc/kvm/book3s.c             |  22 +-
- arch/powerpc/kvm/book3s_hv.c          |  36 +-
- arch/powerpc/kvm/book3s_pr.c          |  20 +-
- arch/powerpc/kvm/booke.c              |  17 +-
- arch/powerpc/kvm/powerpc.c            |  13 +-
- arch/s390/include/asm/kvm_host.h      |   2 +-
- arch/s390/kvm/kvm-s390.c              |  21 +-
- arch/x86/include/asm/kvm_page_track.h |   3 +-
- arch/x86/kvm/page_track.c             |  15 +-
- arch/x86/kvm/x86.c                    | 100 ++---
- include/linux/kvm_host.h              |  48 +--
- virt/kvm/arm/arm.c                    |  47 +--
- virt/kvm/arm/mmu.c                    |  18 +-
- virt/kvm/kvm_main.c                   | 546 ++++++++++++++++----------
- 17 files changed, 467 insertions(+), 525 deletions(-)
+ arch/mips/include/asm/kvm_host.h              |   2 +-
+ arch/mips/kvm/mips.c                          |  71 +-
+ arch/powerpc/include/asm/kvm_ppc.h            |  17 +-
+ arch/powerpc/kvm/book3s.c                     |  22 +-
+ arch/powerpc/kvm/book3s_hv.c                  |  36 +-
+ arch/powerpc/kvm/book3s_pr.c                  |  20 +-
+ arch/powerpc/kvm/booke.c                      |  17 +-
+ arch/powerpc/kvm/powerpc.c                    |  15 +-
+ arch/s390/include/asm/kvm_host.h              |   2 +-
+ arch/s390/kvm/kvm-s390.c                      |  23 +-
+ arch/x86/include/asm/kvm_page_track.h         |   3 +-
+ arch/x86/kvm/mmu/page_track.c                 |  15 +-
+ arch/x86/kvm/x86.c                            | 114 +---
+ include/linux/kvm_host.h                      |  48 +-
+ tools/testing/selftests/kvm/.gitignore        |   1 +
+ tools/testing/selftests/kvm/Makefile          |   3 +
+ .../testing/selftests/kvm/include/kvm_util.h  |   1 +
+ tools/testing/selftests/kvm/lib/kvm_util.c    |  30 +
+ .../selftests/kvm/set_memory_region_test.c    | 142 ++++
+ virt/kvm/arm/arm.c                            |  48 +-
+ virt/kvm/arm/mmu.c                            |  20 +-
+ virt/kvm/kvm_main.c                           | 621 ++++++++++++------
+ 22 files changed, 736 insertions(+), 535 deletions(-)
+ create mode 100644 tools/testing/selftests/kvm/set_memory_region_test.c
 
 -- 
-2.22.0
+2.24.1
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help