[PATCH] makedumpfile: Enable --mem-usage for s390x
Michael Holzheu
holzheu at linux.vnet.ibm.com
Mon Sep 29 06:14:13 PDT 2014
Implement is_vmalloc_addr() using /proc/iommem parsing to enable the new
makedumpfile option "--mem-usage".
Signed-off-by: Michael Holzheu <holzheu at linux.vnet.ibm.com>
---
makedumpfile.c | 26 ++++++++++++++++++++++++++
makedumpfile.h | 3 ++-
2 files changed, 28 insertions(+), 1 deletion(-)
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -9227,6 +9227,32 @@ int is_crashkernel_mem_reserved(void)
return !!crash_reserved_mem_nr;
}
+struct addr_check {
+ unsigned long addr;
+ int found;
+};
+
+static int phys_addr_callback(void *data, int nr, char *str,
+ unsigned long base, unsigned long length)
+{
+ struct addr_check *addr_check = data;
+ unsigned long addr = addr_check->addr;
+
+ if (addr >= base && addr < base + length) {
+ addr_check->found = 1;
+ return -1;
+ }
+ return 0;
+}
+
+int is_iomem_phys_addr(unsigned long addr)
+{
+ struct addr_check addr_check = {addr, 0};
+
+ iomem_for_each_line("System RAM\n", phys_addr_callback, &addr_check);
+ return addr_check.found;
+}
+
static int get_page_offset(void)
{
struct utsname utsname;
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -820,7 +820,7 @@ unsigned long long vaddr_to_paddr_s390x(
#define get_machdep_info() get_machdep_info_s390x()
#define get_versiondep_info() TRUE
#define vaddr_to_paddr(X) vaddr_to_paddr_s390x(X)
-#define is_vmalloc_addr(X) TRUE
+#define is_vmalloc_addr(X) (!is_iomem_phys_addr(X))
#endif /* s390x */
#ifdef __ia64__ /* ia64 */
@@ -1567,6 +1567,7 @@ int read_disk_dump_header(struct disk_du
int read_kdump_sub_header(struct kdump_sub_header *kh, char *filename);
void close_vmcoreinfo(void);
int close_files_for_creating_dumpfile(void);
+int is_iomem_phys_addr(unsigned long addr);
/*
More information about the kexec
mailing list