On Tue, Sep 20, 2022 at 04:25:45AM +0000, Ricardo Koller wrote: > The vm_create() helpers are hardcoded to place most page types (code, > page-tables, stacks, etc) in the same memslot #0, and always backed with > anonymous 4K. There are a couple of issues with that. First, tests willing > to > differ a bit, like placing page-tables in a different backing source type must > replicate much of what's already done by the vm_create() functions. Second, > the hardcoded assumption of memslot #0 holding most things is spreaded > everywhere; this makes it very hard to change. > > Fix the above issues by having selftests specify how they want memory to be > laid out. Start by changing ____vm_create() to not create memslot #0; a future > commit will add test that specifies all memslots used by the VM. Then, add > the > vm->memslots[] array to specify the right memslot for different memory > allocators, e.g.,: lib/elf should use the vm->[MEM_REGION_CODE] memslot. This > will be used as a way to specify the page-tables memslots (to be backed by > huge > pages for example). > > There is no functional change intended. The current commit lays out memory > exactly as before. The next commit will change the allocators to get the > region > they should be using, e.g.,: like the page table allocators using the pt > memslot. > > Cc: Sean Christopherson <[email protected]> > Cc: Andrew Jones <[email protected]> > Signed-off-by: Ricardo Koller <[email protected]> > --- > .../selftests/kvm/include/kvm_util_base.h | 25 +++++++++++++++++-- > tools/testing/selftests/kvm/lib/kvm_util.c | 18 +++++++------ > 2 files changed, 33 insertions(+), 10 deletions(-) >
Reviewed-by: Andrew Jones <[email protected]> _______________________________________________ kvmarm mailing list [email protected] https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
