[PATCH 1/2] powerpc/fadump: add a warning when 'fadump_reserve_mem=' is used

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3350d

5 messages, 3 authors, 2017-06-05 · open the first message on its own page

[PATCH 1/2] powerpc/fadump: add a warning when 'fadump_reserve_mem=' is used

From: Hari Bathini <hidden>
Date: 2017-05-22 09:35:23

With commit 11550dc0a00b ("powerpc/fadump: reuse crashkernel parameter
for fadump memory reservation"), 'fadump_reserve_mem=' parameter is
deprecated in favor of 'crashkernel=' parameter. Add a warning if
'fadump_reserve_mem=' is still used.

Suggested-by: Prarit Bhargava <redacted>
Signed-off-by: Hari Bathini <redacted>
---
 arch/powerpc/kernel/fadump.c |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 466569e..c0db844 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -212,6 +212,10 @@ static inline unsigned long fadump_calculate_reserve_size(void)
 	int ret;
 	unsigned long long base, size;
 
+	if (fw_dump.reserve_bootvar)
+		pr_warn("'fadump_reserve_mem=' parameter is deprecated in "
+			"favor of 'crashkernel=' parameter.\n");
+
 	/*
 	 * Check if the size is specified through crashkernel= cmdline
 	 * option. If yes, then use that but ignore base as fadump
@@ -220,8 +224,18 @@ static inline unsigned long fadump_calculate_reserve_size(void)
 	ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
 				&size, &base);
 	if (ret == 0 && size > 0) {
+		if (fw_dump.reserve_bootvar)
+			pr_info("Using 'crashkernel=' parameter for"
+				" memory reservation.\n");
+
 		fw_dump.reserve_bootvar = (unsigned long)size;
 		return fw_dump.reserve_bootvar;
+	} else if (fw_dump.reserve_bootvar) {
+		/*
+		 * 'fadump_reserve_mem=' is being used to reserve memory
+		 * for firmware-assisted dump.
+		 */
+		return fw_dump.reserve_bootvar;
 	}
 
 	/* divide by 20 to get 5% of value */
@@ -377,6 +391,19 @@ static int __init early_fadump_param(char *p)
 }
 early_param("fadump", early_fadump_param);
 
+/*
+ * Look for fadump_reserve_mem= cmdline option
+ * TODO: Remove references to 'fadump_reserve_mem=' parameter,
+ *       the sooner 'crashkernel=' parameter is accustomed to.
+ */
+static int __init early_fadump_reserve_mem(char *p)
+{
+	if (p)
+		fw_dump.reserve_bootvar = memparse(p, &p);
+	return 0;
+}
+early_param("fadump_reserve_mem", early_fadump_reserve_mem);
+
 static void register_fw_dump(struct fadump_mem_struct *fdm)
 {
 	int rc;

[PATCH 2/2] powerpc/fadump: update about offset where fadump is reserved

From: Hari Bathini <hidden>
Date: 2017-05-22 09:35:55

With commit f6e6bedb7731 ("powerpc/fadump: Reserve memory at an offset
closer to bottom of RAM"), memory for fadump is no longer reserved at
the top of RAM. But there are still a few places which say so. Change
them appropriately.

Signed-off-by: Hari Bathini <redacted>
---
 Documentation/powerpc/firmware-assisted-dump.txt |    4 ++--
 arch/powerpc/kernel/fadump.c                     |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/powerpc/firmware-assisted-dump.txt b/Documentation/powerpc/firmware-assisted-dump.txt
index 9cabaf8..bdd344a 100644
--- a/Documentation/powerpc/firmware-assisted-dump.txt
+++ b/Documentation/powerpc/firmware-assisted-dump.txt
@@ -61,8 +61,8 @@ as follows:
          boot successfully. For syntax of crashkernel= parameter,
          refer to Documentation/kdump/kdump.txt. If any offset is
          provided in crashkernel= parameter, it will be ignored
-         as fadump reserves memory at end of RAM for boot memory
-         dump preservation in case of a crash.
+         as fadump uses a predefined offset to reserve memory
+         for boot memory dump preservation in case of a crash.
 
 -- After the low memory (boot memory) area has been saved, the
    firmware will reset PCI and other hardware state.  It will
diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index c0db844..63c4281 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -218,8 +218,8 @@ static inline unsigned long fadump_calculate_reserve_size(void)
 
 	/*
 	 * Check if the size is specified through crashkernel= cmdline
-	 * option. If yes, then use that but ignore base as fadump
-	 * reserves memory at end of RAM.
+	 * option. If yes, then use that but ignore base as fadump reserves
+	 * memory at a predefined offset.
 	 */
 	ret = parse_crashkernel(boot_command_line, memblock_phys_mem_size(),
 				&size, &base);

Re: [PATCH 2/2] powerpc/fadump: update about offset where fadump is reserved

From: Michal Suchánek <hidden>
Date: 2017-05-22 10:55:24

On Mon, 22 May 2017 15:04:47 +0530
Hari Bathini [off-list ref] wrote:
quoted hunk
With commit f6e6bedb7731 ("powerpc/fadump: Reserve memory at an offset
closer to bottom of RAM"), memory for fadump is no longer reserved at
the top of RAM. But there are still a few places which say so. Change
them appropriately.

Signed-off-by: Hari Bathini <redacted>
---
 Documentation/powerpc/firmware-assisted-dump.txt |    4 ++--
 arch/powerpc/kernel/fadump.c                     |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/powerpc/firmware-assisted-dump.txt
b/Documentation/powerpc/firmware-assisted-dump.txt index
9cabaf8..bdd344a 100644 ---
a/Documentation/powerpc/firmware-assisted-dump.txt +++
b/Documentation/powerpc/firmware-assisted-dump.txt @@ -61,8 +61,8 @@
as follows: boot successfully. For syntax of crashkernel= parameter,
          refer to Documentation/kdump/kdump.txt. If any offset is
          provided in crashkernel= parameter, it will be ignored
-         as fadump reserves memory at end of RAM for boot memory
-         dump preservation in case of a crash.
+         as fadump uses a predefined offset to reserve memory
+         for boot memory dump preservation in case of a crash.
What is the reason for fadump to prefer a random offset calculated by
the kernel over a random offset supplied by the user?

Since the random offset calculated by the kernel was recently adjusted
to counter issues with fadump registration maybe it would be reasonable
to allow the user to supply a custom random offset and override the
kernel-calculated random offset if they want to do so.

PS 'random' meaning in no relationship to actual system topology that
would warrant this offset to be in any way better than any other.

Thanks

Michal

Re: [PATCH 2/2] powerpc/fadump: update about offset where fadump is reserved

From: Hari Bathini <hidden>
Date: 2017-05-22 18:57:41

Hi Michal,

Thanks for the review..

On Monday 22 May 2017 04:25 PM, Michal Suchánek wrote:
On Mon, 22 May 2017 15:04:47 +0530
Hari Bathini [off-list ref] wrote:
quoted
With commit f6e6bedb7731 ("powerpc/fadump: Reserve memory at an offset
closer to bottom of RAM"), memory for fadump is no longer reserved at
the top of RAM. But there are still a few places which say so. Change
them appropriately.

Signed-off-by: Hari Bathini <redacted>
---
  Documentation/powerpc/firmware-assisted-dump.txt |    4 ++--
  arch/powerpc/kernel/fadump.c                     |    4 ++--
  2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/powerpc/firmware-assisted-dump.txt
b/Documentation/powerpc/firmware-assisted-dump.txt index
9cabaf8..bdd344a 100644 ---
a/Documentation/powerpc/firmware-assisted-dump.txt +++
b/Documentation/powerpc/firmware-assisted-dump.txt @@ -61,8 +61,8 @@
as follows: boot successfully. For syntax of crashkernel= parameter,
           refer to Documentation/kdump/kdump.txt. If any offset is
           provided in crashkernel= parameter, it will be ignored
-         as fadump reserves memory at end of RAM for boot memory
-         dump preservation in case of a crash.
+         as fadump uses a predefined offset to reserve memory
+         for boot memory dump preservation in case of a crash.
What is the reason for fadump to prefer a random offset calculated by
the kernel over a random offset supplied by the user?
An offset provided by user needs multiple checks failing which can be 
tricky.
While implementation is still possible, it makes the code complicated for no
practical gain as commit f6e6bedb7731 is already calculating the best 
possible
offset..

Thanks
Hari

Re: [1/2] powerpc/fadump: add a warning when 'fadump_reserve_mem=' is used

From: Michael Ellerman <hidden>
Date: 2017-06-05 10:21:51

On Mon, 2017-05-22 at 09:34:23 UTC, Hari Bathini wrote:
With commit 11550dc0a00b ("powerpc/fadump: reuse crashkernel parameter
for fadump memory reservation"), 'fadump_reserve_mem=' parameter is
deprecated in favor of 'crashkernel=' parameter. Add a warning if
'fadump_reserve_mem=' is still used.

Suggested-by: Prarit Bhargava <redacted>
Signed-off-by: Hari Bathini <redacted>
Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/81d9eca502fcc360950ef476124626

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help