On 24/11/15 13:41, Andrew Cooper wrote:
On 24/11/15 13:39, Jan Beulich wrote:
>>>> On 24.11.15 at 13:57, <ptesarik(a)suse.cz> wrote:
>> V Tue, 24 Nov 2015 10:35:03 +0000
>> Andrew Cooper <andrew.cooper3(a)citrix.com> napsáno:
>>
>>> On 24/11/15 10:17, Petr Tesarik wrote:
>>>> On Tue, 24 Nov 2015 10:09:01 +0000
>>>> David Vrabel <david.vrabel(a)citrix.com> wrote:
>>>>
>>>>> On 24/11/15 09:55, Malcolm Crossley wrote:
>>>>>> On 24/11/15 08:59, Jan Beulich wrote:
>>>>>>>>>> On 24.11.15 at 07:55, <JGross(a)suse.com>
wrote:
>>>>>>>> What about:
>>>>>>>>
>>>>>>>> 4) Instead of relying on the kernel maintained p2m list
for m2p
>>>>>>>> conversion use the hypervisor maintained m2p list
which should be
>>>>>>>> available in the dump as well. This is the way the
alive kernel is
>>>>>>>> working, so mimic it during crash dump analysis.
>>>>>>> I fully agree; I have to admit that looking at the p2m when
doing page
>>>>>>> table walks for a PV Dom0 (having all machine addresses in
page table
>>>>>>> entries) seems kind of backwards. (But I say this knowing
nothing
>>>>>>> about the tool.)
>>>>>>>
>>>>>> I don't think we can reliably use the m2p for PV domains
because
>>>>>> PV domains don't always issue a m2p update hypercall when
they change
>>>>>> their p2m mapping.
>>>>> This only applies to foreign pages which won't be very
interesting to a
>>>>> crash tool.
>>>> True. I think the main reason crash hasn't done this is that it
cannot
>>>> find the hypervisor maintained m2p list. It should be sufficient to add
>>>> some more fields to XEN_VMCOREINFO, so that crash can locate the
>>>> mapping in the dump.
>>> The M2P lives at an ABI-specified location in all virtual address spaces
>>> for PV guests.
>>>
>>> Either 0xF5800000 or 0xFFFF800000000000 depending on bitness.
>> Hm, this is nice, but kind of chicken-and-egg problem. A system dump
>> contains a snapshot of the machine's RAM. But the addresses you
>> mentioned are virtual addresses. How do I translate them to physical
>> addresses without an m2p mapping? I need at least the value of CR3 for
>> that domain, and most likely a way to determine if it is a PV domain.
> This ought to also be present in Xen's master page table
> (idle_pg_table[]), and I suppose we can take for granted a symbol
> table being available.
The idle_pg_table is already present in the VMCORE notes.
Ah, except it is aliased to the name pgd_l4.
~Andrew