[PATCH 1/2] Earlier initialization of dom0_mapnr

Petr Tesarik ptesarik at suse.cz
Fri Mar 28 04:26:45 EDT 2014


On Fri, 28 Mar 2014 08:18:13 +0000
Atsushi Kumagai <kumagai-atsushi at 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 at 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



More information about the kexec mailing list