Hello,
From: Dave Anderson <anderson(a)redhat.com>
Subject: Re: crash with Xen dom0 image from kdump
Date: Fri, 02 Jun 2006 09:28:07 -0400
Kazuo Moriwaka wrote:
> Hello Dave,
> # I append crash-utility list to Cc
>
> From: Dave Anderson <anderson(a)redhat.com>
> Subject: Re: crash with Xen dom0 image from kdump
> Date: Thu, 01 Jun 2006 08:39:01 -0400
>
> > Kazuo Moriwaka wrote:
> >
> > > Hello,
> > >
> > > From: Dave Anderson <anderson(a)redhat.com>
> > > Subject: Re: crash with Xen dom0 image from kdump
> > > Date: Wed, 31 May 2006 16:20:15 -0400
> > >
> > > >
> > > > Hey guys,
> > > >
> > > > I've got the vmcore file from which Kazuo generated the
> > > > "simulated" xendump dumpfile. I have a question regarding
> > > > the makeup of the the vmcore file -- are the physical addresses
> > > > referred to by each PT_LOAD segment based upon:
> > > >
> > > > 1. machine addresses, or
> > > > 2. pseudo-physical addresses as perceived by the dom0 vmlinux
kernel?
> > > >
> > > > Dave
> > >
> > > It's 1.
> > > vmcore is made by kexec-ed linux kernel (not on xen, but on machine)
kdump.
> > > The kernel doesn't know about xen or domains except register info.
> > > Register info is for dom0.
> > >
> >
> > Ok, good...
> >
> > Next question -- how did you find dom0's phys_to_machine_mapping[]
> > array from the vmcore in order to create the xendump?
>
> I use xen executable binary with symbols to find 'dom0' global symbol
> in xen.
> In x86_32 arch, dom0->vcpu[0].arch->guest_table has pagetable address
> for domain0 guest kernel.
> After it, I found 'phys_to_machine_mapping'.
> For other domains, 'domain_list' is point list of struct domain.
>
> I'll attach my latest dom0cut script. 'dom0cut_x86_32.py' contains
> names of symbols and structs to get dom0 image.
The problem is that we're just going to want to work with the
/proc/vmcore and vmlinux file as always. Having to drag the xen
executable binary into the picture should be unnecessary.
With a xendump, the phys_to_machine_mapping array can be
found by following the page tables from any of the cr3 values
found in the dump header.
Yes. It's enough to read dom0.
I hoped that treating xen exec in this stage makes
smooth path to support xen hypervisor, but embedding cr3 of dom0
seems considerable shortcut for dom0 crash analysis.
It would seem simple enough to have the xen/kdump code store
a legitimate dom0 cr3 value somewhere in the ELF header. Would
that be possible to explore? Note that I'm not really interested
Now the vmcore doesn't have cr3 values in header. It needs some
changes for dump.
in the other guest domains, at least at this point, but I could see
it potentially helpful to recreate the crash environment for the
guest domains as well, so perhap an array of per-domain cr3
values in an ELF header note section would be possible?
I think writing cr3 values can be done.
But I'm not clear about restrictions around making dump images,
Horms can answer this question.
regards,
--
Kazuo Moriwaka <moriwaka(a)valinux.co.jp>