[Crash-utility] Re: crash with Xen dom0 image from kdump
Kazuo Moriwaka
moriwaka at valinux.co.jp
Mon Jun 12 04:41:07 UTC 2006
Hi,
I'm not clear about shadow mode; are vcpu->arch.shadow_table need for
shadow-mode domains?
--
Kazuo Moriwaka <moriwaka at valinux.co.jp>
From: Horms <horms at verge.net.au>
Subject: Re: crash with Xen dom0 image from kdump
Date: Mon, 12 Jun 2006 12:49:47 +0900
> Hi,
>
> I did some poking around with regards to accessing guest domain's cr3
> from within the hypervisor (and thus a crash dump). I'm pretty sure that
> the following loop finds them all:
>
> void find_cr3(void)
> {
> struct domain *d;
> struct vcpu *v;
>
> /* Don't need to grab domlist_lock as we are the only thing running */
> for_each_domain ( d )
> for_each_vcpu ( d, v )
> if ( !test_bit(_VCPUF_down, &v->vcpu_flags) )
> printk("domain:%i vcpu:%u cr3:%08x\n",
> d->domain_id, v->vcpu_id,
> pagetable_get_pfn(v->arch.guest_table));
> }
>
> I currently call that function in machine_crash_shutdown() just before
> calling crash_save_self(). That is after all but the crashing CPU have
> been shutdown, and just before the crashing CPU is saved and the crash
> kernel is run.
>
> It produces the following output on a 2 CPU system with 2 guest (and one
> privileged) domains. All domains have all CPUs, though its fairly easy to
> imagine what the output would look like if they didn't.
>
> (XEN) domain:0 vcpu:0 cr3:00027243
> (XEN) domain:0 vcpu:1 cr3:0003e8a9
> (XEN) domain:1 vcpu:0 cr3:00026e0b
> (XEN) domain:1 vcpu:1 cr3:0002080c
> (XEN) domain:2 vcpu:0 cr3:000297d4
> (XEN) domain:2 vcpu:1 cr3:000297d0
>
> The nice thing is that this code is really just a trivial walk of
> domain_list, a global symbol. Is it possible for you to just access that,
> or perhaps for me to just save it in a crash note somewhere? It would
> be nice not to have to save all of the cr3 values in crash notes as
> the number of them depends on the number of active domains (and online
> CPUs), which cannot be predicted at boot time.
>
> If you do need stuff saved in crash notes, I guess I could just chain it
> off the crash note for CPU0. Or if its just one pointer I could probably
> find free space in the existing crash note for CPU0 as I seem to recall
> that some fields (like say for instance the pid as the hypervisor doesn't
> have them) aren't used.
>
> --
> Horms http://www.vergenet.net/~horms/
>
More information about the Crash-utility
mailing list