* [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