This patchseries starts moving some of the gmap logic into KVM itself, going towards the final goal of completely removing gmap from the non-kvm memory management code. Aside from just moving some code from mm/gmap into kvm, this series also starts using __kvm_faultin_pfn() to fault-in pages as needed. But more importantly, this series removes almost all uses of page->index (and all uses of page->lru) from the s390 KVM code. The only remaining use is for the vsie pages, but that has already been taken care of by David in another series. Unfortunately the mix of hastiness and holidays means that this series is a little bit all over the place, and not as complete as I would have liked to. I'm posting it now so to try to speed up the removal of page->index, hopefully I will be able to post another short series before the upcoming merge window closes. v1->v2: * moved some code around between patches to improve readability and shuffle the order of some patches * rebase on Sean's patchseries * add Sean's patch to remove size limitations for internal memslots * use Sean's new API for internal memslots to place one huge internal memslot instead of many 4T ones for UCONTROL guests * create new kvm/gmap-vsie.c file for VSIE code, instead of dumping everything in the existing files, which are already too large * improve comments and patch descriptions * minor style and cosmetic fixes Claudio Imbrenda (14): KVM: s390: wrapper for KVM_BUG KVM: s390: move pv gmap functions into kvm KVM: s390: fake memslot for ucontrol VMs KVM: s390: selftests: fix ucontrol memory region test KVM: s390: use __kvm_faultin_pfn() KVM: s390: get rid of gmap_fault() KVM: s390: get rid of gmap_translate() KVM: s390: move some gmap shadowing functions away from mm/gmap.c KVM: s390: stop using page->index for non-shadow gmaps KVM: s390: stop using lists to keep track of used dat tables KVM: s390: move gmap_shadow_pgt_lookup() into kvm KVM: s390: remove useless page->index usage KVM: s390: move PGSTE softbits KVM: s390: remove the last user of page->index Sean Christopherson (1): KVM: Do not restrict the size of KVM-internal memory regions arch/s390/include/asm/gmap.h | 17 +- arch/s390/include/asm/kvm_host.h | 2 + arch/s390/include/asm/pgtable.h | 21 +- arch/s390/include/asm/uv.h | 7 +- arch/s390/kernel/uv.c | 293 ++------ arch/s390/kvm/Makefile | 2 +- arch/s390/kvm/gaccess.c | 42 ++ arch/s390/kvm/gmap-vsie.c | 142 ++++ arch/s390/kvm/gmap.c | 196 ++++++ arch/s390/kvm/gmap.h | 39 ++ arch/s390/kvm/intercept.c | 5 +- arch/s390/kvm/interrupt.c | 19 +- arch/s390/kvm/kvm-s390.c | 219 ++++-- arch/s390/kvm/kvm-s390.h | 19 + arch/s390/kvm/pv.c | 1 + arch/s390/kvm/vsie.c | 2 + arch/s390/mm/gmap.c | 638 +++--------------- .../selftests/kvm/s390x/ucontrol_test.c | 6 +- virt/kvm/kvm_main.c | 10 +- 19 files changed, 828 insertions(+), 852 deletions(-) create mode 100644 arch/s390/kvm/gmap-vsie.c create mode 100644 arch/s390/kvm/gmap.c create mode 100644 arch/s390/kvm/gmap.h -- 2.47.1