linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: Wupeng Ma <mawupeng1@huawei.com>, <corbet@lwn.net>,
	<will@kernel.org>, <ardb@kernel.org>, <catalin.marinas@arm.com>
Cc: <tglx@linutronix.de>, <mingo@redhat.com>, <bp@alien8.de>,
	<dave.hansen@linux.intel.com>, <x86@kernel.org>, <hpa@zytor.com>,
	<dvhart@infradead.org>, <andy@infradead.org>, <rppt@kernel.org>,
	<akpm@linux-foundation.org>, <paul.walmsley@sifive.com>,
	<palmer@dabbelt.com>, <aou@eecs.berkeley.edu>,
	<paulmck@kernel.org>, <keescook@chromium.org>,
	<songmuchun@bytedance.com>, <rdunlap@infradead.org>,
	<damien.lemoal@opensource.wdc.com>, <swboyd@chromium.org>,
	<wei.liu@kernel.org>, <robin.murphy@arm.com>, <david@redhat.com>,
	<anshuman.khandual@arm.com>, <thunder.leizhen@huawei.com>,
	<gpiccoli@igalia.com>, <chenhuacai@kernel.org>,
	<geert@linux-m68k.org>, <vijayb@linux.microsoft.com>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-efi@vger.kernel.org>,
	<platform-driver-x86@vger.kernel.org>, <linux-mm@kvack.org>,
	<linux-riscv@lists.infradead.org>
Subject: Re: [PATCH v5 0/5] introduce mirrored memory support for arm64
Date: Wed, 15 Jun 2022 11:52:00 +0800	[thread overview]
Message-ID: <5af7a1d9-31fa-74d1-b292-79dc3c658dbd@huawei.com> (raw)
In-Reply-To: <20220614092156.1972846-1-mawupeng1@huawei.com>


On 2022/6/14 17:21, Wupeng Ma wrote:
> From: Ma Wupeng <mawupeng1@huawei.com>
>
> Commit b05b9f5f9dcf ("x86, mirror: x86 enabling - find mirrored memory ranges")
> introduced mirrored memory support for x86. This support rely on UEFI to
> report mirrored memory address ranges.  See UEFI 2.5 spec pages 157-158:
>
>    http://www.uefi.org/sites/default/files/resources/UEFI%202_5.pdf
>
> Memory mirroring is a technique used to separate memory into two separate
> channels, usually on a memory device, like a server. In memory mirroring,
> one channel is copied to another to create redundancy. This method makes
> input/output (I/O) registers and memory appear with more than one address
> range because the same physical byte is accessible at more than one
> address. Using memory mirroring, higher memory reliability and a higher
> level of memory consolidation are possible.
>
> These EFI memory regions have various attributes, and the "mirrored"
> attribute is one of them. The physical memory region whose descriptors
> in EFI memory map has EFI_MEMORY_MORE_RELIABLE attribute (bit: 16) are
> mirrored. The address range mirroring feature of the kernel arranges such
> mirrored regions into normal zones and other regions into movable zones.
>
> Arm64 can support this too. So mirrored memory support is added to support
> arm64.
>
> The main purpose of this patch set is to introduce mirrored support for
> arm64 and we have already fixed the problems we had which is shown in
> patch #5 to patch #8 and try to bring total isolation in patch #9 which
> will disable mirror feature if kernelcore is not specified.
>
> In order to test this support in arm64:
> - patch this patch set
> - add kernelcore=mirror in kernel parameter
> - start you kernel
>
> Patch #1 introduce mirrored memory support form arm64.
> Patch #2-#4 fix some bugs for arm64 if memory reliable is enabled.
> Patch #5 disable mirror feature if kernelcore is not specified.
>
> Thanks to Ard Biesheuvel's hard work [1], now kernel will perfer mirrored
> memory if kaslr is enabled.
>
> [1] https://lore.kernel.org/linux-arm-kernel/CAMj1kXEPVEzMgOM4+Yj6PxHA-jFuDOAUdDJSiSxy_XaP4P7LSw@mail.gmail.com/T/

For series,

Reviewed-by: Kefeng Wang<wangkefeng.wang@huawei.com>

>
> Changelog since v4:
> - merge the first two patches into one
> - change __initdata to __initdata_memblock in patch #5
>
> Changelog since v3:
> - limit warning message in vmemmap_verify via pr_warn_once()
> - only clear memblock_nomap flags rather than bring the mirrored flag back
> - disable mirrored feature in memblock_mark_mirror()
>
> Changelog since v2:
> - remove efi_fake_mem support
> - remove Commit ("remove some redundant code in ia64 efi_init") since
>    efi_print_memmap() is not public
> - add mirror flag back on initrd memory
>
> Changelog since v1:
> - update changelog in cover letter
> - use PHYS_PFN in patch #7
>
> Ma Wupeng (5):
>    efi: arm64: Introduce ability to find mirrored memory ranges
>    mm: Ratelimited mirrored memory related warning messages
>    mm: Limit warning message in vmemmap_verify() to once
>    arm64: mm: Only remove nomap flag for initrd
>    memblock: Disable mirror feature if kernelcore is not specified
>
>   arch/arm64/mm/init.c            |  2 +-
>   arch/x86/include/asm/efi.h      |  4 ----
>   arch/x86/platform/efi/efi.c     | 23 -----------------------
>   drivers/firmware/efi/efi-init.c |  1 +
>   drivers/firmware/efi/efi.c      | 23 +++++++++++++++++++++++
>   include/linux/efi.h             |  3 +++
>   mm/internal.h                   |  2 ++
>   mm/memblock.c                   |  7 +++++--
>   mm/page_alloc.c                 |  2 +-
>   mm/sparse-vmemmap.c             |  2 +-
>   10 files changed, 37 insertions(+), 32 deletions(-)
>


  parent reply	other threads:[~2022-06-15  3:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-14  9:21 Wupeng Ma
2022-06-14  9:21 ` [PATCH v5 1/5] efi: arm64: Introduce ability to find mirrored memory ranges Wupeng Ma
2022-06-15 10:02   ` Catalin Marinas
2022-06-15 10:03     ` Ard Biesheuvel
2022-06-14  9:21 ` [PATCH v5 2/5] mm: Ratelimited mirrored memory related warning messages Wupeng Ma
2022-06-14  9:21 ` [PATCH v5 3/5] mm: Limit warning message in vmemmap_verify() to once Wupeng Ma
2022-06-14  9:21 ` [PATCH v5 4/5] arm64: mm: Only remove nomap flag for initrd Wupeng Ma
2022-06-15 10:04   ` Catalin Marinas
2022-06-14  9:21 ` [PATCH v5 5/5] memblock: Disable mirror feature if kernelcore is not specified Wupeng Ma
2022-06-14 10:20   ` Baoquan He
2022-06-14 10:27     ` Ard Biesheuvel
2022-06-14 10:50       ` Baoquan He
2022-06-15  3:52 ` Kefeng Wang [this message]
2022-06-15  7:54 ` [PATCH v5 0/5] introduce mirrored memory support for arm64 Mike Rapoport
2022-06-15 10:15   ` Ard Biesheuvel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5af7a1d9-31fa-74d1-b292-79dc3c658dbd@huawei.com \
    --to=wangkefeng.wang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=andy@infradead.org \
    --cc=anshuman.khandual@arm.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=ardb@kernel.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=corbet@lwn.net \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@redhat.com \
    --cc=dvhart@infradead.org \
    --cc=geert@linux-m68k.org \
    --cc=gpiccoli@igalia.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=mawupeng1@huawei.com \
    --cc=mingo@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=paulmck@kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=robin.murphy@arm.com \
    --cc=rppt@kernel.org \
    --cc=songmuchun@bytedance.com \
    --cc=swboyd@chromium.org \
    --cc=tglx@linutronix.de \
    --cc=thunder.leizhen@huawei.com \
    --cc=vijayb@linux.microsoft.com \
    --cc=wei.liu@kernel.org \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox