* [PATCHv3 5/9] Initialize phys_start during early Xen setup
@ 2012-08-24 15:42 Petr Tesarik
2012-11-28 5:56 ` Atsushi Kumagai
0 siblings, 1 reply; 5+ messages in thread
From: Petr Tesarik @ 2012-08-24 15:42 UTC (permalink / raw)
To: kexec; +Cc: Norbert Trapp
With early Xen setup, we can move the initialization of xen_phys_start
to the setup routine. This is cleaner, as we can get rid of ifdef'ed
arch-specific code in makedumpfile.c (which should IMO stay generic).
Signed-off-by: Petr Tesarik <ptesarik@suse.cz>
---
arch/x86.c | 9 +++++++++
arch/x86_64.c | 9 +++++++++
makedumpfile.c | 16 ----------------
3 files changed, 18 insertions(+), 16 deletions(-)
--- a/arch/x86.c
+++ b/arch/x86.c
@@ -296,6 +296,15 @@ int get_xen_basic_info_x86(void)
unsigned long frame_table_vaddr;
unsigned long xen_end;
+ if (!info->xen_phys_start) {
+ if (info->xen_crash_info_v < 2) {
+ ERRMSG("Can't get Xen physical start address.\n"
+ "Please use the --xen_phys_start option.");
+ return FALSE;
+ }
+ info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start;
+ }
+
if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL &&
SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) {
ERRMSG("Can't get pgd.\n");
--- a/arch/x86_64.c
+++ b/arch/x86_64.c
@@ -361,6 +361,15 @@ int get_xen_basic_info_x86_64(void)
unsigned long frame_table_vaddr;
unsigned long xen_end;
+ if (!info->xen_phys_start) {
+ if (info->xen_crash_info_v < 2) {
+ ERRMSG("Can't get Xen physical start address.\n"
+ "Please use the --xen_phys_start option.");
+ return FALSE;
+ }
+ info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start;
+ }
+
if (SYMBOL(pgd_l4) == NOT_FOUND_SYMBOL) {
ERRMSG("Can't get pml4.\n");
return FALSE;
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -5365,20 +5365,6 @@ init_xen_crash_info(void)
}
int
-get_xen_phys_start(void)
-{
- if (info->xen_phys_start)
- return TRUE;
-
-#if defined(__x86__) || defined(__x86_64__)
- if (info->xen_crash_info_v >= 2)
- info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start;
-#endif
-
- return TRUE;
-}
-
-int
get_xen_info(void)
{
unsigned long domain;
@@ -5877,8 +5863,6 @@ initial_xen(void)
if (!read_vmcoreinfo_from_vmcore(offset, size, TRUE))
return FALSE;
}
- if (!get_xen_phys_start())
- return FALSE;
if (!get_xen_info())
return FALSE;
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCHv3 5/9] Initialize phys_start during early Xen setup 2012-08-24 15:42 [PATCHv3 5/9] Initialize phys_start during early Xen setup Petr Tesarik @ 2012-11-28 5:56 ` Atsushi Kumagai 2012-12-03 6:28 ` Atsushi Kumagai 0 siblings, 1 reply; 5+ messages in thread From: Atsushi Kumagai @ 2012-11-28 5:56 UTC (permalink / raw) To: ptesarik; +Cc: kexec, Norbert.Trapp Hello Petr, On Fri, 24 Aug 2012 17:42:24 +0200 Petr Tesarik <ptesarik@suse.cz> wrote: > With early Xen setup, we can move the initialization of xen_phys_start > to the setup routine. This is cleaner, as we can get rid of ifdef'ed > arch-specific code in makedumpfile.c (which should IMO stay generic). > > Signed-off-by: Petr Tesarik <ptesarik@suse.cz> > > --- > arch/x86.c | 9 +++++++++ > arch/x86_64.c | 9 +++++++++ > makedumpfile.c | 16 ---------------- > 3 files changed, 18 insertions(+), 16 deletions(-) > > --- a/arch/x86.c > +++ b/arch/x86.c > @@ -296,6 +296,15 @@ int get_xen_basic_info_x86(void) > unsigned long frame_table_vaddr; > unsigned long xen_end; > > + if (!info->xen_phys_start) { > + if (info->xen_crash_info_v < 2) { > + ERRMSG("Can't get Xen physical start address.\n" > + "Please use the --xen_phys_start option."); > + return FALSE; > + } > + info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > + } > + I tested for the vmcore which doesn't include xen_phys_start, then the error message below showed: $ makedumpfile_v1.5.1 -E -X --xen-syms xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX get_xen_basic_info_x86: Can't get Xen physical start address. Please use the --xen_phys_start option. makedumpfile Failed. $ So, should I understand this result as reasonable error handling ? The reason why I have this question is because the same vmcore can be filtered out with makedumpfile-1.5.0 or before like below: $ makedumpfile_v1.5.0 -E -X --xen-syms xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX Switched running mode from cyclic to non-cyclic, because the cyclic mode doesn't support Xen. Copying data : [100 %] The dumpfile is saved to dumpfile.EX. makedumpfile Completed. $ I have checked with grep, it seems that xen_phys_start is used for x86_64 only. So, is the valid check really necessary for x86 ? Thanks Atsushi Kumagai > if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL && > SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) { > ERRMSG("Can't get pgd.\n"); > --- a/arch/x86_64.c > +++ b/arch/x86_64.c > @@ -361,6 +361,15 @@ int get_xen_basic_info_x86_64(void) > unsigned long frame_table_vaddr; > unsigned long xen_end; > > + if (!info->xen_phys_start) { > + if (info->xen_crash_info_v < 2) { > + ERRMSG("Can't get Xen physical start address.\n" > + "Please use the --xen_phys_start option."); > + return FALSE; > + } > + info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > + } > + > if (SYMBOL(pgd_l4) == NOT_FOUND_SYMBOL) { > ERRMSG("Can't get pml4.\n"); > return FALSE; > --- a/makedumpfile.c > +++ b/makedumpfile.c > @@ -5365,20 +5365,6 @@ init_xen_crash_info(void) > } > > int > -get_xen_phys_start(void) > -{ > - if (info->xen_phys_start) > - return TRUE; > - > -#if defined(__x86__) || defined(__x86_64__) > - if (info->xen_crash_info_v >= 2) > - info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > -#endif > - > - return TRUE; > -} > - > -int > get_xen_info(void) > { > unsigned long domain; > @@ -5877,8 +5863,6 @@ initial_xen(void) > if (!read_vmcoreinfo_from_vmcore(offset, size, TRUE)) > return FALSE; > } > - if (!get_xen_phys_start()) > - return FALSE; > if (!get_xen_info()) > return FALSE; > > > > > _______________________________________________ > 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] 5+ messages in thread
* Re: [PATCHv3 5/9] Initialize phys_start during early Xen setup 2012-11-28 5:56 ` Atsushi Kumagai @ 2012-12-03 6:28 ` Atsushi Kumagai 2012-12-03 10:10 ` Petr Tesarik 0 siblings, 1 reply; 5+ messages in thread From: Atsushi Kumagai @ 2012-12-03 6:28 UTC (permalink / raw) To: ptesarik; +Cc: kexec, Norbert.Trapp Hello Petr, On Wed, 28 Nov 2012 14:56:58 +0900 Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> wrote: > Hello Petr, > > On Fri, 24 Aug 2012 17:42:24 +0200 > Petr Tesarik <ptesarik@suse.cz> wrote: > > > With early Xen setup, we can move the initialization of xen_phys_start > > to the setup routine. This is cleaner, as we can get rid of ifdef'ed > > arch-specific code in makedumpfile.c (which should IMO stay generic). > > > > Signed-off-by: Petr Tesarik <ptesarik@suse.cz> > > > > --- > > arch/x86.c | 9 +++++++++ > > arch/x86_64.c | 9 +++++++++ > > makedumpfile.c | 16 ---------------- > > 3 files changed, 18 insertions(+), 16 deletions(-) > > > > --- a/arch/x86.c > > +++ b/arch/x86.c > > @@ -296,6 +296,15 @@ int get_xen_basic_info_x86(void) > > unsigned long frame_table_vaddr; > > unsigned long xen_end; > > > > + if (!info->xen_phys_start) { > > + if (info->xen_crash_info_v < 2) { > > + ERRMSG("Can't get Xen physical start address.\n" > > + "Please use the --xen_phys_start option."); > > + return FALSE; > > + } > > + info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > > + } > > + > > I tested for the vmcore which doesn't include xen_phys_start, then the > error message below showed: > > $ makedumpfile_v1.5.1 -E -X --xen-syms xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX > get_xen_basic_info_x86: Can't get Xen physical start address. > Please use the --xen_phys_start option. > makedumpfile Failed. > $ > > So, should I understand this result as reasonable error handling ? > > The reason why I have this question is because the same vmcore can be > filtered out with makedumpfile-1.5.0 or before like below: > > $ makedumpfile_v1.5.0 -E -X --xen-syms xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX > Switched running mode from cyclic to non-cyclic, > because the cyclic mode doesn't support Xen. > Copying data : [100 %] > > The dumpfile is saved to dumpfile.EX. > > makedumpfile Completed. > $ > > I have checked with grep, it seems that xen_phys_start is used for > x86_64 only. So, is the valid check really necessary for x86 ? I don't know much about Xen, but I think this is just regression. And I want to release v1.5.1 in this week, so I will fix this regression with the patch below: diff --git a/arch/x86.c b/arch/x86.c index 7de0495..ef29e3c 100644 --- a/arch/x86.c +++ b/arch/x86.c @@ -294,15 +294,6 @@ kvtop_xen_x86(unsigned long kvaddr) int get_xen_basic_info_x86(void) { - if (!info->xen_phys_start) { - if (info->xen_crash_info_v < 2) { - ERRMSG("Can't get Xen physical start address.\n" - "Please use the --xen_phys_start option."); - return FALSE; - } - info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; - } - if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL && SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) { ERRMSG("Can't get pgd.\n"); Please let me know if you have any objections. Thanks Atsushi Kumagai > Thanks > Atsushi Kumagai > > > if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL && > > SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) { > > ERRMSG("Can't get pgd.\n"); > > --- a/arch/x86_64.c > > +++ b/arch/x86_64.c > > @@ -361,6 +361,15 @@ int get_xen_basic_info_x86_64(void) > > unsigned long frame_table_vaddr; > > unsigned long xen_end; > > > > + if (!info->xen_phys_start) { > > + if (info->xen_crash_info_v < 2) { > > + ERRMSG("Can't get Xen physical start address.\n" > > + "Please use the --xen_phys_start option."); > > + return FALSE; > > + } > > + info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > > + } > > + > > if (SYMBOL(pgd_l4) == NOT_FOUND_SYMBOL) { > > ERRMSG("Can't get pml4.\n"); > > return FALSE; > > --- a/makedumpfile.c > > +++ b/makedumpfile.c > > @@ -5365,20 +5365,6 @@ init_xen_crash_info(void) > > } > > > > int > > -get_xen_phys_start(void) > > -{ > > - if (info->xen_phys_start) > > - return TRUE; > > - > > -#if defined(__x86__) || defined(__x86_64__) > > - if (info->xen_crash_info_v >= 2) > > - info->xen_phys_start = info->xen_crash_info.v2->xen_phys_start; > > -#endif > > - > > - return TRUE; > > -} > > - > > -int > > get_xen_info(void) > > { > > unsigned long domain; > > @@ -5877,8 +5863,6 @@ initial_xen(void) > > if (!read_vmcoreinfo_from_vmcore(offset, size, TRUE)) > > return FALSE; > > } > > - if (!get_xen_phys_start()) > > - return FALSE; > > if (!get_xen_info()) > > return FALSE; > > > > > > > > > > _______________________________________________ > > 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 related [flat|nested] 5+ messages in thread
* Re: [PATCHv3 5/9] Initialize phys_start during early Xen setup 2012-12-03 6:28 ` Atsushi Kumagai @ 2012-12-03 10:10 ` Petr Tesarik 2012-12-04 8:36 ` Atsushi Kumagai 0 siblings, 1 reply; 5+ messages in thread From: Petr Tesarik @ 2012-12-03 10:10 UTC (permalink / raw) To: Atsushi Kumagai; +Cc: kexec, Norbert.Trapp V Mon, 3 Dec 2012 15:28:15 +0900 Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> napsáno: > Hello Petr, > > On Wed, 28 Nov 2012 14:56:58 +0900 > Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp> wrote: > > > Hello Petr, > > > > On Fri, 24 Aug 2012 17:42:24 +0200 > > Petr Tesarik <ptesarik@suse.cz> wrote: > > > > > With early Xen setup, we can move the initialization of > > > xen_phys_start to the setup routine. This is cleaner, as we can > > > get rid of ifdef'ed arch-specific code in makedumpfile.c (which > > > should IMO stay generic). > > > > > > Signed-off-by: Petr Tesarik <ptesarik@suse.cz> > > > > > > --- > > > arch/x86.c | 9 +++++++++ > > > arch/x86_64.c | 9 +++++++++ > > > makedumpfile.c | 16 ---------------- > > > 3 files changed, 18 insertions(+), 16 deletions(-) > > > > > > --- a/arch/x86.c > > > +++ b/arch/x86.c > > > @@ -296,6 +296,15 @@ int get_xen_basic_info_x86(void) > > > unsigned long frame_table_vaddr; > > > unsigned long xen_end; > > > > > > + if (!info->xen_phys_start) { > > > + if (info->xen_crash_info_v < 2) { > > > + ERRMSG("Can't get Xen physical start > > > address.\n" > > > + "Please use the --xen_phys_start > > > option."); > > > + return FALSE; > > > + } > > > + info->xen_phys_start = > > > info->xen_crash_info.v2->xen_phys_start; > > > + } > > > + > > > > I tested for the vmcore which doesn't include xen_phys_start, then > > the error message below showed: > > > > $ makedumpfile_v1.5.1 -E -X --xen-syms > > xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX > > get_xen_basic_info_x86: Can't get Xen physical start address. > > Please use the --xen_phys_start option. makedumpfile Failed. > > $ > > > > So, should I understand this result as reasonable error handling ? > > > > The reason why I have this question is because the same vmcore can > > be filtered out with makedumpfile-1.5.0 or before like below: > > > > $ makedumpfile_v1.5.0 -E -X --xen-syms > > xen-syms-2.6.18-92.el5.debug vmcore dumpfile.EX Switched running > > mode from cyclic to non-cyclic, because the cyclic mode doesn't > > support Xen. Copying data : [100 %] > > > > The dumpfile is saved to dumpfile.EX. > > > > makedumpfile Completed. > > $ > > > > I have checked with grep, it seems that xen_phys_start is used for > > x86_64 only. So, is the valid check really necessary for x86 ? > > I don't know much about Xen, but I think this is just regression. > And I want to release v1.5.1 in this week, so I will fix this > regression with the patch below: > > diff --git a/arch/x86.c b/arch/x86.c > index 7de0495..ef29e3c 100644 > --- a/arch/x86.c > +++ b/arch/x86.c > @@ -294,15 +294,6 @@ kvtop_xen_x86(unsigned long kvaddr) > > int get_xen_basic_info_x86(void) > { > - if (!info->xen_phys_start) { > - if (info->xen_crash_info_v < 2) { > - ERRMSG("Can't get Xen physical start > address.\n" > - "Please use the --xen_phys_start > option."); > - return FALSE; > - } > - info->xen_phys_start = > info->xen_crash_info.v2->xen_phys_start; > - } > - > if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL && > SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) { > ERRMSG("Can't get pgd.\n"); > > > Please let me know if you have any objections. Hello Atsushi-san, I'm sorry for my late reaction. Yes, this piece should be removed. While there is a xen_phys_start variable in 32-bit Xen, it is always zero, so we shouldn't complain if we can't get it. Petr Tesarik _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCHv3 5/9] Initialize phys_start during early Xen setup 2012-12-03 10:10 ` Petr Tesarik @ 2012-12-04 8:36 ` Atsushi Kumagai 0 siblings, 0 replies; 5+ messages in thread From: Atsushi Kumagai @ 2012-12-04 8:36 UTC (permalink / raw) To: ptesarik; +Cc: kexec, Norbert.Trapp Hello Petr, On Mon, 3 Dec 2012 11:10:04 +0100 Petr Tesarik <ptesarik@suse.cz> wrote: > > I don't know much about Xen, but I think this is just regression. > > And I want to release v1.5.1 in this week, so I will fix this > > regression with the patch below: > > > > diff --git a/arch/x86.c b/arch/x86.c > > index 7de0495..ef29e3c 100644 > > --- a/arch/x86.c > > +++ b/arch/x86.c > > @@ -294,15 +294,6 @@ kvtop_xen_x86(unsigned long kvaddr) > > > > int get_xen_basic_info_x86(void) > > { > > - if (!info->xen_phys_start) { > > - if (info->xen_crash_info_v < 2) { > > - ERRMSG("Can't get Xen physical start > > address.\n" > > - "Please use the --xen_phys_start > > option."); > > - return FALSE; > > - } > > - info->xen_phys_start = > > info->xen_crash_info.v2->xen_phys_start; > > - } > > - > > if (SYMBOL(pgd_l2) == NOT_FOUND_SYMBOL && > > SYMBOL(pgd_l3) == NOT_FOUND_SYMBOL) { > > ERRMSG("Can't get pgd.\n"); > > > > > > Please let me know if you have any objections. > > Hello Atsushi-san, > > I'm sorry for my late reaction. Yes, this piece should be removed. > While there is a xen_phys_start variable in 32-bit Xen, it is always > zero, so we shouldn't complain if we can't get it. > > Petr Tesarik Thank you for your reply. I will release v1.5.1 with the change above. 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:[~2012-12-04 8:38 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-08-24 15:42 [PATCHv3 5/9] Initialize phys_start during early Xen setup Petr Tesarik 2012-11-28 5:56 ` Atsushi Kumagai 2012-12-03 6:28 ` Atsushi Kumagai 2012-12-03 10:10 ` Petr Tesarik 2012-12-04 8:36 ` Atsushi Kumagai
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox