All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wupeng Ma <mawupeng1@huawei.com>
To: <akpm@linux-foundation.org>, <catalin.marinas@arm.com>,
	<will@kernel.org>, <corbet@lwn.net>
Cc: <ardb@kernel.org>, <tglx@linutronix.de>, <mingo@redhat.com>,
	<bp@alien8.de>, <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	<hpa@zyccr.com>, <dvhart@infradead.org>, <andy@infradead.org>,
	<rppt@kernel.org>, <paulmck@kernel.org>, <peterz@infradead.org>,
	<jroedel@suse.de>, <songmuchun@bytedance.com>,
	<macro@orcam.me.uk>, <frederic@kernel.org>, <W_Armin@gmx.de>,
	<john.garry@huawei.com>, <seanjc@google.com>,
	<tsbogend@alpha.franken.de>, <anshuman.khandual@arm.com>,
	<chenhuacai@kernel.org>, <david@redhat.com>,
	<gpiccoli@igalia.com>, <mark.rutland@arm.com>,
	<wangkefeng.wang@huawei.com>, <mawupeng1@huawei.com>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-efi@vger.kernel.org>, <linux-ia64@vger.kernel.org>,
	<platform-driver-x86@vger.kernel.org>, <linux-mm@kvack.org>
Subject: [PATCH v2 2/9] arm64: efi: Add fake memory support
Date: Thu, 14 Apr 2022 18:13:07 +0800	[thread overview]
Message-ID: <20220414101314.1250667-3-mawupeng1@huawei.com> (raw)
In-Reply-To: <20220414101314.1250667-1-mawupeng1@huawei.com>

From: Ma Wupeng <mawupeng1@huawei.com>

Fake memory map is used for faking memory's attribute values.
Commit 0f96a99dab36 ("efi: Add "efi_fake_mem" boot option") introduce the
efi_fake_mem function. Now it can support arm64 with this patch.
For example you can mark 0-6G memory as EFI_MEMORY_MORE_RELIABLE by adding
efi_fake_mem=6G@0:0x10000 in the bootarg. You find more info about
fake memmap in kernel-parameters.txt.

Variable memstart_addr is only confirmed after arm64_memblock_init(). So
efi_fake_memmap() is needed to add after arm64_memblock_init().

Otherwise:

efi_memmap_alloc
   memblock_phys_alloc
     kmemleak_alloc_phys
        kmemleak_alloc(__va(phys), size, min_count, gfp);

this __va() will convert phys to a fault va and lead to a kmemleak error.

Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 2 +-
 arch/arm64/kernel/setup.c                       | 2 ++
 drivers/firmware/efi/Kconfig                    | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 3f1cc5e317ed..ea47c0ba7593 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1357,7 +1357,7 @@
 			you are really sure that your UEFI does sane gc and
 			fulfills the spec otherwise your board may brick.
 
-	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86]
+	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86; ARM64]
 			Add arbitrary attribute to specific memory range by
 			updating original EFI memory map.
 			Region of memory which aa attribute is added to is
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 3505789cf4bd..daade64889ff 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -344,6 +344,8 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
 
 	arm64_memblock_init();
 
+	efi_fake_memmap();
+
 	paging_init();
 
 	acpi_table_upgrade();
diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig
index 2c3dac5ecb36..3c91bbd4097a 100644
--- a/drivers/firmware/efi/Kconfig
+++ b/drivers/firmware/efi/Kconfig
@@ -50,7 +50,7 @@ config EFI_RUNTIME_MAP
 
 config EFI_FAKE_MEMMAP
 	bool "Enable EFI fake memory map"
-	depends on EFI && X86
+	depends on EFI && (X86 || ARM64)
 	default n
 	help
 	  Saying Y here will enable "efi_fake_mem" boot option.
-- 
2.18.0.huawei.25


WARNING: multiple messages have this Message-ID (diff)
From: Wupeng Ma <mawupeng1@huawei.com>
To: <akpm@linux-foundation.org>, <catalin.marinas@arm.com>,
	<will@kernel.org>,  <corbet@lwn.net>
Cc: <ardb@kernel.org>, <tglx@linutronix.de>, <mingo@redhat.com>,
	<bp@alien8.de>, <dave.hansen@linux.intel.com>, <x86@kernel.org>,
	<hpa@zyccr.com>, <dvhart@infradead.org>, <andy@infradead.org>,
	<rppt@kernel.org>, <paulmck@kernel.org>, <peterz@infradead.org>,
	<jroedel@suse.de>, <songmuchun@bytedance.com>,
	<macro@orcam.me.uk>, <frederic@kernel.org>, <W_Armin@gmx.de>,
	<john.garry@huawei.com>, <seanjc@google.com>,
	<tsbogend@alpha.franken.de>, <anshuman.khandual@arm.com>,
	<chenhuacai@kernel.org>, <david@redhat.com>,
	<gpiccoli@igalia.com>, <mark.rutland@arm.com>,
	<wangkefeng.wang@huawei.com>, <mawupeng1@huawei.com>,
	<linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-efi@vger.kernel.org>, <linux-ia64@vger.kernel.org>,
	<platform-driver-x86@vger.kernel.org>, <linux-mm@kvack.org>
Subject: [PATCH v2 2/9] arm64: efi: Add fake memory support
Date: Thu, 14 Apr 2022 18:13:07 +0800	[thread overview]
Message-ID: <20220414101314.1250667-3-mawupeng1@huawei.com> (raw)
In-Reply-To: <20220414101314.1250667-1-mawupeng1@huawei.com>

From: Ma Wupeng <mawupeng1@huawei.com>

Fake memory map is used for faking memory's attribute values.
Commit 0f96a99dab36 ("efi: Add "efi_fake_mem" boot option") introduce the
efi_fake_mem function. Now it can support arm64 with this patch.
For example you can mark 0-6G memory as EFI_MEMORY_MORE_RELIABLE by adding
efi_fake_mem=6G@0:0x10000 in the bootarg. You find more info about
fake memmap in kernel-parameters.txt.

Variable memstart_addr is only confirmed after arm64_memblock_init(). So
efi_fake_memmap() is needed to add after arm64_memblock_init().

Otherwise:

efi_memmap_alloc
   memblock_phys_alloc
     kmemleak_alloc_phys
        kmemleak_alloc(__va(phys), size, min_count, gfp);

this __va() will convert phys to a fault va and lead to a kmemleak error.

Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 2 +-
 arch/arm64/kernel/setup.c                       | 2 ++
 drivers/firmware/efi/Kconfig                    | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 3f1cc5e317ed..ea47c0ba7593 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1357,7 +1357,7 @@
 			you are really sure that your UEFI does sane gc and
 			fulfills the spec otherwise your board may brick.
 
-	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86]
+	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86; ARM64]
 			Add arbitrary attribute to specific memory range by
 			updating original EFI memory map.
 			Region of memory which aa attribute is added to is
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 3505789cf4bd..daade64889ff 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -344,6 +344,8 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
 
 	arm64_memblock_init();
 
+	efi_fake_memmap();
+
 	paging_init();
 
 	acpi_table_upgrade();
diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig
index 2c3dac5ecb36..3c91bbd4097a 100644
--- a/drivers/firmware/efi/Kconfig
+++ b/drivers/firmware/efi/Kconfig
@@ -50,7 +50,7 @@ config EFI_RUNTIME_MAP
 
 config EFI_FAKE_MEMMAP
 	bool "Enable EFI fake memory map"
-	depends on EFI && X86
+	depends on EFI && (X86 || ARM64)
 	default n
 	help
 	  Saying Y here will enable "efi_fake_mem" boot option.
-- 
2.18.0.huawei.25


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Wupeng Ma <mawupeng1@huawei.com>
To: akpm@linux-foundation.org, catalin.marinas@arm.com,
	will@kernel.org, corbet@lwn.net
Cc: ardb@kernel.org, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org,
	hpa@zyccr.com, dvhart@infradead.org, andy@infradead.org,
	rppt@kernel.org, paulmck@kernel.org, peterz@infradead.org,
	jroedel@suse.de, songmuchun@bytedance.com, macro@orcam.me.uk,
	frederic@kernel.org, W_Armin@gmx.de, john.garry@huawei.com,
	seanjc@google.com, tsbogend@alpha.franken.de,
	anshuman.khandual@arm.com, chenhuacai@kernel.org,
	david@redhat.com, gpiccoli@igalia.com, mark.rutland@arm.com,
	wangkefeng.wang@huawei.com, mawupeng1@huawei.com,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-efi@vger.kernel.org,
	linux-ia64@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	linux-mm@kvack.org
Subject: [PATCH v2 2/9] arm64: efi: Add fake memory support
Date: Thu, 14 Apr 2022 09:54:17 +0000	[thread overview]
Message-ID: <20220414101314.1250667-3-mawupeng1@huawei.com> (raw)
In-Reply-To: <20220414101314.1250667-1-mawupeng1@huawei.com>

From: Ma Wupeng <mawupeng1@huawei.com>

Fake memory map is used for faking memory's attribute values.
Commit 0f96a99dab36 ("efi: Add "efi_fake_mem" boot option") introduce the
efi_fake_mem function. Now it can support arm64 with this patch.
For example you can mark 0-6G memory as EFI_MEMORY_MORE_RELIABLE by adding
efi_fake_mem=6G@0:0x10000 in the bootarg. You find more info about
fake memmap in kernel-parameters.txt.

Variable memstart_addr is only confirmed after arm64_memblock_init(). So
efi_fake_memmap() is needed to add after arm64_memblock_init().

Otherwise:

efi_memmap_alloc
   memblock_phys_alloc
     kmemleak_alloc_phys
        kmemleak_alloc(__va(phys), size, min_count, gfp);

this __va() will convert phys to a fault va and lead to a kmemleak error.

Signed-off-by: Ma Wupeng <mawupeng1@huawei.com>
---
 Documentation/admin-guide/kernel-parameters.txt | 2 +-
 arch/arm64/kernel/setup.c                       | 2 ++
 drivers/firmware/efi/Kconfig                    | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 3f1cc5e317ed..ea47c0ba7593 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1357,7 +1357,7 @@
 			you are really sure that your UEFI does sane gc and
 			fulfills the spec otherwise your board may brick.
 
-	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86]
+	efi_fake_mem=	nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86; ARM64]
 			Add arbitrary attribute to specific memory range by
 			updating original EFI memory map.
 			Region of memory which aa attribute is added to is
diff --git a/arch/arm64/kernel/setup.c b/arch/arm64/kernel/setup.c
index 3505789cf4bd..daade64889ff 100644
--- a/arch/arm64/kernel/setup.c
+++ b/arch/arm64/kernel/setup.c
@@ -344,6 +344,8 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
 
 	arm64_memblock_init();
 
+	efi_fake_memmap();
+
 	paging_init();
 
 	acpi_table_upgrade();
diff --git a/drivers/firmware/efi/Kconfig b/drivers/firmware/efi/Kconfig
index 2c3dac5ecb36..3c91bbd4097a 100644
--- a/drivers/firmware/efi/Kconfig
+++ b/drivers/firmware/efi/Kconfig
@@ -50,7 +50,7 @@ config EFI_RUNTIME_MAP
 
 config EFI_FAKE_MEMMAP
 	bool "Enable EFI fake memory map"
-	depends on EFI && X86
+	depends on EFI && (X86 || ARM64)
 	default n
 	help
 	  Saying Y here will enable "efi_fake_mem" boot option.
-- 
2.18.0.huawei.25

  parent reply	other threads:[~2022-04-14  9:54 UTC|newest]

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

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=20220414101314.1250667-3-mawupeng1@huawei.com \
    --to=mawupeng1@huawei.com \
    --cc=W_Armin@gmx.de \
    --cc=akpm@linux-foundation.org \
    --cc=andy@infradead.org \
    --cc=anshuman.khandual@arm.com \
    --cc=ardb@kernel.org \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@redhat.com \
    --cc=dvhart@infradead.org \
    --cc=frederic@kernel.org \
    --cc=gpiccoli@igalia.com \
    --cc=hpa@zyccr.com \
    --cc=john.garry@huawei.com \
    --cc=jroedel@suse.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=macro@orcam.me.uk \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=rppt@kernel.org \
    --cc=seanjc@google.com \
    --cc=songmuchun@bytedance.com \
    --cc=tglx@linutronix.de \
    --cc=tsbogend@alpha.franken.de \
    --cc=wangkefeng.wang@huawei.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.