[PATCHv3 5/9] Initialize phys_start during early Xen setup
Petr Tesarik
ptesarik at suse.cz
Mon Dec 3 05:10:04 EST 2012
V Mon, 3 Dec 2012 15:28:15 +0900
Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> napsáno:
> Hello Petr,
>
> On Wed, 28 Nov 2012 14:56:58 +0900
> Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:
>
> > Hello Petr,
> >
> > On Fri, 24 Aug 2012 17:42:24 +0200
> > Petr Tesarik <ptesarik at 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 at 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
More information about the kexec
mailing list