[Crash-utility] xencrash some bug fix
Dave Anderson
anderson at redhat.com
Thu Mar 15 13:24:02 UTC 2007
Itsuro ODA wrote:
> Hi,
>
> The attached patch fixes the following xencrash bugs:
>
> * "bt" not switch mca stack to vcpu stack (ia64.c)
> * "bt" causes infinite loop if ar_bspstore is illegal value
> (unwind.c line 1747)
> (illegal ar_bspstore value may be something worng, error stop
> is OK. the fix is not limited for XEN_HYPER_MODE, I think
> the fix is more robust.)
> * "bt" shows unnecessary warning message (unwind.c line 1674)
> * "man log" causes SIGSEGV (xen_hyper_global_data.c)
> * "man log" is no example (xen_hyper_global_data.c)
>
> The patch is for crash-4.0-3.20.
>
> Thanks.
> --
> Itsuro ODA <oda at valinux.co.jp>
Queued for the next release...
Thanks,
Dave
>
>
> --
> Index: ia64.c
> ===================================================================
> RCS file: /cvsroot/xen_ia64/people/xencrash/src/crash/ia64.c,v
> retrieving revision 1.3
> retrieving revision 1.3.2.1
> diff -u -r1.3 -r1.3.2.1
> --- ia64.c 21 Feb 2007 22:58:33 -0000 1.3
> +++ ia64.c 9 Mar 2007 06:40:22 -0000 1.3.2.1
> @@ -4009,7 +4009,7 @@
> if (symbol_exists("unw_init_frame_info")) {
> machdep->flags |= NEW_UNWIND;
> if (MEMBER_EXISTS("unw_frame_info", "pt")) {
> - if (MEMBER_EXISTS("pt_regs", "ar_csd")) {
> + if (MEMBER_EXISTS("cpu_user_regs", "ar_csd")) {
> machdep->flags |= NEW_UNW_V3;
> ms->unwind_init = unwind_init_v3;
> ms->unwind = unwind_v3;
> Index: unwind.c
> ===================================================================
> RCS file: /cvsroot/xen_ia64/people/xencrash/src/crash/unwind.c,v
> retrieving revision 1.2
> retrieving revision 1.2.2.2
> diff -u -r1.2 -r1.2.2.2
> --- unwind.c 21 Feb 2007 22:58:33 -0000 1.2
> +++ unwind.c 14 Mar 2007 07:33:21 -0000 1.2.2.2
> @@ -1674,8 +1674,13 @@
> unw_get_sp(info, &sp);
> unw_get_bsp(info, &bsp);
>
> - if (ip < GATE_ADDR + PAGE_SIZE)
> - break;
> + if (XEN_HYPER_MODE()) {
> + if (!IS_KVADDR(ip))
> + break;
> + } else {
> + if (ip < GATE_ADDR + PAGE_SIZE)
> + break;
> + }
>
> if ((sm = value_search(ip, NULL)))
> name = sm->name;
> @@ -1747,7 +1752,8 @@
> if (unw_switch_from_osinit_v3(info, bt, "INIT") == FALSE)
> break;
> } else {
> - unw_switch_from_osinit_v2(info, bt);
> + if (unw_switch_from_osinit_v2(info, bt) == FALSE)
> + break;
> frame++;
> goto restart;
> }
> Index: xen_hyper_global_data.c
> ===================================================================
> RCS file: /cvsroot/xen_ia64/people/xencrash/src/crash/xen_hyper_global_data.c,v
> retrieving revision 1.2
> retrieving revision 1.2.2.3
> diff -u -r1.2 -r1.2.2.3
> --- xen_hyper_global_data.c 21 Feb 2007 22:58:33 -0000 1.2
> +++ xen_hyper_global_data.c 14 Mar 2007 07:28:21 -0000 1.2.2.3
> @@ -169,7 +169,41 @@
> char *xen_hyper_help_log[] = {
> "log",
> "dump system message buffer",
> +" ",
> " This command dumps the xen conring contents in chronological order." ,
> +" ",
> +"EXAMPLES",
> +" Dump the Xen message buffer:\n",
> +" %s> log",
> +" __ __ _____ ___ _ _ _",
> +" \\ \\/ /___ _ __ |___ / / _ \\ _ _ _ __ ___| |_ __ _| |__ | | ___",
> +" \\ // _ \\ '_ \\ |_ \\| | | |__| | | | '_ \\/ __| __/ _` | '_ \\| |/ _ \\",
> +" / \\ __/ | | | ___) | |_| |__| |_| | | | \\__ \\ || (_| | |_) | | __/",
> +" /_/\\_\\___|_| |_| |____(_)___/ \\__,_|_| |_|___/\\__\\__,_|_.__/|_|\\___|",
> +" ",
> +" http://www.cl.cam.ac.uk/netos/xen",
> +" University of Cambridge Computer Laboratory",
> +" ",
> +" Xen version 3.0-unstable (damm@) (gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0,",
> +" pie-8.7.9)) Wed Dec 6 17:34:32 JST 2006",
> +" Latest ChangeSet: unavailable",
> +" ",
> +" (XEN) Console output is synchronous.",
> +" (XEN) Command line: 12733-i386-pae/xen.gz console=com1 sync_console conswitch=bb com1",
> +" =115200,8n1,0x3f8 dom0_mem=480000 crashkernel=64M at 32M",
> +" (XEN) Physical RAM map:",
> +" (XEN) 0000000000000000 - 0000000000098000 (usable)",
> +" (XEN) 0000000000098000 - 00000000000a0000 (reserved)",
> +" (XEN) 00000000000f0000 - 0000000000100000 (reserved)",
> +" (XEN) 0000000000100000 - 000000003f7f0000 (usable)",
> +" (XEN) 000000003f7f0000 - 000000003f7f3000 (ACPI NVS)",
> +" (XEN) 000000003f7f3000 - 000000003f800000 (ACPI data)",
> +" (XEN) 00000000e0000000 - 00000000f0000000 (reserved)",
> +" (XEN) 00000000fec00000 - 0000000100000000 (reserved)",
> +" (XEN) Kdump: 64MB (65536kB) at 0x2000000",
> +" (XEN) System RAM: 1015MB (1039904kB)",
> +" (XEN) ACPI: RSDP (v000 XPC ) @ 0x000f9250",
> +" ...",
> NULL
> };
> --
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
More information about the Crash-utility
mailing list