All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] makedumpfile: Add support of mm randomization
@ 2016-08-29  8:54 Baoquan He
  2016-08-29  8:54 ` [PATCH 1/3] makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns) earlier Baoquan He
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Baoquan He @ 2016-08-29  8:54 UTC (permalink / raw)
  To: kexec; +Cc: kumagai-atsushi, thgarnie, Baoquan He

Hi Atsushi and Thomas,

This is a draft patchset. I just checked x86_64 implementation according to
Thomas's mm randomization related patches. Not sure if this will affect
other ARCH or XEN. Especially for patch 1/3 and patch 2/3, just a original
idea. I tested on x86_64, passed.

And also kernel patch need be adjusted so that number_table.X of makedumpfile
can be used. Will add comment to Thomas's kernel patch.

Baoquan He (3):
  makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns)
    earlier
  makedumpfile: Move get_versiondep_info calling earlier
  makedumpfile: Add support for MM randomization

 arch/x86_64.c  | 26 +++++++++-----------------
 makedumpfile.c | 45 ++++++++++++++++++++++++++++++++++++---------
 makedumpfile.h |  3 +++
 3 files changed, 48 insertions(+), 26 deletions(-)

-- 
2.5.5


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* [PATCH 1/3] makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns) earlier
  2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
@ 2016-08-29  8:54 ` Baoquan He
  2016-08-29  8:54 ` [PATCH 2/3] makedumpfile: Move get_versiondep_info calling earlier Baoquan He
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 15+ messages in thread
From: Baoquan He @ 2016-08-29  8:54 UTC (permalink / raw)
  To: kexec; +Cc: kumagai-atsushi, thgarnie, Baoquan He

The current code assign value to info->kernel_version in check_release,
this is too late and buggy. Because in check_release(), it needs call
readmem, however earlier get_value_for_old_linux depends on
info->kernel_version to get correct KERNEL_IMAGE_SIZE for MODULES_VADDR
which is used in is_vmalloc_addr_x86_64(). This looks a weird circle.

Since we have export "OSRELEASE=%s\n" explicitly in kernel, we should
always use it to get kernel version. And this breaks above weird circle.
Otherwise MM randomization will come and make it worse.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
 makedumpfile.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index 21784e8..ce68d61 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -1139,12 +1139,6 @@ check_release(void)
 		}
 	}
 
-	info->kernel_version = get_kernel_version(info->system_utsname.release);
-	if (info->kernel_version == FALSE) {
-		ERRMSG("Can't get the kernel version.\n");
-		return FALSE;
-	}
-
 	return TRUE;
 }
 
@@ -3832,6 +3826,12 @@ initial(void)
 		debug_info = TRUE;
 	}
 
+	info->kernel_version = get_kernel_version(info.release);
+	if (info->kernel_version == FALSE) {
+		ERRMSG("Can't get the kernel version.\n");
+		return FALSE;
+	}
+
 	if (!get_value_for_old_linux())
 		return FALSE;
 
-- 
2.5.5


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* [PATCH 2/3] makedumpfile: Move get_versiondep_info calling earlier
  2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
  2016-08-29  8:54 ` [PATCH 1/3] makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns) earlier Baoquan He
@ 2016-08-29  8:54 ` Baoquan He
  2016-08-29  8:54 ` [PATCH 3/3] makedumpfile: Add support for MM randomization Baoquan He
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 15+ messages in thread
From: Baoquan He @ 2016-08-29  8:54 UTC (permalink / raw)
  To: kexec; +Cc: kumagai-atsushi, thgarnie, Baoquan He

Because is_vmalloc_addr_x86_64 need called very early, e.g in readmem().
So we have to move get_versiondep_info calling earlier to make
PAGE_OFFSET/VMALLOC_START/VMEMMAP_START get value before use them.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
 makedumpfile.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index ce68d61..2713f8a 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3835,6 +3835,9 @@ initial(void)
 	if (!get_value_for_old_linux())
 		return FALSE;
 
+	if (!get_versiondep_info())
+		return FALSE;
+
 	if (info->flag_mem_usage && !get_kcore_dump_loads())
 		return FALSE;
 
@@ -3986,9 +3989,6 @@ out:
 		if (!check_release())
 			return FALSE;
 
-		if (!get_versiondep_info())
-			return FALSE;
-
 		/*
 		 * NOTE: This must be done before refering to
 		 * VMALLOC'ed memory. The first 640kB contains data
-- 
2.5.5


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* [PATCH 3/3] makedumpfile: Add support for MM randomization
  2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
  2016-08-29  8:54 ` [PATCH 1/3] makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns) earlier Baoquan He
  2016-08-29  8:54 ` [PATCH 2/3] makedumpfile: Move get_versiondep_info calling earlier Baoquan He
@ 2016-08-29  8:54 ` Baoquan He
  2016-08-31  7:56   ` Atsushi Kumagai
  2016-08-29  9:03 ` [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
  2016-09-22  8:45 ` Dave Young
  4 siblings, 1 reply; 15+ messages in thread
From: Baoquan He @ 2016-08-29  8:54 UTC (permalink / raw)
  To: kexec; +Cc: kumagai-atsushi, thgarnie, Baoquan He

In kernel patchset "x86/mm: memory area address KASLR", PAGE_OFFSET,
VMALLOC_START and VMEMMAP_START are all randomized. Please check below
link:
	https://lwn.net/Articles/692289/

And these need be exported into vmcoreinfo and tell makedumpfile. In
this patch get and handle them to support MM randomization.

Signed-off-by: Baoquan He <bhe@redhat.com>
---
 arch/x86_64.c  | 26 +++++++++-----------------
 makedumpfile.c | 29 ++++++++++++++++++++++++++++-
 makedumpfile.h |  3 +++
 3 files changed, 40 insertions(+), 18 deletions(-)

diff --git a/arch/x86_64.c b/arch/x86_64.c
index ddf7be6..ff787cc 100644
--- a/arch/x86_64.c
+++ b/arch/x86_64.c
@@ -146,8 +146,9 @@ get_machdep_info_x86_64(void)
 	return TRUE;
 }
 
-int
-get_versiondep_info_x86_64(void)
+#define VMALLOC_SIZE            (0x200000000000)
+#define VMEMMAP_SIZE            (0x10000000000)
+int get_versiondep_info_x86_64(void)
 {
 	/*
 	 * On linux-2.6.26, MAX_PHYSMEM_BITS is changed to 44 from 40.
@@ -159,22 +160,13 @@ get_versiondep_info_x86_64(void)
 	else
 		info->max_physmem_bits  = _MAX_PHYSMEM_BITS_2_6_31;
 
-	if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
-		info->page_offset = __PAGE_OFFSET_ORIG;
-	else
-		info->page_offset = __PAGE_OFFSET_2_6_27;
+	info->page_offset = NUMBER(page_offset);
 
-	if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
-		info->vmalloc_start = VMALLOC_START_ORIG;
-		info->vmalloc_end   = VMALLOC_END_ORIG;
-		info->vmemmap_start = VMEMMAP_START_ORIG;
-		info->vmemmap_end   = VMEMMAP_END_ORIG;
-	} else {
-		info->vmalloc_start = VMALLOC_START_2_6_31;
-		info->vmalloc_end   = VMALLOC_END_2_6_31;
-		info->vmemmap_start = VMEMMAP_START_2_6_31;
-		info->vmemmap_end   = VMEMMAP_END_2_6_31;
-	}
+
+	info->vmalloc_start = NUMBER(vmalloc_start);
+	info->vmalloc_end   = info->vmalloc_start + VMALLOC_SIZE - 1;
+	info->vmemmap_start = NUMBER(vmemmap_start);
+	info->vmemmap_end   = info->vmemmap_start + VMEMMAP_SIZE - 1;
 
 	return TRUE;
 }
diff --git a/makedumpfile.c b/makedumpfile.c
index 2713f8a..6b0c6ab 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -1985,6 +1985,7 @@ get_value_for_old_linux(void)
 			NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) =
 			PAGE_BUDDY_MAPCOUNT_VALUE_v2_6_39_to_latest_version;
 	}
+	ERRMSG("info->kernel_version=%d\n", info->kernel_version);
 #ifdef __x86_64__
 	if (NUMBER(KERNEL_IMAGE_SIZE) == NOT_FOUND_NUMBER) {
 		if (info->kernel_version < KERNEL_VERSION(2, 6, 26))
@@ -1992,6 +1993,26 @@ get_value_for_old_linux(void)
 		else
 			NUMBER(KERNEL_IMAGE_SIZE) = KERNEL_IMAGE_SIZE_2_6_26;
 	}
+	if (NUMBER(page_offset) == NOT_FOUND_NUMBER) {
+		if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
+			NUMBER(page_offset) = __PAGE_OFFSET_ORIG;
+		else
+			NUMBER(page_offset) = __PAGE_OFFSET_2_6_27;
+	}
+	if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER) {
+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
+			NUMBER(vmalloc_start) = VMALLOC_START_ORIG;
+		} else {
+			NUMBER(vmalloc_start) = VMALLOC_START_2_6_31;
+		}
+	}
+	if (NUMBER(vmemmap_start) == NOT_FOUND_NUMBER) {
+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31))
+			NUMBER(vmemmap_start) = VMEMMAP_START_ORIG;
+		else
+			NUMBER(vmemmap_start) = VMEMMAP_START_2_6_31;
+	}
+
 #endif
 	if (SIZE(pageflags) == NOT_FOUND_STRUCTURE) {
 		if (info->kernel_version >= KERNEL_VERSION(2, 6, 27))
@@ -2249,6 +2270,9 @@ write_vmcoreinfo_data(void)
 
 	WRITE_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
 	WRITE_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
+	WRITE_NUMBER("PAGE_OFFSET", page_offset);
+	WRITE_NUMBER("VMALLOC_START", vmalloc_start);
+	WRITE_NUMBER("VMEMMAP_START", vmemmap_start);
 
 	WRITE_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
 
@@ -2595,6 +2619,9 @@ read_vmcoreinfo(void)
 
 	READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
 	READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
+	READ_NUMBER("PAGE_OFFSET", page_offset);
+	READ_NUMBER("VMALLOC_START", vmalloc_start);
+	READ_NUMBER("VMEMMAP_START", vmemmap_start);
 
 	READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
 
@@ -3826,7 +3853,7 @@ initial(void)
 		debug_info = TRUE;
 	}
 
-	info->kernel_version = get_kernel_version(info.release);
+	info->kernel_version = get_kernel_version(info->release);
 	if (info->kernel_version == FALSE) {
 		ERRMSG("Can't get the kernel version.\n");
 		return FALSE;
diff --git a/makedumpfile.h b/makedumpfile.h
index 533e5b8..0e34fae 100644
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -1685,6 +1685,9 @@ struct number_table {
 
 	long	PAGE_BUDDY_MAPCOUNT_VALUE;
 	long	KERNEL_IMAGE_SIZE;
+	long	page_offset;
+	long	vmalloc_start;
+	long	vmemmap_start;
 	long	SECTION_SIZE_BITS;
 	long	MAX_PHYSMEM_BITS;
 	long    HUGETLB_PAGE_DTOR;
-- 
2.5.5


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
                   ` (2 preceding siblings ...)
  2016-08-29  8:54 ` [PATCH 3/3] makedumpfile: Add support for MM randomization Baoquan He
@ 2016-08-29  9:03 ` Baoquan He
  2016-09-22  8:45 ` Dave Young
  4 siblings, 0 replies; 15+ messages in thread
From: Baoquan He @ 2016-08-29  9:03 UTC (permalink / raw)
  To: kexec; +Cc: ats-kumagai, thgarnie

Sorry, I just copied Atsushi's mail address from an very old git commit.

CC again.

On 08/29/16 at 04:54pm, Baoquan He wrote:
> Hi Atsushi and Thomas,
> 
> This is a draft patchset. I just checked x86_64 implementation according to
> Thomas's mm randomization related patches. Not sure if this will affect
> other ARCH or XEN. Especially for patch 1/3 and patch 2/3, just a original
> idea. I tested on x86_64, passed.
> 
> And also kernel patch need be adjusted so that number_table.X of makedumpfile
> can be used. Will add comment to Thomas's kernel patch.
> 
> Baoquan He (3):
>   makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns)
>     earlier
>   makedumpfile: Move get_versiondep_info calling earlier
>   makedumpfile: Add support for MM randomization
> 
>  arch/x86_64.c  | 26 +++++++++-----------------
>  makedumpfile.c | 45 ++++++++++++++++++++++++++++++++++++---------
>  makedumpfile.h |  3 +++
>  3 files changed, 48 insertions(+), 26 deletions(-)
> 
> -- 
> 2.5.5
> 
> 
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* RE: [PATCH 3/3] makedumpfile: Add support for MM randomization
  2016-08-29  8:54 ` [PATCH 3/3] makedumpfile: Add support for MM randomization Baoquan He
@ 2016-08-31  7:56   ` Atsushi Kumagai
  2016-09-30  4:56     ` Baoquan He
  0 siblings, 1 reply; 15+ messages in thread
From: Atsushi Kumagai @ 2016-08-31  7:56 UTC (permalink / raw)
  To: Baoquan He; +Cc: kexec, thgarnie

Hello Baoquan,

Thanks for your work, I have some comments below.

>In kernel patchset "x86/mm: memory area address KASLR", PAGE_OFFSET,
>VMALLOC_START and VMEMMAP_START are all randomized. Please check below
>link:
>	https://lwn.net/Articles/692289/
>
>And these need be exported into vmcoreinfo and tell makedumpfile. In
>this patch get and handle them to support MM randomization.
>
>Signed-off-by: Baoquan He <bhe@redhat.com>
>---
> arch/x86_64.c  | 26 +++++++++-----------------
> makedumpfile.c | 29 ++++++++++++++++++++++++++++-
> makedumpfile.h |  3 +++
> 3 files changed, 40 insertions(+), 18 deletions(-)
>
>diff --git a/arch/x86_64.c b/arch/x86_64.c
>index ddf7be6..ff787cc 100644
>--- a/arch/x86_64.c
>+++ b/arch/x86_64.c
>@@ -146,8 +146,9 @@ get_machdep_info_x86_64(void)
> 	return TRUE;
> }
>
>-int
>-get_versiondep_info_x86_64(void)
>+#define VMALLOC_SIZE            (0x200000000000)
>+#define VMEMMAP_SIZE            (0x10000000000)
>+int get_versiondep_info_x86_64(void)
> {
> 	/*
> 	 * On linux-2.6.26, MAX_PHYSMEM_BITS is changed to 44 from 40.
>@@ -159,22 +160,13 @@ get_versiondep_info_x86_64(void)
> 	else
> 		info->max_physmem_bits  = _MAX_PHYSMEM_BITS_2_6_31;
>
>-	if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
>-		info->page_offset = __PAGE_OFFSET_ORIG;
>-	else
>-		info->page_offset = __PAGE_OFFSET_2_6_27;
>+	info->page_offset = NUMBER(page_offset);
>
>-	if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
>-		info->vmalloc_start = VMALLOC_START_ORIG;
>-		info->vmalloc_end   = VMALLOC_END_ORIG;
>-		info->vmemmap_start = VMEMMAP_START_ORIG;
>-		info->vmemmap_end   = VMEMMAP_END_ORIG;
>-	} else {
>-		info->vmalloc_start = VMALLOC_START_2_6_31;
>-		info->vmalloc_end   = VMALLOC_END_2_6_31;
>-		info->vmemmap_start = VMEMMAP_START_2_6_31;
>-		info->vmemmap_end   = VMEMMAP_END_2_6_31;
>-	}

These *_END_* are no longer used, it's better to remove the definitions
of them.

>+
>+	info->vmalloc_start = NUMBER(vmalloc_start);
>+	info->vmalloc_end   = info->vmalloc_start + VMALLOC_SIZE - 1;
>+	info->vmemmap_start = NUMBER(vmemmap_start);
>+	info->vmemmap_end   = info->vmemmap_start + VMEMMAP_SIZE - 1;
>
> 	return TRUE;
> }
>diff --git a/makedumpfile.c b/makedumpfile.c
>index 2713f8a..6b0c6ab 100644
>--- a/makedumpfile.c
>+++ b/makedumpfile.c
>@@ -1985,6 +1985,7 @@ get_value_for_old_linux(void)
> 			NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) =
> 			PAGE_BUDDY_MAPCOUNT_VALUE_v2_6_39_to_latest_version;
> 	}
>+	ERRMSG("info->kernel_version=%d\n", info->kernel_version);

Is this just a debug message ?

> #ifdef __x86_64__
> 	if (NUMBER(KERNEL_IMAGE_SIZE) == NOT_FOUND_NUMBER) {
> 		if (info->kernel_version < KERNEL_VERSION(2, 6, 26))
>@@ -1992,6 +1993,26 @@ get_value_for_old_linux(void)
> 		else
> 			NUMBER(KERNEL_IMAGE_SIZE) = KERNEL_IMAGE_SIZE_2_6_26;
> 	}
>+	if (NUMBER(page_offset) == NOT_FOUND_NUMBER) {
>+		if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
>+			NUMBER(page_offset) = __PAGE_OFFSET_ORIG;
>+		else
>+			NUMBER(page_offset) = __PAGE_OFFSET_2_6_27;
>+	}
>+	if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER) {
>+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
>+			NUMBER(vmalloc_start) = VMALLOC_START_ORIG;
>+		} else {
>+			NUMBER(vmalloc_start) = VMALLOC_START_2_6_31;
>+		}
>+	}
>+	if (NUMBER(vmemmap_start) == NOT_FOUND_NUMBER) {
>+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31))
>+			NUMBER(vmemmap_start) = VMEMMAP_START_ORIG;
>+		else
>+			NUMBER(vmemmap_start) = VMEMMAP_START_2_6_31;
>+	}
>+

(I should have said this when you post the early kaslr patch.)
This logic is only for x86_64, I don't like to take it out to 
here(general pass) with #ifdef. Is there any necessity to write
this code here ?

> #endif
> 	if (SIZE(pageflags) == NOT_FOUND_STRUCTURE) {
> 		if (info->kernel_version >= KERNEL_VERSION(2, 6, 27))
>@@ -2249,6 +2270,9 @@ write_vmcoreinfo_data(void)
>
> 	WRITE_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
> 	WRITE_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
>+	WRITE_NUMBER("PAGE_OFFSET", page_offset);
>+	WRITE_NUMBER("VMALLOC_START", vmalloc_start);
>+	WRITE_NUMBER("VMEMMAP_START", vmemmap_start);
>
> 	WRITE_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
>
>@@ -2595,6 +2619,9 @@ read_vmcoreinfo(void)
>
> 	READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
> 	READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
>+	READ_NUMBER("PAGE_OFFSET", page_offset);
>+	READ_NUMBER("VMALLOC_START", vmalloc_start);
>+	READ_NUMBER("VMEMMAP_START", vmemmap_start);
>
> 	READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
>
>@@ -3826,7 +3853,7 @@ initial(void)
> 		debug_info = TRUE;
> 	}
>
>-	info->kernel_version = get_kernel_version(info.release);
>+	info->kernel_version = get_kernel_version(info->release);

Why don't you write "info->release" in [PATCH 1/3] ?

Thanks,
Atsushi Kumagai

> 	if (info->kernel_version == FALSE) {
> 		ERRMSG("Can't get the kernel version.\n");
> 		return FALSE;
>diff --git a/makedumpfile.h b/makedumpfile.h
>index 533e5b8..0e34fae 100644
>--- a/makedumpfile.h
>+++ b/makedumpfile.h
>@@ -1685,6 +1685,9 @@ struct number_table {
>
> 	long	PAGE_BUDDY_MAPCOUNT_VALUE;
> 	long	KERNEL_IMAGE_SIZE;
>+	long	page_offset;
>+	long	vmalloc_start;
>+	long	vmemmap_start;
> 	long	SECTION_SIZE_BITS;
> 	long	MAX_PHYSMEM_BITS;
> 	long    HUGETLB_PAGE_DTOR;
>--
>2.5.5
>
>
>_______________________________________________
>kexec mailing list
>kexec@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
                   ` (3 preceding siblings ...)
  2016-08-29  9:03 ` [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
@ 2016-09-22  8:45 ` Dave Young
  2016-09-22  8:48   ` Dave Young
  4 siblings, 1 reply; 15+ messages in thread
From: Dave Young @ 2016-09-22  8:45 UTC (permalink / raw)
  To: Baoquan He; +Cc: kumagai-atsushi, kexec, thgarnie

Hi, Baoquan

On 08/29/16 at 04:54pm, Baoquan He wrote:
> Hi Atsushi and Thomas,
> 
> This is a draft patchset. I just checked x86_64 implementation according to
> Thomas's mm randomization related patches. Not sure if this will affect
> other ARCH or XEN. Especially for patch 1/3 and patch 2/3, just a original
> idea. I tested on x86_64, passed.
> 
> And also kernel patch need be adjusted so that number_table.X of makedumpfile
> can be used. Will add comment to Thomas's kernel patch.
> 
> Baoquan He (3):
>   makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns)
>     earlier
>   makedumpfile: Move get_versiondep_info calling earlier
>   makedumpfile: Add support for MM randomization
> 
>  arch/x86_64.c  | 26 +++++++++-----------------
>  makedumpfile.c | 45 ++++++++++++++++++++++++++++++++++++---------
>  makedumpfile.h |  3 +++
>  3 files changed, 48 insertions(+), 26 deletions(-)
> 

With these patch applied, I still get a makedumpfile failure below in Fedora:
Kernel applied your patch to export the 3 symbols.

kdump: saving vmcore-dmesg.txt complete                                        
kdump: saving vmcore                                                           
kdump: saving vmcore failed                                                    
[FAILED] Failed to start Kdump Vmcore Save Service. 

Thanks
Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-09-22  8:45 ` Dave Young
@ 2016-09-22  8:48   ` Dave Young
  2016-09-22  8:57     ` Baoquan He
  0 siblings, 1 reply; 15+ messages in thread
From: Dave Young @ 2016-09-22  8:48 UTC (permalink / raw)
  To: Baoquan He; +Cc: ats-kumagai, kexec, thgarnie

Fix email address of Atsushi Kumagai..

On 09/22/16 at 04:45pm, Dave Young wrote:
> Hi, Baoquan
> 
> On 08/29/16 at 04:54pm, Baoquan He wrote:
> > Hi Atsushi and Thomas,
> > 
> > This is a draft patchset. I just checked x86_64 implementation according to
> > Thomas's mm randomization related patches. Not sure if this will affect
> > other ARCH or XEN. Especially for patch 1/3 and patch 2/3, just a original
> > idea. I tested on x86_64, passed.
> > 
> > And also kernel patch need be adjusted so that number_table.X of makedumpfile
> > can be used. Will add comment to Thomas's kernel patch.
> > 
> > Baoquan He (3):
> >   makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns)
> >     earlier
> >   makedumpfile: Move get_versiondep_info calling earlier
> >   makedumpfile: Add support for MM randomization
> > 
> >  arch/x86_64.c  | 26 +++++++++-----------------
> >  makedumpfile.c | 45 ++++++++++++++++++++++++++++++++++++---------
> >  makedumpfile.h |  3 +++
> >  3 files changed, 48 insertions(+), 26 deletions(-)
> > 
> 
> With these patch applied, I still get a makedumpfile failure below in Fedora:
> Kernel applied your patch to export the 3 symbols.
> 
> kdump: saving vmcore-dmesg.txt complete                                        
> kdump: saving vmcore                                                           
> kdump: saving vmcore failed                                                    
> [FAILED] Failed to start Kdump Vmcore Save Service. 
> 
> Thanks
> Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-09-22  8:48   ` Dave Young
@ 2016-09-22  8:57     ` Baoquan He
  2016-09-22  9:03       ` Dave Young
  0 siblings, 1 reply; 15+ messages in thread
From: Baoquan He @ 2016-09-22  8:57 UTC (permalink / raw)
  To: Dave Young; +Cc: ats-kumagai, kexec, thgarnie

On 09/22/16 at 04:48pm, Dave Young wrote:
> Fix email address of Atsushi Kumagai..
> 
> On 09/22/16 at 04:45pm, Dave Young wrote:
> > Hi, Baoquan
> > 
> > On 08/29/16 at 04:54pm, Baoquan He wrote:
> > > Hi Atsushi and Thomas,

Did you apply below kexec patch either?

kexec/arch/i386: Add support for KASLR memory randomization

Please search it in kexec mailing list, Thomas posted it.

> > > 
> > > This is a draft patchset. I just checked x86_64 implementation according to
> > > Thomas's mm randomization related patches. Not sure if this will affect
> > > other ARCH or XEN. Especially for patch 1/3 and patch 2/3, just a original
> > > idea. I tested on x86_64, passed.
> > > 
> > > And also kernel patch need be adjusted so that number_table.X of makedumpfile
> > > can be used. Will add comment to Thomas's kernel patch.
> > > 
> > > Baoquan He (3):
> > >   makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns)
> > >     earlier
> > >   makedumpfile: Move get_versiondep_info calling earlier
> > >   makedumpfile: Add support for MM randomization
> > > 
> > >  arch/x86_64.c  | 26 +++++++++-----------------
> > >  makedumpfile.c | 45 ++++++++++++++++++++++++++++++++++++---------
> > >  makedumpfile.h |  3 +++
> > >  3 files changed, 48 insertions(+), 26 deletions(-)
> > > 
> > 
> > With these patch applied, I still get a makedumpfile failure below in Fedora:
> > Kernel applied your patch to export the 3 symbols.
> > 
> > kdump: saving vmcore-dmesg.txt complete                                        
> > kdump: saving vmcore                                                           
> > kdump: saving vmcore failed                                                    
> > [FAILED] Failed to start Kdump Vmcore Save Service. 
> > 
> > Thanks
> > Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-09-22  8:57     ` Baoquan He
@ 2016-09-22  9:03       ` Dave Young
  2016-09-22  9:07         ` Baoquan He
  0 siblings, 1 reply; 15+ messages in thread
From: Dave Young @ 2016-09-22  9:03 UTC (permalink / raw)
  To: Baoquan He; +Cc: ats-kumagai, kexec, thgarnie

Hi,

> Did you apply below kexec patch either?
> 
> kexec/arch/i386: Add support for KASLR memory randomization
> 
> Please search it in kexec mailing list, Thomas posted it.

Yes, applied.

Thanks
Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-09-22  9:03       ` Dave Young
@ 2016-09-22  9:07         ` Baoquan He
  2016-09-23  2:38           ` Dave Young
  0 siblings, 1 reply; 15+ messages in thread
From: Baoquan He @ 2016-09-22  9:07 UTC (permalink / raw)
  To: Dave Young; +Cc: ats-kumagai, kexec, thgarnie

On 09/22/16 at 05:03pm, Dave Young wrote:
> Hi,
> 
> > Did you apply below kexec patch either?
> > 
> > kexec/arch/i386: Add support for KASLR memory randomization
> > 
> > Please search it in kexec mailing list, Thomas posted it.
> 
> Yes, applied.

message-level 31 could help to find out what's happening in
makedumpfile.

> 
> Thanks
> Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 0/3] makedumpfile: Add support of mm randomization
  2016-09-22  9:07         ` Baoquan He
@ 2016-09-23  2:38           ` Dave Young
  0 siblings, 0 replies; 15+ messages in thread
From: Dave Young @ 2016-09-23  2:38 UTC (permalink / raw)
  To: Baoquan He; +Cc: ats-kumagai, kexec, thgarnie

On 09/22/16 at 05:07pm, Baoquan He wrote:
> On 09/22/16 at 05:03pm, Dave Young wrote:
> > Hi,
> > 
> > > Did you apply below kexec patch either?
> > > 
> > > kexec/arch/i386: Add support for KASLR memory randomization
> > > 
> > > Please search it in kexec mailing list, Thomas posted it.
> > 
> > Yes, applied.
> 
> message-level 31 could help to find out what's happening in
> makedumpfile.

It works after reapplying them to devel branch.

Thanks
Dave

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 3/3] makedumpfile: Add support for MM randomization
  2016-08-31  7:56   ` Atsushi Kumagai
@ 2016-09-30  4:56     ` Baoquan He
  2016-10-04  1:40       ` Atsushi Kumagai
  0 siblings, 1 reply; 15+ messages in thread
From: Baoquan He @ 2016-09-30  4:56 UTC (permalink / raw)
  To: Atsushi Kumagai; +Cc: kexec, thgarnie

Hi Atsushi,

Thanks a lot for your reviewing!

I am very sorry for so late response, just focused on other issue
earlier.

On 08/31/16 at 07:56am, Atsushi Kumagai wrote:
> Hello Baoquan,
> 
> Thanks for your work, I have some comments below.
> 
> >In kernel patchset "x86/mm: memory area address KASLR", PAGE_OFFSET,
> >VMALLOC_START and VMEMMAP_START are all randomized. Please check below
> >link:
> >	https://lwn.net/Articles/692289/
> >
> >And these need be exported into vmcoreinfo and tell makedumpfile. In
> >this patch get and handle them to support MM randomization.
> >
> >Signed-off-by: Baoquan He <bhe@redhat.com>
> >---
> > arch/x86_64.c  | 26 +++++++++-----------------
> > makedumpfile.c | 29 ++++++++++++++++++++++++++++-
> > makedumpfile.h |  3 +++
> > 3 files changed, 40 insertions(+), 18 deletions(-)
> >
> >diff --git a/arch/x86_64.c b/arch/x86_64.c
> >index ddf7be6..ff787cc 100644
> >--- a/arch/x86_64.c
> >+++ b/arch/x86_64.c
> >@@ -146,8 +146,9 @@ get_machdep_info_x86_64(void)
> > 	return TRUE;
> > }
> >
> >-int
> >-get_versiondep_info_x86_64(void)
> >+#define VMALLOC_SIZE            (0x200000000000)
> >+#define VMEMMAP_SIZE            (0x10000000000)
> >+int get_versiondep_info_x86_64(void)
> > {
> > 	/*
> > 	 * On linux-2.6.26, MAX_PHYSMEM_BITS is changed to 44 from 40.
> >@@ -159,22 +160,13 @@ get_versiondep_info_x86_64(void)
> > 	else
> > 		info->max_physmem_bits  = _MAX_PHYSMEM_BITS_2_6_31;
> >
> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
> >-		info->page_offset = __PAGE_OFFSET_ORIG;
> >-	else
> >-		info->page_offset = __PAGE_OFFSET_2_6_27;
> >+	info->page_offset = NUMBER(page_offset);
> >
> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
> >-		info->vmalloc_start = VMALLOC_START_ORIG;
> >-		info->vmalloc_end   = VMALLOC_END_ORIG;
> >-		info->vmemmap_start = VMEMMAP_START_ORIG;
> >-		info->vmemmap_end   = VMEMMAP_END_ORIG;
> >-	} else {
> >-		info->vmalloc_start = VMALLOC_START_2_6_31;
> >-		info->vmalloc_end   = VMALLOC_END_2_6_31;
> >-		info->vmemmap_start = VMEMMAP_START_2_6_31;
> >-		info->vmemmap_end   = VMEMMAP_END_2_6_31;
> >-	}
> 
> These *_END_* are no longer used, it's better to remove the definitions
> of them.


Seems is_vmalloc_addr_x86_64 still needs VMALLOC_END and VMEMMAP_END to
make a judgement.
> 
> >+
> >+	info->vmalloc_start = NUMBER(vmalloc_start);
> >+	info->vmalloc_end   = info->vmalloc_start + VMALLOC_SIZE - 1;
> >+	info->vmemmap_start = NUMBER(vmemmap_start);
> >+	info->vmemmap_end   = info->vmemmap_start + VMEMMAP_SIZE - 1;
> >
> > 	return TRUE;
> > }
> >diff --git a/makedumpfile.c b/makedumpfile.c
> >index 2713f8a..6b0c6ab 100644
> >--- a/makedumpfile.c
> >+++ b/makedumpfile.c
> >@@ -1985,6 +1985,7 @@ get_value_for_old_linux(void)
> > 			NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) =
> > 			PAGE_BUDDY_MAPCOUNT_VALUE_v2_6_39_to_latest_version;
> > 	}
> >+	ERRMSG("info->kernel_version=%d\n", info->kernel_version);
> 
> Is this just a debug message ?

Yes, sorry for this. Will remove it.

> 
> > #ifdef __x86_64__
> > 	if (NUMBER(KERNEL_IMAGE_SIZE) == NOT_FOUND_NUMBER) {
> > 		if (info->kernel_version < KERNEL_VERSION(2, 6, 26))
> >@@ -1992,6 +1993,26 @@ get_value_for_old_linux(void)
> > 		else
> > 			NUMBER(KERNEL_IMAGE_SIZE) = KERNEL_IMAGE_SIZE_2_6_26;
> > 	}
> >+	if (NUMBER(page_offset) == NOT_FOUND_NUMBER) {
> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
> >+			NUMBER(page_offset) = __PAGE_OFFSET_ORIG;
> >+		else
> >+			NUMBER(page_offset) = __PAGE_OFFSET_2_6_27;
> >+	}
> >+	if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER) {
> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
> >+			NUMBER(vmalloc_start) = VMALLOC_START_ORIG;
> >+		} else {
> >+			NUMBER(vmalloc_start) = VMALLOC_START_2_6_31;
> >+		}
> >+	}
> >+	if (NUMBER(vmemmap_start) == NOT_FOUND_NUMBER) {
> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31))
> >+			NUMBER(vmemmap_start) = VMEMMAP_START_ORIG;
> >+		else
> >+			NUMBER(vmemmap_start) = VMEMMAP_START_2_6_31;
> >+	}
> >+
> 
> (I should have said this when you post the early kaslr patch.)
> This logic is only for x86_64, I don't like to take it out to 
> here(general pass) with #ifdef. Is there any necessity to write
> this code here ?

Yes, you are right. I plan to put them into get_versiondep_info_x86_64.
> 
> > #endif
> > 	if (SIZE(pageflags) == NOT_FOUND_STRUCTURE) {
> > 		if (info->kernel_version >= KERNEL_VERSION(2, 6, 27))
> >@@ -2249,6 +2270,9 @@ write_vmcoreinfo_data(void)
> >
> > 	WRITE_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
> > 	WRITE_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
> >+	WRITE_NUMBER("PAGE_OFFSET", page_offset);
> >+	WRITE_NUMBER("VMALLOC_START", vmalloc_start);
> >+	WRITE_NUMBER("VMEMMAP_START", vmemmap_start);
> >
> > 	WRITE_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
> >
> >@@ -2595,6 +2619,9 @@ read_vmcoreinfo(void)
> >
> > 	READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
> > 	READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
> >+	READ_NUMBER("PAGE_OFFSET", page_offset);
> >+	READ_NUMBER("VMALLOC_START", vmalloc_start);
> >+	READ_NUMBER("VMEMMAP_START", vmemmap_start);
> >
> > 	READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
> >
> >@@ -3826,7 +3853,7 @@ initial(void)
> > 		debug_info = TRUE;
> > 	}
> >
> >-	info->kernel_version = get_kernel_version(info.release);
> >+	info->kernel_version = get_kernel_version(info->release);
> 
> Why don't you write "info->release" in [PATCH 1/3] ?
Yes, will do.

Thanks for your comments and great suggestions!

Thanks
Baoquan

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* RE: [PATCH 3/3] makedumpfile: Add support for MM randomization
  2016-09-30  4:56     ` Baoquan He
@ 2016-10-04  1:40       ` Atsushi Kumagai
  2016-10-04 13:09         ` Baoquan He
  0 siblings, 1 reply; 15+ messages in thread
From: Atsushi Kumagai @ 2016-10-04  1:40 UTC (permalink / raw)
  To: Baoquan He; +Cc: kexec, thgarnie

>> > 	/*
>> > 	 * On linux-2.6.26, MAX_PHYSMEM_BITS is changed to 44 from 40.
>> >@@ -159,22 +160,13 @@ get_versiondep_info_x86_64(void)
>> > 	else
>> > 		info->max_physmem_bits  = _MAX_PHYSMEM_BITS_2_6_31;
>> >
>> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
>> >-		info->page_offset = __PAGE_OFFSET_ORIG;
>> >-	else
>> >-		info->page_offset = __PAGE_OFFSET_2_6_27;
>> >+	info->page_offset = NUMBER(page_offset);
>> >
>> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
>> >-		info->vmalloc_start = VMALLOC_START_ORIG;
>> >-		info->vmalloc_end   = VMALLOC_END_ORIG;
>> >-		info->vmemmap_start = VMEMMAP_START_ORIG;
>> >-		info->vmemmap_end   = VMEMMAP_END_ORIG;
>> >-	} else {
>> >-		info->vmalloc_start = VMALLOC_START_2_6_31;
>> >-		info->vmalloc_end   = VMALLOC_END_2_6_31;
>> >-		info->vmemmap_start = VMEMMAP_START_2_6_31;
>> >-		info->vmemmap_end   = VMEMMAP_END_2_6_31;
>> >-	}
>>
>> These *_END_* are no longer used, it's better to remove the definitions
>> of them.
>
>
>Seems is_vmalloc_addr_x86_64 still needs VMALLOC_END and VMEMMAP_END to
>make a judgement.

Yes, VMALLOC_END and VMEMMAP_END are necessary, but what I mentioned were
VMALLOC_END_ORIG, VMEMMAP_END_ORIG , VMALLOC_END_2_6_31 and VMEMMAP_END_2_6_31.
The symbols were used only to initialize info->vmalloc_end and info->vmemmap_end,
so they will be unnecessary by this patch.

>> >+
>> >+	info->vmalloc_start = NUMBER(vmalloc_start);
>> >+	info->vmalloc_end   = info->vmalloc_start + VMALLOC_SIZE - 1;
>> >+	info->vmemmap_start = NUMBER(vmemmap_start);
>> >+	info->vmemmap_end   = info->vmemmap_start + VMEMMAP_SIZE - 1;

Thanks,
Atsushi Kumagai

>> > 	return TRUE;
>> > }
>> >diff --git a/makedumpfile.c b/makedumpfile.c
>> >index 2713f8a..6b0c6ab 100644
>> >--- a/makedumpfile.c
>> >+++ b/makedumpfile.c
>> >@@ -1985,6 +1985,7 @@ get_value_for_old_linux(void)
>> > 			NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) =
>> > 			PAGE_BUDDY_MAPCOUNT_VALUE_v2_6_39_to_latest_version;
>> > 	}
>> >+	ERRMSG("info->kernel_version=%d\n", info->kernel_version);
>>
>> Is this just a debug message ?
>
>Yes, sorry for this. Will remove it.
>
>>
>> > #ifdef __x86_64__
>> > 	if (NUMBER(KERNEL_IMAGE_SIZE) == NOT_FOUND_NUMBER) {
>> > 		if (info->kernel_version < KERNEL_VERSION(2, 6, 26))
>> >@@ -1992,6 +1993,26 @@ get_value_for_old_linux(void)
>> > 		else
>> > 			NUMBER(KERNEL_IMAGE_SIZE) = KERNEL_IMAGE_SIZE_2_6_26;
>> > 	}
>> >+	if (NUMBER(page_offset) == NOT_FOUND_NUMBER) {
>> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
>> >+			NUMBER(page_offset) = __PAGE_OFFSET_ORIG;
>> >+		else
>> >+			NUMBER(page_offset) = __PAGE_OFFSET_2_6_27;
>> >+	}
>> >+	if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER) {
>> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
>> >+			NUMBER(vmalloc_start) = VMALLOC_START_ORIG;
>> >+		} else {
>> >+			NUMBER(vmalloc_start) = VMALLOC_START_2_6_31;
>> >+		}
>> >+	}
>> >+	if (NUMBER(vmemmap_start) == NOT_FOUND_NUMBER) {
>> >+		if (info->kernel_version < KERNEL_VERSION(2, 6, 31))
>> >+			NUMBER(vmemmap_start) = VMEMMAP_START_ORIG;
>> >+		else
>> >+			NUMBER(vmemmap_start) = VMEMMAP_START_2_6_31;
>> >+	}
>> >+
>>
>> (I should have said this when you post the early kaslr patch.)
>> This logic is only for x86_64, I don't like to take it out to
>> here(general pass) with #ifdef. Is there any necessity to write
>> this code here ?
>
>Yes, you are right. I plan to put them into get_versiondep_info_x86_64.
>>
>> > #endif
>> > 	if (SIZE(pageflags) == NOT_FOUND_STRUCTURE) {
>> > 		if (info->kernel_version >= KERNEL_VERSION(2, 6, 27))
>> >@@ -2249,6 +2270,9 @@ write_vmcoreinfo_data(void)
>> >
>> > 	WRITE_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
>> > 	WRITE_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
>> >+	WRITE_NUMBER("PAGE_OFFSET", page_offset);
>> >+	WRITE_NUMBER("VMALLOC_START", vmalloc_start);
>> >+	WRITE_NUMBER("VMEMMAP_START", vmemmap_start);
>> >
>> > 	WRITE_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
>> >
>> >@@ -2595,6 +2619,9 @@ read_vmcoreinfo(void)
>> >
>> > 	READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
>> > 	READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
>> >+	READ_NUMBER("PAGE_OFFSET", page_offset);
>> >+	READ_NUMBER("VMALLOC_START", vmalloc_start);
>> >+	READ_NUMBER("VMEMMAP_START", vmemmap_start);
>> >
>> > 	READ_NUMBER("HUGETLB_PAGE_DTOR", HUGETLB_PAGE_DTOR);
>> >
>> >@@ -3826,7 +3853,7 @@ initial(void)
>> > 		debug_info = TRUE;
>> > 	}
>> >
>> >-	info->kernel_version = get_kernel_version(info.release);
>> >+	info->kernel_version = get_kernel_version(info->release);
>>
>> Why don't you write "info->release" in [PATCH 1/3] ?
>Yes, will do.
>
>Thanks for your comments and great suggestions!
>
>Thanks
>Baoquan
>
>_______________________________________________
>kexec mailing list
>kexec@lists.infradead.org
>http://lists.infradead.org/mailman/listinfo/kexec

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

* Re: [PATCH 3/3] makedumpfile: Add support for MM randomization
  2016-10-04  1:40       ` Atsushi Kumagai
@ 2016-10-04 13:09         ` Baoquan He
  0 siblings, 0 replies; 15+ messages in thread
From: Baoquan He @ 2016-10-04 13:09 UTC (permalink / raw)
  To: Atsushi Kumagai; +Cc: kexec, thgarnie

On 10/04/16 at 01:40am, Atsushi Kumagai wrote:
> >> > 	/*
> >> > 	 * On linux-2.6.26, MAX_PHYSMEM_BITS is changed to 44 from 40.
> >> >@@ -159,22 +160,13 @@ get_versiondep_info_x86_64(void)
> >> > 	else
> >> > 		info->max_physmem_bits  = _MAX_PHYSMEM_BITS_2_6_31;
> >> >
> >> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 27))
> >> >-		info->page_offset = __PAGE_OFFSET_ORIG;
> >> >-	else
> >> >-		info->page_offset = __PAGE_OFFSET_2_6_27;
> >> >+	info->page_offset = NUMBER(page_offset);
> >> >
> >> >-	if (info->kernel_version < KERNEL_VERSION(2, 6, 31)) {
> >> >-		info->vmalloc_start = VMALLOC_START_ORIG;
> >> >-		info->vmalloc_end   = VMALLOC_END_ORIG;
> >> >-		info->vmemmap_start = VMEMMAP_START_ORIG;
> >> >-		info->vmemmap_end   = VMEMMAP_END_ORIG;
> >> >-	} else {
> >> >-		info->vmalloc_start = VMALLOC_START_2_6_31;
> >> >-		info->vmalloc_end   = VMALLOC_END_2_6_31;
> >> >-		info->vmemmap_start = VMEMMAP_START_2_6_31;
> >> >-		info->vmemmap_end   = VMEMMAP_END_2_6_31;
> >> >-	}
> >>
> >> These *_END_* are no longer used, it's better to remove the definitions
> >> of them.
> >
> >
> >Seems is_vmalloc_addr_x86_64 still needs VMALLOC_END and VMEMMAP_END to
> >make a judgement.
> 
> Yes, VMALLOC_END and VMEMMAP_END are necessary, but what I mentioned were
> VMALLOC_END_ORIG, VMEMMAP_END_ORIG , VMALLOC_END_2_6_31 and VMEMMAP_END_2_6_31.
> The symbols were used only to initialize info->vmalloc_end and info->vmemmap_end,
> so they will be unnecessary by this patch.

Yes, you are right. These unused MACRO definitions need be removed.
Thanks for your reviewing.

Thanks
Baoquan

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

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

end of thread, other threads:[~2016-10-04 13:10 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-29  8:54 [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
2016-08-29  8:54 ` [PATCH 1/3] makedumpfile: Get info->kernel_version from SYMBOL(init_uts_ns) earlier Baoquan He
2016-08-29  8:54 ` [PATCH 2/3] makedumpfile: Move get_versiondep_info calling earlier Baoquan He
2016-08-29  8:54 ` [PATCH 3/3] makedumpfile: Add support for MM randomization Baoquan He
2016-08-31  7:56   ` Atsushi Kumagai
2016-09-30  4:56     ` Baoquan He
2016-10-04  1:40       ` Atsushi Kumagai
2016-10-04 13:09         ` Baoquan He
2016-08-29  9:03 ` [PATCH 0/3] makedumpfile: Add support of mm randomization Baoquan He
2016-09-22  8:45 ` Dave Young
2016-09-22  8:48   ` Dave Young
2016-09-22  8:57     ` Baoquan He
2016-09-22  9:03       ` Dave Young
2016-09-22  9:07         ` Baoquan He
2016-09-23  2:38           ` Dave Young

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.