On Mon, Oct 23, 2017 at 03:53:24PM +0200, Paolo Bonzini wrote: > This series unifies the memory allocators in kvm-unit-tests: > > - x86 startup code sets up phys_alloc using the e801 memory map > information from multiboot. phys_alloc remains active until > the tests call setup_vm. phys_alloc is very simple and is > not able to free any memory. > > - a new MMU-friendly alloc_ops implementation is provided based on > lib/x86/vm.c. The new alloc_ops relies on a physical page allocator > (in lib/alloc_page.c), which is initialized from the final phys_alloc > state, and a virtual address allocator. The alloc_ops get physical > pages and maps them into a contiguous virtual address space range. > > The entry points for the architecture-dependent APIs are setup_mmu, > install_page and virt_to_pte_phys. lib/x86/vm.c implements them > together with other x86-specific functions. > > TODO: test ARM and PPC; implement the new API for ARM/PPC/s390 (probably > using a soft TLB approach, similar to Linux, for PPC hashed page tables); > support sub-page allocation in the new alloc_ops. > Thanks for this Paolo! I did quick compile and TCG testing of arm64 and ppc64, which led me to a couple comments on a couple patches. I also skimmed over the patches and they look good to me. However, all new code, and any functions that get moved to new files, should have their coding style updated. drew