lkml.org 
[lkml]   [2022]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/5] arm64: kdump: Remove some redundant checks in map_mem()
    On 06/13/22 at 04:09pm, Zhen Lei wrote:
    > arm64_memblock_init()
    > if (!IS_ENABLED(CONFIG_ZONE_DMA/DMA32))
    > reserve_crashkernel()
    > //initialize crashk_res when
    > //"crashkernel=" is correctly specified
    > paging_init()
    > map_mem()
    >
    > As shown in the above pseudo code, the crashk_res.end can only be
    > initialized to non-zero when both "!IS_ENABLED(CONFIG_ZONE_DMA/DMA32)"
    > and crash_mem_map are true. So some checks in map_mem() can be adjusted
    > or optimized.

    LGTM,

    Acked-by: Baoquan He <bhe@redhat.com>

    >
    > Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
    > ---
    > arch/arm64/mm/mmu.c | 25 +++++++++++--------------
    > 1 file changed, 11 insertions(+), 14 deletions(-)
    >
    > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
    > index 626ec32873c6c36..6028a5757e4eae2 100644
    > --- a/arch/arm64/mm/mmu.c
    > +++ b/arch/arm64/mm/mmu.c
    > @@ -529,12 +529,12 @@ static void __init map_mem(pgd_t *pgdp)
    >
    > #ifdef CONFIG_KEXEC_CORE
    > if (crash_mem_map) {
    > - if (IS_ENABLED(CONFIG_ZONE_DMA) ||
    > - IS_ENABLED(CONFIG_ZONE_DMA32))
    > - flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
    > - else if (crashk_res.end)
    > + if (crashk_res.end)
    > memblock_mark_nomap(crashk_res.start,
    > resource_size(&crashk_res));
    > + else if (IS_ENABLED(CONFIG_ZONE_DMA) ||
    > + IS_ENABLED(CONFIG_ZONE_DMA32))
    > + flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS;
    > }
    > #endif
    >
    > @@ -571,16 +571,13 @@ static void __init map_mem(pgd_t *pgdp)
    > * through /sys/kernel/kexec_crash_size interface.
    > */
    > #ifdef CONFIG_KEXEC_CORE
    > - if (crash_mem_map &&
    > - !IS_ENABLED(CONFIG_ZONE_DMA) && !IS_ENABLED(CONFIG_ZONE_DMA32)) {
    > - if (crashk_res.end) {
    > - __map_memblock(pgdp, crashk_res.start,
    > - crashk_res.end + 1,
    > - PAGE_KERNEL,
    > - NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS);
    > - memblock_clear_nomap(crashk_res.start,
    > - resource_size(&crashk_res));
    > - }
    > + if (crashk_res.end) {
    > + __map_memblock(pgdp, crashk_res.start,
    > + crashk_res.end + 1,
    > + PAGE_KERNEL,
    > + NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS);
    > + memblock_clear_nomap(crashk_res.start,
    > + resource_size(&crashk_res));
    > }
    > #endif
    > }
    > --
    > 2.25.1
    >

    \
     
     \ /
      Last update: 2022-06-20 09:44    [W:4.505 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site