On Wed, May 08, 2013 at 01:14:52PM -0400, Jim Ohlstein wrote: > Hello, > > I upgraded my (custom) kernel earlier and found that multiple daemons > (cups, hal, syslog, ntpd, csh) crashed and dumped cores at or shortly > after boot. > > The error I saw several times on the console was: > > set_fpcontext err 22 > > I recompiled using the GENERIC kernel and saw the same error. > > > The error appears to be in the changes made in r250359 in fpu.c, as > r250358 boots as expected. > Quite weird, and the most troublesome part is that I cannot reproduce it locally. As a temporal workaround, you could set 'hw.use_xsave=0' at the loader prompt. The instructions below for kgdb assume that you did not applied this workaround.
What CPU do you have ? Please show me the verbose dmesg of the boot. Next, please do the following: run 'kgdb /boot/kernel/kernel /dev/mem', and from the kgdb prompt, do 'x/1xw use_xsave' and 'x/1xg xsave_mask'. Also, see below. > # uname -a > FreeBSD lucid-insanity 9.1-STABLE FreeBSD 9.1-STABLE #3 r250358: Wed May > 8 11:56:43 EDT 2013 > root@lucid-insanity:/usr/obj/usr/src/sys/GENERIC amd64 > > > World and kernel are built with clang 3.2. > > r250359 produces the error and core dumps: > > Sample gdb output: > > # gdb cupsd cupsd.core > 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 "amd64-marcel-freebsd"...(no debugging > symbols found)... > Core was generated by `cupsd'. > Program terminated with signal 10, Bus error. > Reading symbols from /usr/local/lib/libcupsmime.so.1...(no debugging > symbols found)...done. > Loaded symbols for /usr/local/lib/libcupsmime.so.1 > Reading symbols from /lib/libz.so.6...done. > Loaded symbols for /lib/libz.so.6 > Reading symbols from /usr/lib/libssl.so.6...done. > Loaded symbols for /usr/lib/libssl.so.6 > Reading symbols from /lib/libcrypto.so.6...done. > Loaded symbols for /lib/libcrypto.so.6 > Reading symbols from /usr/local/lib/libpaper.so.2...done. > Loaded symbols for /usr/local/lib/libpaper.so.2 > Reading symbols from /usr/local/lib/libcups.so.2...done. > Loaded symbols for /usr/local/lib/libcups.so.2 > Reading symbols from /lib/libcrypt.so.5...done. > Loaded symbols for /lib/libcrypt.so.5 > Reading symbols from /lib/libm.so.5...done. > Loaded symbols for /lib/libm.so.5 > Reading symbols from /usr/local/lib/libiconv.so.3...done. > Loaded symbols for /usr/local/lib/libiconv.so.3 > Reading symbols from /lib/libthr.so.3...done. > Loaded symbols for /lib/libthr.so.3 > Reading symbols from /lib/libc.so.7...done. > Loaded symbols for /lib/libc.so.7 > Reading symbols from /libexec/ld-elf.so.1...done. > Loaded symbols for /libexec/ld-elf.so.1 > #0 0x00007ffffffff1e3 in ?? () > [New Thread 802407400 (LWP 100450/cupsd)] > (gdb) > > # gdb csh csh.core > 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 "amd64-marcel-freebsd"... > Core was generated by `csh'. > Program terminated with signal 10, Bus error. > Reading symbols from /lib/libncurses.so.8...done. > Loaded symbols for /lib/libncurses.so.8 > Reading symbols from /lib/libcrypt.so.5...done. > Loaded symbols for /lib/libcrypt.so.5 > Reading symbols from /lib/libc.so.7...done. > Loaded symbols for /lib/libc.so.7 > Reading symbols from /usr/local/lib/libiconv.so...done. > Loaded symbols for /usr/local/lib/libiconv.so > Reading symbols from /libexec/ld-elf.so.1...done. > Loaded symbols for /libexec/ld-elf.so.1 > #0 0x00007ffffffff1e3 in ?? () > (gdb) From the core dump above, please do 'info registers' then take the value from %rdi and do 'x/2xg $rdi+0x300', then take the first value printed (let denote it as XSAVEADDR) and do 'x/8xg XSAVEADDR'. > > I can produce more if anyone is interested. > > > -- > Jim Ohlstein > _______________________________________________ > freebsd-stable@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-stable > To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"
pgpceG7qP1Pfn.pgp
Description: PGP signature