linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/9] introduce mirrored memory support for arm64
@ 2022-04-14 10:13 Wupeng Ma
  2022-04-14 10:13 ` [PATCH v2 1/9] efi: Make efi_print_memmap() public Wupeng Ma
                   ` (9 more replies)
  0 siblings, 10 replies; 31+ messages in thread
From: Wupeng Ma @ 2022-04-14 10:13 UTC (permalink / raw)
  To: akpm, catalin.marinas, will, corbet
  Cc: ardb, tglx, mingo, bp, dave.hansen, x86, hpa, dvhart, andy, rppt,
	paulmck, peterz, jroedel, songmuchun, macro, frederic, W_Armin,
	john.garry, seanjc, tsbogend, anshuman.khandual, chenhuacai,
	david, gpiccoli, mark.rutland, wangkefeng.wang, mawupeng1,
	linux-doc, linux-kernel, linux-arm-kernel, linux-efi, linux-ia64,
	platform-driver-x86, linux-mm

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.

Arm64 can support this too. So mirrored memory support is added to support
arm64.

Efi_fake_mem is used for testing mirrored features and will not be used in
production environment. This test features can fake memory's attribute
values.

The reason why efi_fake_mem support is put first is that memory's attribute
is reported by BIOS which is hard to simulate. With this support, any arm64
machines with efi support can easily test mirrored features.

The main purpose of this patchset is to introduce mirrored support for
arm64 and we have already fixed the problems we had which is shown in
patch #5 to patch #7 and try to bring total isolation in patch #8 which
will disable mirror feature if kernelcore is not specified.

In order to test this support in arm64:
- patch this patchset
- add efi_fake_mem=8G@0:0x10000 in kernel parameter to simulate mirrored
  memroy between phy addr 0-8G.
- add kernelcore=mirror in kernel parameter
- start you kernel

Patch #1-#2 introduce efi_fake_mem support for arm64.
Patch #3-#4 introduce mirrored memory support form arm64.
Patch #5-#7 fix some bugs for arm64 if memory reliable is enabled.
Patch #8 disable mirror feature if kernelPHYS_PFNcore is not specified.
Patch #9 remove some redundant code in ia64 efi_init.

Changelog since v1:
- update changelog in cover letter
- use PHYS_PFN in patch #7 

Ma Wupeng (9):
  efi: Make efi_print_memmap() public
  arm64: efi: Add fake memory support
  efi: Make efi_find_mirror() public
  arm64/mirror: arm64 enabling - find mirrored memory ranges
  mm: Ratelimited mirrored memory related warning messages
  mm: Demote warning message in vmemmap_verify() to debug level
  mm: Calc the right pfn if page size is not 4K
  efi: Disable mirror feature if kernelcore is not specified
  ia64/efi: Code simplification in efi_init

 .../admin-guide/kernel-parameters.txt         |  4 +-
 arch/arm64/kernel/setup.c                     |  3 ++
 arch/ia64/kernel/efi.c                        | 37 +-----------------
 arch/x86/include/asm/efi.h                    |  5 ---
 arch/x86/platform/efi/efi.c                   | 39 -------------------
 drivers/firmware/efi/Kconfig                  |  2 +-
 drivers/firmware/efi/efi.c                    | 26 +++++++++++++
 drivers/firmware/efi/memmap.c                 | 16 ++++++++
 include/linux/efi.h                           |  4 ++
 include/linux/mm.h                            |  2 +
 mm/memblock.c                                 |  4 +-
 mm/page_alloc.c                               |  4 +-
 mm/sparse-vmemmap.c                           |  2 +-
 13 files changed, 60 insertions(+), 88 deletions(-)

-- 
2.18.0.huawei.25


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2022-05-24  1:12 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-14 10:13 [PATCH v2 0/9] introduce mirrored memory support for arm64 Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 1/9] efi: Make efi_print_memmap() public Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 2/9] arm64: efi: Add fake memory support Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 3/9] efi: Make efi_find_mirror() public Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 4/9] arm64/mirror: arm64 enabling - find mirrored memory ranges Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 5/9] mm: Ratelimited mirrored memory related warning messages Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 6/9] mm: Demote warning message in vmemmap_verify() to debug level Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 7/9] mm: Calc the right pfn if page size is not 4K Wupeng Ma
2022-04-19  9:59   ` David Hildenbrand
2022-04-19 11:14   ` Anshuman Khandual
2022-04-19 18:29     ` Ard Biesheuvel
2022-04-20 22:27       ` Andrew Morton
2022-04-20 22:39         ` Ard Biesheuvel
2022-04-14 10:13 ` [PATCH v2 8/9] efi: Disable mirror feature if kernelcore is not specified Wupeng Ma
2022-04-14 10:13 ` [PATCH v2 9/9] ia64/efi: Code simplification in efi_init Wupeng Ma
2022-04-14 10:22 ` [PATCH v2 0/9] introduce mirrored memory support for arm64 Ard Biesheuvel
2022-04-16  1:32   ` mawupeng
2022-04-19 18:32     ` Ard Biesheuvel
2022-04-20  2:13       ` mawupeng
2022-04-19  7:01   ` [PATCH 0/2] Add support to relocate kernel image to mirrored region Wupeng Ma
2022-04-19  7:01     ` [PATCH 1/2] arm64/boot/KASLR: " Wupeng Ma
2022-04-19  7:01     ` [PATCH 2/2] arm64/boot: Add support to relocate kernel image to mirrored region without kaslr Wupeng Ma
2022-05-03  9:58     ` [PATCH 0/2] Add support to relocate kernel image to mirrored region Ard Biesheuvel
2022-05-07  9:28       ` mawupeng
2022-05-19 11:09         ` mawupeng
2022-05-20  6:52           ` Ard Biesheuvel
2022-05-20  6:52             ` Ard Biesheuvel
2022-05-23 11:48               ` mawupeng
2022-05-23  1:18             ` mawupeng
2022-05-23 14:41               ` Ard Biesheuvel
2022-05-24  1:11                 ` mawupeng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).