トップ «前の日記(2011-12-08) 最新 次の日記(2012-01-01)» 編集

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2011-12-14 [長年日記]

_ [FreeBSD]ddb scripts

先日の freezeの続き

kdb.enterイベントの種別は、sys/sys/kdb.hに定義されている KDB_WHT_UNSETを除くと名前がついてるイベントは以下のとおり(stable/9 rev.228485)

  • panic /* panic() was called. */
  • sysctl /* Sysctl entered debugger. */
  • bootflags /* Boot flags were set. */
  • witness /* Witness entered debugger. */
  • vfslock /* VFS detected lock problem. */
  • netgraph /* Netgraph entered debugger. */
  • break /* Console or serial break. */
  • watchdog /* Watchdog entered debugger. */
  • cam /* CAM has entered debugger. */
  • ndis /* NDIS entered debugger. */
  • acpi /* ACPI entered debugger. */
  • trapsig /* Sparc fault. */
  • powerfail /* Powerfail NMI. */
  • mac /* MAC Framework. */
  • powerpc /* Unhandled powerpc intr. */
  • unionfs /* Unionfs bug. */
  • dtrace /* DTrace action entered debugger. */

kdb.enter.defaultresetを仕込むと再起動するようなので、 kdbに突入していることは確実なので、標準でdump&resetになるpanic以外の どの イベントでkdbに突入したかを洗い出そうと調査中

kdb.enter.camkdb.enter.vfslockreset仕込んだ状態で freezeしたので、それ以外ぽぃ orz

amd64なシステムで発生しないはずのイベント

  • trapsig(sys/sparc64/sparc64/trap.c)
  • powerfail(sys/sparc64/pci/psycho.c)
  • powerpc(sys/powerpc/powermac/pswitch.c)

kernelに組み込んでないので発生しないはずのイベント

  • watchdog(sys/kern/kern_clock.c by SW_WATCHDOG)
  • watchdog(sys/amd64/amd64/mp_watchdog.c by MP_WATCHDOG)
  • ndis(sys/compat/ndis/subr_ntoskrnl.c)
  • unionfs(sys/fs/unionfs/union_subr.c)
  • dtrace(sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c)

明示的な呼び出しによるイベント

  • bootflags(boot_ddb boot flagで制御される kernel起動時の ddb trap)
  • sysctl(debug.kdb.enter sysctlで制御される sysctlの ddb trap)
  • break(debug.kdb.break_to_debugger sysctlで制御される break trap)

したがって、panic以外の調査対象イベントは...

  • witness /* Witness entered debugger. */
  • vfslock /* VFS detected lock problem. */
  • netgraph /* Netgraph entered debugger. */
  • cam /* CAM has entered debugger. */
  • acpi /* ACPI entered debugger. */
  • mac /* MAC Framework. */
  • unknown /* KDB_WHY_UNSET */

に絞られる

この仮設の妥当性を証明するのが第一段階かな?

まあ、なんで crash dumpが取れてないかも大問題なんだけどねぇ


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記