Date: Fri, 31 Jul 2009 09:40:26 -0700 From: Marcel Moolenaar <xcllnt@mac.com> To: John Baldwin <jhb@freebsd.org> Cc: Anton Shterenlikht <mexas@bristol.ac.uk>, freebsd-current@freebsd.org, Alexandre Sunny Kovalenko <gaijin.k@gmail.com>, freebsd-ia64@freebsd.org Subject: Re: FreeBSD 8.0-BETA2/amd64 crashes on SMP under load Message-ID: <718AFBEF-DA22-4A5B-8E9A-8C3C2E18DB47@mac.com> In-Reply-To: <200907310846.34200.jhb@freebsd.org> References: <4A6DB30B.20705@zedat.fu-berlin.de> <20090730170930.GA74245@mech-cluster241.men.bris.ac.uk> <CE5FE268-CF7D-4A26-9E2F-6590CCACB73E@mac.com> <200907310846.34200.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jul 31, 2009, at 5:46 AM, John Baldwin wrote: > On Thursday 30 July 2009 1:16:32 pm Marcel Moolenaar wrote: >> >> On Jul 30, 2009, at 10:09 AM, Anton Shterenlikht wrote: >> >>> On Thu, Jul 30, 2009 at 10:02:29AM -0700, Marcel Moolenaar wrote: >>>> >>>> On Jul 30, 2009, at 2:05 AM, Anton Shterenlikht wrote: >>>>> By the way, are these two FreeBSD docs up to date: >>>>> >>>>> > http://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/advanced.html#KERNEL-PANIC-TROUBLESHOOTING >>>>> >>>>> > http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug.html >>>>> >>>>> In particular, it is still true that minidump is a default dump >>>>> type? >>>> >>>> ia64 doesn't yet have minidumps. In fact, changes to GDB that >>>> happened a year ago or so broke the ability to read ia64 core >>>> files. I plan on implementing minidumps after 8.0-RELEASE. >>> >>> you mean, even if I get a dump, I wouldn't be able to read it? >> >> Correct. >> >> The change that broke it is: >> http://svn.FreeBSD.org/viewvc/base?view=revision&revision=178670 > > Wait, how did that break ia64 but not other architectures? hob% sudo kgdb -n 1 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ia64-marcel-freebsd"... GDB can't read core files on this machine. (kgdb) info target Symbols from "/usr/obj/nfs/freebsd/base/head/sys/HOB/kernel.debug". Local exec file: `/usr/obj/nfs/freebsd/base/head/sys/HOB/kernel.debug', file type elf64-ia64-little. Entry point: 0xe000000004068000 0xe000000004000190 - 0xe00000000400019d is .interp 0xe0000000040001a0 - 0xe00000000400b100 is .hash 0xe00000000400b100 - 0xe000000004034cc8 is .dynsym 0xe000000004034cc8 - 0xe0000000040505f3 is .dynstr 0xe0000000040505f8 - 0xe000000004061518 is .rela.data 0xe000000004061518 - 0xe000000004062ad8 is .rela.got 0xe000000004062ad8 - 0xe000000004062af0 is .rela.sdata 0xe000000004068000 - 0xe00000000469fcc0 is .text 0xe00000000469fcc0 - 0xe000000004715884 is .rodata 0xe000000004715890 - 0xe00000000471f350 is .opd 0xe00000000471f350 - 0xe00000000475c0c0 is .IA_64.unwind_info 0xe00000000475c0c0 - 0xe00000000478bc40 is .IA_64.unwind 0xe00000000478e000 - 0xe0000000047f1868 is .data 0xe0000000047f1868 - 0xe0000000047f3a70 is set_sysctl_set 0xe0000000047f3a80 - 0xe0000000047f4780 is set_pcpu 0xe0000000047f4780 - 0xe0000000047f5c48 is set_sysinit_set 0xe0000000047f5c48 - 0xe0000000047f6610 is set_sysuninit_set 0xe0000000047f6610 - 0xe0000000047f70a0 is set_modmetadata_set 0xe0000000047f70a0 - 0xe0000000047f70b8 is set_kdb_dbbe_set 0xe0000000047f70b8 - 0xe0000000047f70c8 is set_gdb_dbgport_set ---Type <return> to continue, or q <return> to quit--- 0xe0000000047f70c8 - 0xe0000000047f70e0 is set_cons_set 0xe0000000047f70e0 - 0xe0000000047f7200 is .dynamic 0xe0000000047f7200 - 0xe000000004810bc8 is .got 0xe000000004810bc8 - 0xe0000000048124dc is .sdata 0xe0000000048124e0 - 0xe000000004814a00 is .sbss 0xe000000004814a00 - 0xe0000000049d52f0 is .bss (kgdb) The stratum of the kgdb target was changed from highest (thread_stratum) to lowest (core_stratum). As such, rather than hide kernel core file details from GDB we became dependent upon them. Simply changing the stratum from core_stratum to thread_stratum shows what's going on: hob% sudo kgdb -n 1 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "ia64-marcel-freebsd"... warning: "/var/crash/vmcore.1": no core file handler recognizes format, using default In other words: kgdb was designed to hide FreeBSD specifics from the core GDB code, because core GDB doesn't know how to deal with all FreeBSD details. Revision 178670 created a stronger dependency on core GDB and as such broke architectures that core GDB doesn't support for FreeBSD. FYI, -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?718AFBEF-DA22-4A5B-8E9A-8C3C2E18DB47>