Discussion:
[PATCH] memmap: Parse "Reserved" together with "reserved"
Yinghai Lu
2017-04-26 00:55:26 UTC
Permalink
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.

So here, we add handling for that too.

Signed-off-by: Yinghai Lu <***@kernel.org>

---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)

Index: kexec-tools/kexec/arch/i386/crashdump-x86.c
===================================================================
--- kexec-tools.orig/kexec/arch/i386/crashdump-x86.c
+++ kexec-tools/kexec/arch/i386/crashdump-x86.c
@@ -323,6 +323,8 @@ static int get_crash_memory_ranges(struc
type = RANGE_PMEM;
} else if(memcmp(str,"reserved\n",9) == 0 ) {
type = RANGE_RESERVED;
+ } else if(memcmp(str,"Reserved\n",9) == 0 ) {
+ type = RANGE_RESERVED;
} else if (memcmp(str, "GART\n", 5) == 0) {
gart_start = start;
gart_end = end;
Index: kexec-tools/kexec/arch/ia64/kexec-ia64.c
===================================================================
--- kexec-tools.orig/kexec/arch/ia64/kexec-ia64.c
+++ kexec-tools/kexec/arch/ia64/kexec-ia64.c
@@ -117,6 +117,8 @@ int get_memory_ranges(struct memory_rang
}
else if (memcmp(str, "reserved\n", 9) == 0) {
type = RANGE_RESERVED;
+ else if (memcmp(str, "Reserved\n", 9) == 0) {
+ type = RANGE_RESERVED;
}
else if (memcmp(str, "Crash kernel\n", 13) == 0) {
/* Redefine the memory region boundaries if kernel
Index: kexec-tools/kexec/arch/mips/kexec-mips.c
===================================================================
--- kexec-tools.orig/kexec/arch/mips/kexec-mips.c
+++ kexec-tools/kexec/arch/mips/kexec-mips.c
@@ -57,6 +57,8 @@ int get_memory_ranges(struct memory_rang
type = RANGE_RAM;
} else if (memcmp(str, "reserved\n", 9) == 0) {
type = RANGE_RESERVED;
+ } else if (memcmp(str, "Reserved\n", 9) == 0) {
+ type = RANGE_RESERVED;
} else {
continue;
}
Index: kexec-tools/kexec/firmware_memmap.c
===================================================================
--- kexec-tools.orig/kexec/firmware_memmap.c
+++ kexec-tools/kexec/firmware_memmap.c
@@ -164,6 +164,8 @@ static int parse_memmap_entry(const char
range->type = RANGE_RESERVED;
else if (strcmp(type, "reserved") == 0)
range->type = RANGE_RESERVED;
+ else if (strcmp(type, "Reserved") == 0)
+ range->type = RANGE_RESERVED;
else if (strcmp(type, "ACPI Non-volatile Storage") == 0)
range->type = RANGE_ACPI_NVS;
else if (strcmp(type, "Uncached RAM") == 0)
Dave Young
2017-04-26 06:01:13 UTC
Permalink
Post by Yinghai Lu
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
Need to mention that this is not in mainline yet.
Post by Yinghai Lu
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.
So here, we add handling for that too.
---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
The tip commit only changes x86, so mips and ia64 are not needed here?
Post by Yinghai Lu
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)
Index: kexec-tools/kexec/arch/i386/crashdump-x86.c
===================================================================
--- kexec-tools.orig/kexec/arch/i386/crashdump-x86.c
+++ kexec-tools/kexec/arch/i386/crashdump-x86.c
@@ -323,6 +323,8 @@ static int get_crash_memory_ranges(struc
type = RANGE_PMEM;
} else if(memcmp(str,"reserved\n",9) == 0 ) {
type = RANGE_RESERVED;
+ } else if(memcmp(str,"Reserved\n",9) == 0 ) {
+ type = RANGE_RESERVED;
} else if (memcmp(str, "GART\n", 5) == 0) {
gart_start = start;
gart_end = end;
Index: kexec-tools/kexec/arch/ia64/kexec-ia64.c
===================================================================
--- kexec-tools.orig/kexec/arch/ia64/kexec-ia64.c
+++ kexec-tools/kexec/arch/ia64/kexec-ia64.c
@@ -117,6 +117,8 @@ int get_memory_ranges(struct memory_rang
}
else if (memcmp(str, "reserved\n", 9) == 0) {
type = RANGE_RESERVED;
+ else if (memcmp(str, "Reserved\n", 9) == 0) {
+ type = RANGE_RESERVED;
}
else if (memcmp(str, "Crash kernel\n", 13) == 0) {
/* Redefine the memory region boundaries if kernel
Index: kexec-tools/kexec/arch/mips/kexec-mips.c
===================================================================
--- kexec-tools.orig/kexec/arch/mips/kexec-mips.c
+++ kexec-tools/kexec/arch/mips/kexec-mips.c
@@ -57,6 +57,8 @@ int get_memory_ranges(struct memory_rang
type = RANGE_RAM;
} else if (memcmp(str, "reserved\n", 9) == 0) {
type = RANGE_RESERVED;
+ } else if (memcmp(str, "Reserved\n", 9) == 0) {
+ type = RANGE_RESERVED;
} else {
continue;
}
Index: kexec-tools/kexec/firmware_memmap.c
===================================================================
--- kexec-tools.orig/kexec/firmware_memmap.c
+++ kexec-tools/kexec/firmware_memmap.c
@@ -164,6 +164,8 @@ static int parse_memmap_entry(const char
range->type = RANGE_RESERVED;
else if (strcmp(type, "reserved") == 0)
range->type = RANGE_RESERVED;
+ else if (strcmp(type, "Reserved") == 0)
+ range->type = RANGE_RESERVED;
else if (strcmp(type, "ACPI Non-volatile Storage") == 0)
range->type = RANGE_ACPI_NVS;
else if (strcmp(type, "Uncached RAM") == 0)
_______________________________________________
kexec mailing list
http://lists.infradead.org/mailman/listinfo/kexec
Thanks
Dave
Ingo Molnar
2017-04-26 06:22:47 UTC
Permalink
Post by Yinghai Lu
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.
So here, we add handling for that too.
---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)
I'd rather fix the bug I introduced and undo the reserved->Reserved string change
in e820.c: I didn't realize that it's exposed in sysfs and had quasi-ABI
consequences for kexec.

Agreed?

Thanks,

Ingo
Dave Young
2017-04-26 07:28:46 UTC
Permalink
Post by Ingo Molnar
Post by Yinghai Lu
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.
So here, we add handling for that too.
---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)
I'd rather fix the bug I introduced and undo the reserved->Reserved string change
This patch parses both 'reserved' and 'Reserved' it should be fine, but
reverting the change in kernel sounds better..
Post by Ingo Molnar
in e820.c: I didn't realize that it's exposed in sysfs and had quasi-ABI
consequences for kexec.
Agreed?
Thanks,
Ingo
_______________________________________________
kexec mailing list
http://lists.infradead.org/mailman/listinfo/kexec
Thanks
Dave
Dave Young
2017-04-26 07:31:48 UTC
Permalink
Post by Dave Young
Post by Ingo Molnar
Post by Yinghai Lu
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.
So here, we add handling for that too.
---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)
I'd rather fix the bug I introduced and undo the reserved->Reserved string change
This patch parses both 'reserved' and 'Reserved' it should be fine, but
reverting the change in kernel sounds better..
Hmm, after press sending I noticed old kexec-tools with new kernel, it
is still a problem, so we'd better to revert the kernel changes.
Post by Dave Young
Post by Ingo Molnar
in e820.c: I didn't realize that it's exposed in sysfs and had quasi-ABI
consequences for kexec.
Agreed?
Thanks,
Ingo
_______________________________________________
kexec mailing list
http://lists.infradead.org/mailman/listinfo/kexec
Thanks
Dave
Simon Horman
2017-04-26 10:49:24 UTC
Permalink
Post by Dave Young
Post by Dave Young
Post by Ingo Molnar
Post by Yinghai Lu
For x86 with recent kernel after
commit 640e1b38b0 ("x86/boot/e820: Basic cleanup of e820.c")
change "reserved" to "Reserved" in /sys firmware memmap and /proc/iomem.
So here, we add handling for that too.
---
kexec/arch/i386/crashdump-x86.c | 2 ++
kexec/arch/ia64/kexec-ia64.c | 2 ++
kexec/arch/mips/kexec-mips.c | 2 ++
kexec/firmware_memmap.c | 2 ++
4 files changed, 8 insertions(+)
I'd rather fix the bug I introduced and undo the reserved->Reserved string change
This patch parses both 'reserved' and 'Reserved' it should be fine, but
reverting the change in kernel sounds better..
Hmm, after press sending I noticed old kexec-tools with new kernel, it
is still a problem, so we'd better to revert the kernel changes.
FWIW, if the kernel change hasn't hit a release then reverting (the
reserved->Reserved portion of) it would be my preference.
Post by Dave Young
Post by Dave Young
Post by Ingo Molnar
in e820.c: I didn't realize that it's exposed in sysfs and had quasi-ABI
consequences for kexec.
Agreed?
Thanks,
Ingo
_______________________________________________
kexec mailing list
http://lists.infradead.org/mailman/listinfo/kexec
Thanks
Dave
Loading...