This patch series moves kvmtool from allocating guest vm memory using anonymous mmap to using memfd/ftruncate. The main motivation is to ease the transition to the fd-based kvm guest memory proposal [*]. It also facilitates using ipc memory sharing should that be needed in the future. Moreover, it removes the need for using temporary files if the memory is backed by hugetlbfs. In the process of this rework, this patch series fixes a bug (uninitalized return value). It also adds a memory allocation function that allocates aligned memory without the need to over-map/allocate. This facilitates refactoring, which simplifies the code and removes a lot of the arch-specific code. Cheers, /fuad [*] https://lore.kernel.org/all/20221025151344.3784230-1-chao.p.peng@xxxxxxxxxxxxxxx/ Fuad Tabba (17): Initialize the return value in kvm__for_each_mem_bank() Make mmap_hugetlbfs() static Rename parameter in mmap_anon_or_hugetlbfs() Add hostmem va to debug print Factor out getting the hugetlb block size Use memfd for hugetlbfs when allocating guest ram Make blk_size a parameter and pass it to mmap_hugetlbfs() Use memfd for all guest ram allocations Allocate pvtime memory with memfd Allocate vesa memory with memfd Add a function that allocates aligned memory if specified Use new function to align memory Remove struct fields and code used for alignment Replace kvm_arch_delete_ram with kvm_delete_ram Remove no-longer unused macro Factor out set_user_memory_region code Pass the memory file descriptor and offset when registering ram arm/aarch64/pvtime.c | 20 ++++- arm/include/arm-common/kvm-arch.h | 7 -- arm/kvm.c | 35 +++------ framebuffer.c | 2 + hw/cfi_flash.c | 4 +- hw/vesa.c | 17 ++++- include/kvm/framebuffer.h | 1 + include/kvm/kvm.h | 19 ++--- include/kvm/util.h | 7 +- kvm.c | 69 ++++++++++------- mips/kvm.c | 11 +-- powerpc/kvm.c | 7 +- riscv/include/kvm/kvm-arch.h | 7 -- riscv/kvm.c | 26 ++----- util/util.c | 119 +++++++++++++++++++++++------- vfio/core.c | 3 +- x86/kvm.c | 11 +-- 17 files changed, 209 insertions(+), 156 deletions(-) base-commit: e17d182ad3f797f01947fc234d95c96c050c534b -- 2.38.1.431.g37b22c650d-goog