Hello,
I made a fresh amd64 9.0-RELEASE install. Then I built a custom kernel (along with world) from cvsup-ed RELENG_9_0 source tree. Everything is hunky-dory but one thing gives me hard time - system won't do a proper crashdump upon panic.
My setup is as follows:
root on ZFS (2nd disk is bigger as the 150GB one was not in stock during failed disk replacement):
Kernel configuration changes against GENERIC kernel:
And some relevant files:
Swap is currently not mirrored, it will be gmirrored later.
Now when I tried to simulate panic with:
System starts to dump. But in a matter of seconds watchdog logs that timeout has expired and the whole system gets frozen. I waited long enough (15min) but nothing happened, no change on the screen.
I have KDB_UNATTENDED specified in kernel configuration so when panic occurs system won't escape to debugger prompt put rather gets rebooted.
Watchdog is enabled so system gets rebooted when system freezes, etc.
This combination of options did work on 8.2 though.
I made a fresh amd64 9.0-RELEASE install. Then I built a custom kernel (along with world) from cvsup-ed RELENG_9_0 source tree. Everything is hunky-dory but one thing gives me hard time - system won't do a proper crashdump upon panic.
My setup is as follows:
root on ZFS (2nd disk is bigger as the 150GB one was not in stock during failed disk replacement):
# gpart show
Code:
=> 34 312581741 ada0 GPT (149G)
34 128 1 freebsd-boot (64k)
162 16777216 2 freebsd-swap (8.0G)
16777378 295804397 3 freebsd-zfs (141G)
=> 34 488397101 ada1 GPT (232G)
34 128 1 freebsd-boot (64k)
162 16777216 2 freebsd-swap (8.0G)
16777378 295804397 3 freebsd-zfs (141G)
312581775 175815360 4 freebsd-swap (83G)
# zpool status zroot
Code:
pool: zroot
state: ONLINE
scan: resilvered 48.9G in 0h11m with 0 errors on Wed Jan 18 14:20:26 2012
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
ada0p3 ONLINE 0 0 0
ada1p3 ONLINE 0 0 0
errors: No known data errors
Kernel configuration changes against GENERIC kernel:
# diff GENERIC FOXI
Code:
22c22
< ident GENERIC
---
> ident FOXI
64,65c64,65
< #options KDTRACE_FRAME # Ensure frames are compiled in
< #options KDTRACE_HOOKS # Kernel DTrace hooks
---
> options KDTRACE_FRAME # Ensure frames are compiled in
> options KDTRACE_HOOKS # Kernel DTrace hooks
68a69
> options KDB_UNATTENDED
338a340,363
>
> #
> # -- custom
> #
> device coretemp
> device ichwd
> options SW_WATCHDOG
>
> options MROUTING
>
> # PF
> device pf
> device pflog
> device pfsync
> options ALTQ
> options ALTQ_CBQ # Class Bases Queuing (CBQ)
> options ALTQ_RED # Random Early Detection (RED)
> options ALTQ_RIO # RED In/Out
> options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
> options ALTQ_PRIQ # Priority Queuing (PRIQ)
> options ALTQ_NOPCC # Required for SMP build
>
> makeoptions WITH_CTF=1 # dtrace prereq
>
And some relevant files:
# grep -vE '^$|^#' /etc/make.conf
Code:
CPUTYPE?=nocona
USA_RESIDENT=true
DOC_LANG=en_US.ISO8859-1
NO_PROFILE=true
NO_SENDMAIL=true
WITHOUT_X11=yes
WITHOUT_X=yes
WITH_X=NO
ENABLE_GUI=NO
PERL_VERSION=5.12.4
# grep -vE '^$|^#' /boot/loader.conf
Code:
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot"
console="vidconsole,comconsole"
boot_multicons="YES"
boot_serial="YES"
loader_logo="beastiebw"
# grep -iE 'watch|dump|zfs' /etc/rc.conf
Code:
watchdogd_enable="YES"
zfs_enable="YES"
dumpdev="AUTO"
dumpdir="/var/crash"
# swapinfo -m
Code:
Device 1M-blocks Used Avail Capacity
/dev/gpt/swap0 8192 3 8188 0%
/dev/gpt/swap1 8192 3 8188 0%
Total 16384 6 16377 0%
Swap is currently not mirrored, it will be gmirrored later.
Now when I tried to simulate panic with:
# sysctl debug.kdb.panic=1
System starts to dump. But in a matter of seconds watchdog logs that timeout has expired and the whole system gets frozen. I waited long enough (15min) but nothing happened, no change on the screen.
I have KDB_UNATTENDED specified in kernel configuration so when panic occurs system won't escape to debugger prompt put rather gets rebooted.
Watchdog is enabled so system gets rebooted when system freezes, etc.
This combination of options did work on 8.2 though.