2023-01-04 11:53:02

by Mike Rapoport

[permalink] [raw]
Subject: Re: [RFC PATCH 11/25] kvx: Add memory management

On Tue, Jan 03, 2023 at 05:43:45PM +0100, Yann Sionneau wrote:
> Add memory management support for kvx, including: cache and tlb
> management, page fault handling, ioremap/mmap and streaming dma support.
>
> CC: Will Deacon <[email protected]>
> CC: "Aneesh Kumar K.V" <[email protected]>
> CC: Andrew Morton <[email protected]>
> CC: Nick Piggin <[email protected]>
> CC: Peter Zijlstra <[email protected]>
> CC: Paul Walmsley <[email protected]>
> CC: Palmer Dabbelt <[email protected]>
> CC: Albert Ou <[email protected]>
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> CC: [email protected]
> Co-developed-by: Clement Leger <[email protected]>
> Signed-off-by: Clement Leger <[email protected]>
> Co-developed-by: Guillaume Thouvenin <[email protected]>
> Signed-off-by: Guillaume Thouvenin <[email protected]>
> Co-developed-by: Jean-Christophe Pince <[email protected]>
> Signed-off-by: Jean-Christophe Pince <[email protected]>
> Co-developed-by: Jules Maselbas <[email protected]>
> Signed-off-by: Jules Maselbas <[email protected]>
> Co-developed-by: Julian Vetter <[email protected]>
> Signed-off-by: Julian Vetter <[email protected]>
> Co-developed-by: Julien Hascoet <[email protected]>
> Signed-off-by: Julien Hascoet <[email protected]>
> Co-developed-by: Louis Morhet <[email protected]>
> Signed-off-by: Louis Morhet <[email protected]>
> Co-developed-by: Marc Poulhi?s <[email protected]>
> Signed-off-by: Marc Poulhi?s <[email protected]>
> Co-developed-by: Marius Gligor <[email protected]>
> Signed-off-by: Marius Gligor <[email protected]>
> Co-developed-by: Vincent Chardon <[email protected]>
> Signed-off-by: Vincent Chardon <[email protected]>
> Co-developed-by: Yann Sionneau <[email protected]>
> Signed-off-by: Yann Sionneau <[email protected]>
> ---
> arch/kvx/include/asm/cache.h | 46 +++
> arch/kvx/include/asm/cacheflush.h | 181 +++++++++
> arch/kvx/include/asm/fixmap.h | 47 +++
> arch/kvx/include/asm/hugetlb.h | 36 ++
> arch/kvx/include/asm/l2_cache.h | 75 ++++
> arch/kvx/include/asm/l2_cache_defs.h | 64 ++++
> arch/kvx/include/asm/mem_map.h | 44 +++
> arch/kvx/include/asm/mmu.h | 296 +++++++++++++++
> arch/kvx/include/asm/mmu_context.h | 156 ++++++++
> arch/kvx/include/asm/mmu_stats.h | 38 ++
> arch/kvx/include/asm/page.h | 187 ++++++++++
> arch/kvx/include/asm/page_size.h | 29 ++
> arch/kvx/include/asm/pgalloc.h | 101 +++++
> arch/kvx/include/asm/pgtable-bits.h | 102 ++++++
> arch/kvx/include/asm/pgtable.h | 451 +++++++++++++++++++++++
> arch/kvx/include/asm/rm_fw.h | 16 +
> arch/kvx/include/asm/sparsemem.h | 15 +
> arch/kvx/include/asm/symbols.h | 16 +
> arch/kvx/include/asm/tlb.h | 24 ++
> arch/kvx/include/asm/tlb_defs.h | 131 +++++++
> arch/kvx/include/asm/tlbflush.h | 58 +++
> arch/kvx/include/asm/vmalloc.h | 10 +
> arch/kvx/mm/cacheflush.c | 154 ++++++++
> arch/kvx/mm/dma-mapping.c | 95 +++++
> arch/kvx/mm/extable.c | 24 ++
> arch/kvx/mm/fault.c | 264 ++++++++++++++
> arch/kvx/mm/hugetlbpage.c | 317 ++++++++++++++++
> arch/kvx/mm/init.c | 527 +++++++++++++++++++++++++++
> arch/kvx/mm/kernel_rwx.c | 228 ++++++++++++
> arch/kvx/mm/mmap.c | 31 ++
> arch/kvx/mm/mmu.c | 204 +++++++++++
> arch/kvx/mm/mmu_stats.c | 94 +++++
> arch/kvx/mm/tlb.c | 433 ++++++++++++++++++++++
> 33 files changed, 4494 insertions(+)

Please strip functionality that's not essential for boot and the re-add it
after the very core code is merged. I'd say multiple page size, hugetlb and
strict RWX are not necessary to start with.

I'd also suggest to have separate patches for different parts, like cache
and tlb management, page tables and page fault fault handling, ioremap/mmap
and streaming dma support.

--
Sincerely yours,
Mike.