Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] Earlier initialization of dom0_mapnr
@ 2014-03-27 17:40 Petr Tesarik
  0 siblings, 0 replies; 5+ messages in thread
From: Petr Tesarik @ 2014-03-27 17:40 UTC (permalink / raw)
  To: Atsushi Kumagai; +Cc: kexec

Xen dumps fail, because the p2m mapping is initialized too late.
The dependency goes like this:

- Xen uses FLATMEM
- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
- get_dom0_mapnr() needs p2m mappings to read from a VADDR
- the p2m list is initialized in get_machdep_info()

Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
---
 makedumpfile.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index e91583d..d3f5237 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3128,6 +3128,12 @@ out:
 	if (!get_max_mapnr())
 		return FALSE;
 
+	if (debug_info && !get_machdep_info())
+		return FALSE;
+
+	if (is_xen_memory() && !get_dom0_mapnr())
+		return FALSE;
+
 	if (info->flag_cyclic) {
 		if (info->bufsize_cyclic == 0) {
 			if (!calculate_cyclic_buffer_size())
@@ -3185,9 +3191,6 @@ out:
 		if (info->flag_sadump)
 			(void) sadump_virt_phys_base();
 
-		if (!get_machdep_info())
-			return FALSE;
-
 		if (info->flag_sadump) {
 			int online_cpus;
 
@@ -3233,9 +3236,6 @@ out:
 			return FALSE;
 	}
 
-	if (is_xen_memory() && !get_dom0_mapnr())
-		return FALSE;
-
 	if (!get_value_for_old_linux())
 		return FALSE;
 
-- 
1.8.4.5


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

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

* [PATCH 1/2] Earlier initialization of dom0_mapnr
  2014-03-27 18:06 ` Petr Tesarik
@ 2014-03-27 18:06   ` Petr Tesarik
  2014-03-28  8:18     ` Atsushi Kumagai
  0 siblings, 1 reply; 5+ messages in thread
From: Petr Tesarik @ 2014-03-27 18:06 UTC (permalink / raw)
  To: Atsushi Kumagai; +Cc: kexec, Petr Tesarik

Xen dumps fail, because the p2m mapping is initialized too late.
The dependency goes like this:

- Xen uses FLATMEM
- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
- get_dom0_mapnr() needs p2m mappings to read from a VADDR
- the p2m list is initialized in get_machdep_info()

Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
---
 makedumpfile.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/makedumpfile.c b/makedumpfile.c
index e91583d..d3f5237 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3128,6 +3128,12 @@ out:
 	if (!get_max_mapnr())
 		return FALSE;
 
+	if (debug_info && !get_machdep_info())
+		return FALSE;
+
+	if (is_xen_memory() && !get_dom0_mapnr())
+		return FALSE;
+
 	if (info->flag_cyclic) {
 		if (info->bufsize_cyclic == 0) {
 			if (!calculate_cyclic_buffer_size())
@@ -3185,9 +3191,6 @@ out:
 		if (info->flag_sadump)
 			(void) sadump_virt_phys_base();
 
-		if (!get_machdep_info())
-			return FALSE;
-
 		if (info->flag_sadump) {
 			int online_cpus;
 
@@ -3233,9 +3236,6 @@ out:
 			return FALSE;
 	}
 
-	if (is_xen_memory() && !get_dom0_mapnr())
-		return FALSE;
-
 	if (!get_value_for_old_linux())
 		return FALSE;
 
-- 
1.8.4.5


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

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

* RE: [PATCH 1/2] Earlier initialization of dom0_mapnr
  2014-03-27 18:06   ` [PATCH 1/2] Earlier initialization of dom0_mapnr Petr Tesarik
@ 2014-03-28  8:18     ` Atsushi Kumagai
  2014-03-28  8:26       ` Petr Tesarik
  0 siblings, 1 reply; 5+ messages in thread
From: Atsushi Kumagai @ 2014-03-28  8:18 UTC (permalink / raw)
  To: ptesarik@suse.cz; +Cc: kexec@lists.infradead.org

Hello Petr,

>Xen dumps fail, because the p2m mapping is initialized too late.
>The dependency goes like this:
>
>- Xen uses FLATMEM
>- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
>- get_dom0_mapnr() needs p2m mappings to read from a VADDR
>- the p2m list is initialized in get_machdep_info()
>
>Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
>---
> makedumpfile.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
>diff --git a/makedumpfile.c b/makedumpfile.c
>index e91583d..d3f5237 100644
>--- a/makedumpfile.c
>+++ b/makedumpfile.c
>@@ -3128,6 +3128,12 @@ out:
> 	if (!get_max_mapnr())
> 		return FALSE;
>
>+	if (debug_info && !get_machdep_info())
>+		return FALSE;

You have to move get_machdep_info() after cache_init()
since get_machdep_info() calls readmem() on some architectures.
Otherwise, readmem() calls cache_alloc() without the cache
initialization.


Thanks
Atsushi Kumagai

>+
>+	if (is_xen_memory() && !get_dom0_mapnr())
>+		return FALSE;
>+
> 	if (info->flag_cyclic) {
> 		if (info->bufsize_cyclic == 0) {
> 			if (!calculate_cyclic_buffer_size())
>@@ -3185,9 +3191,6 @@ out:
> 		if (info->flag_sadump)
> 			(void) sadump_virt_phys_base();
>
>-		if (!get_machdep_info())
>-			return FALSE;
>-
> 		if (info->flag_sadump) {
> 			int online_cpus;
>
>@@ -3233,9 +3236,6 @@ out:
> 			return FALSE;
> 	}
>
>-	if (is_xen_memory() && !get_dom0_mapnr())
>-		return FALSE;
>-
> 	if (!get_value_for_old_linux())
> 		return FALSE;
>
>--
>1.8.4.5

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

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

* Re: [PATCH 1/2] Earlier initialization of dom0_mapnr
  2014-03-28  8:18     ` Atsushi Kumagai
@ 2014-03-28  8:26       ` Petr Tesarik
  2014-03-28  9:01         ` Atsushi Kumagai
  0 siblings, 1 reply; 5+ messages in thread
From: Petr Tesarik @ 2014-03-28  8:26 UTC (permalink / raw)
  To: Atsushi Kumagai; +Cc: kexec@lists.infradead.org

On Fri, 28 Mar 2014 08:18:13 +0000
Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> wrote:

> Hello Petr,
> 
> >Xen dumps fail, because the p2m mapping is initialized too late.
> >The dependency goes like this:
> >
> >- Xen uses FLATMEM
> >- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
> >- get_dom0_mapnr() needs p2m mappings to read from a VADDR
> >- the p2m list is initialized in get_machdep_info()
> >
> >Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
> >---
> > makedumpfile.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> >diff --git a/makedumpfile.c b/makedumpfile.c
> >index e91583d..d3f5237 100644
> >--- a/makedumpfile.c
> >+++ b/makedumpfile.c
> >@@ -3128,6 +3128,12 @@ out:
> > 	if (!get_max_mapnr())
> > 		return FALSE;
> >
> >+	if (debug_info && !get_machdep_info())
> >+		return FALSE;
> 
> You have to move get_machdep_info() after cache_init()
> since get_machdep_info() calls readmem() on some architectures.
> Otherwise, readmem() calls cache_alloc() without the cache
> initialization.

*sigh*

I suspected that the dependencies may be more complex...
Out of curiosity, do you already have an overview (dependency graph or
similar)? And if not, would you appreciate it if I created one?

Petr T

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

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

* RE: [PATCH 1/2] Earlier initialization of dom0_mapnr
  2014-03-28  8:26       ` Petr Tesarik
@ 2014-03-28  9:01         ` Atsushi Kumagai
  0 siblings, 0 replies; 5+ messages in thread
From: Atsushi Kumagai @ 2014-03-28  9:01 UTC (permalink / raw)
  To: ptesarik@suse.cz; +Cc: kexec@lists.infradead.org

>On Fri, 28 Mar 2014 08:18:13 +0000
>Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> wrote:
>
>> Hello Petr,
>>
>> >Xen dumps fail, because the p2m mapping is initialized too late.
>> >The dependency goes like this:
>> >
>> >- Xen uses FLATMEM
>> >- get_mm_flatmem() uses info->dom0_mapnr to initialize mm structures
>> >- get_dom0_mapnr() needs p2m mappings to read from a VADDR
>> >- the p2m list is initialized in get_machdep_info()
>> >
>> >Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
>> >---
>> > makedumpfile.c | 12 ++++++------
>> > 1 file changed, 6 insertions(+), 6 deletions(-)
>> >
>> >diff --git a/makedumpfile.c b/makedumpfile.c
>> >index e91583d..d3f5237 100644
>> >--- a/makedumpfile.c
>> >+++ b/makedumpfile.c
>> >@@ -3128,6 +3128,12 @@ out:
>> > 	if (!get_max_mapnr())
>> > 		return FALSE;
>> >
>> >+	if (debug_info && !get_machdep_info())
>> >+		return FALSE;
>>
>> You have to move get_machdep_info() after cache_init()
>> since get_machdep_info() calls readmem() on some architectures.
>> Otherwise, readmem() calls cache_alloc() without the cache
>> initialization.
>
>*sigh*
>
>I suspected that the dependencies may be more complex...
>Out of curiosity, do you already have an overview (dependency graph or
>similar)? And if not, would you appreciate it if I created one?

I'm afraid that I don't have such a stuff, but it will be very helpful
for maintenance and clean-up since initial() was getting complex by
additional features. So I will appreciate your work.


Thanks
Atsushi Kumagai

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

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

end of thread, other threads:[~2014-03-28  9:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-27 17:40 [PATCH 1/2] Earlier initialization of dom0_mapnr Petr Tesarik
  -- strict thread matches above, loose matches on Subject: below --
2014-03-27 17:49 [PATCH 0/2] Allow Xen Dom0 page filtering Petr Tesarik
2014-03-27 18:06 ` Petr Tesarik
2014-03-27 18:06   ` [PATCH 1/2] Earlier initialization of dom0_mapnr Petr Tesarik
2014-03-28  8:18     ` Atsushi Kumagai
2014-03-28  8:26       ` Petr Tesarik
2014-03-28  9:01         ` Atsushi Kumagai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox