[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yrl9FcVv1wZ5MnRp@kernel.org>
Date: Mon, 27 Jun 2022 12:49:09 +0300
From: Mike Rapoport <rppt@...nel.org>
To: "guanghui.fgh" <guanghuifeng@...ux.alibaba.com>
Cc: baolin.wang@...ux.alibaba.com, catalin.marinas@....com,
will@...nel.org, akpm@...ux-foundation.org, david@...hat.com,
jianyong.wu@....com, james.morse@....com, quic_qiancai@...cinc.com,
christophe.leroy@...roup.eu, jonathan@...ek.ca,
mark.rutland@....com, thunder.leizhen@...wei.com,
anshuman.khandual@....com, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, geert+renesas@...der.be,
ardb@...nel.org, linux-mm@...ck.org
Subject: Re: [PATCH] arm64: mm: fix linear mapping mem access performace
degradation
Please don't post HTML.
On Mon, Jun 27, 2022 at 05:24:10PM +0800, guanghui.fgh wrote:
> Thanks.
>
> 在 2022/6/27 14:34, Mike Rapoport 写道:
>
> On Sun, Jun 26, 2022 at 07:10:15PM +0800, Guanghui Feng wrote:
>
> The arm64 can build 2M/1G block/sectiion mapping. When using DMA/DMA32 zone
> (enable crashkernel, disable rodata full, disable kfence), the mem_map will
> use non block/section mapping(for crashkernel requires to shrink the region
> in page granularity). But it will degrade performance when doing larging
> continuous mem access in kernel(memcpy/memmove, etc).
>
> There are many changes and discussions:
> commit 031495635b46
> commit 1a8e1cef7603
> commit 8424ecdde7df
> commit 0a30c53573b0
> commit 2687275a5843
>
> Please include oneline summary of the commit. (See section "Describe your
> changes" in Documentation/process/submitting-patches.rst)
>
> OK, I will add oneline summary in the git commit messages.
>
> This patch changes mem_map to use block/section mapping with crashkernel.
> Firstly, do block/section mapping(normally 2M or 1G) for all avail mem at
> mem_map, reserve crashkernel memory. And then walking pagetable to split
> block/section mapping to non block/section mapping(normally 4K) [[[only]]]
> for crashkernel mem.
>
> This already happens when ZONE_DMA/ZONE_DMA32 are disabled. Please explain
> why is it Ok to change the way the memory is mapped with
> ZONE_DMA/ZONE_DMA32 enabled.
>
> In short:
>
> 1.building all avail mem with block/section mapping(normally 1G/2M) without
> inspecting crashkernel
> 2. Reserve crashkernel mem as same as previous doing
> 3. only change the crashkernle mem mapping to normal mapping(normally 4k).
> With this method, there are block/section mapping as more as possible.
This does not answer the question why changing the way the memory is mapped
when there is ZONE_DMA/DMA32 and crashkernel won't cause a regression.
--
Sincerely yours,
Mike.
Powered by blists - more mailing lists