On 12/16/20 12:11 PM, Claudio Imbrenda wrote:
My previous patchseries was rushed and not polished enough. Furthermore it introduced some regressions. This patchseries fixes hopefully all the issues reported, and introduces some new features. It also simplifies the code and hopefully makes it more readable. Fixed: * allocated memory is now zeroed by default New features: * per-allocation flags to specify not just the area (like before) but also other parameters - zero flag: the allocation will be zeroed - fresh flag: the returned memory has never been read or written to before * default flags: it's possible to specify which flags should be enabled automatically at each allocation; by default the zero flag is set. I would appreciate if people could test these patches, especially on strange, unusual or exotic hardware (I tested only on s390x) GitLab: https://urldefense.com/v3/__https://gitlab.com/imbrenda/kvm-unit-tests/-/tree/page_allocator_fixes__;!!GqivPVa7Brio!LehVoD4e6fUc92A7OE_Rxl2QwwkrW4aY0WHTmPkgKyxYviNfnTs3hEmYWHsMj3I9paC-$ CI: https://urldefense.com/v3/__https://gitlab.com/imbrenda/kvm-unit-tests/-/pipelines/229689192__;!!GqivPVa7Brio!LehVoD4e6fUc92A7OE_Rxl2QwwkrW4aY0WHTmPkgKyxYviNfnTs3hEmYWHsMj5GdDaIf$ Claudio Imbrenda (12): lib/x86: fix page.h to include the generic header lib/list.h: add list_add_tail lib/vmalloc: add some asserts and improvements lib/asm: Fix definitions of memory areas lib/alloc_page: fix and improve the page allocator lib/alloc.h: remove align_min from struct alloc_ops lib/alloc_page: Optimization to skip known empty freelists lib/alloc_page: rework metadata format lib/alloc: replace areas with more generic flags lib/alloc_page: Wire up ZERO_FLAG lib/alloc_page: Properly handle requests for fresh blocks lib/alloc_page: default flags and zero pages by default lib/asm-generic/memory_areas.h | 9 +- lib/arm/asm/memory_areas.h | 11 +- lib/arm64/asm/memory_areas.h | 11 +- lib/powerpc/asm/memory_areas.h | 11 +- lib/ppc64/asm/memory_areas.h | 11 +- lib/s390x/asm/memory_areas.h | 13 +- lib/x86/asm/memory_areas.h | 27 +-- lib/x86/asm/page.h | 4 +- lib/alloc.h | 1 - lib/alloc_page.h | 66 ++++++-- lib/list.h | 9 + lib/alloc_page.c | 291 ++++++++++++++++++++------------- lib/alloc_phys.c | 9 +- lib/s390x/smp.c | 2 +- lib/vmalloc.c | 21 +-- 15 files changed, 286 insertions(+), 210 deletions(-)
For patch# 1, 2, 7, 8, 9, 10 and 11: Reviewed-by: Krish Sadhukhan <krish.sadhukhan@xxxxxxxxxx>