beaglebone blackなどの非力なマシンで
くそでっかいファイルをコピーして sync したらカーネルパニックを起こした。
[ 420.350535] INFO: task sync:11110 blocked for more than 60 seconds. [ 420.357122] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 420.365312] sync D c038cccf 0 11110 9162 0x00000000 [ 420.371980] Kernel panic - not syncing: hung_task: blocked tasks [ 420.378274] [<c0010569>] (unwind_backtrace+0x1/0x8c) from [<c0388f91>] (panic+0x55/0x14c) [ 420.386809] [<c0388f91>] (panic+0x55/0x14c) from [<c0061d27>] (watchdog+0x153/0x1a0) [ 420.394895] [<c0061d27>] (watchdog+0x153/0x1a0) from [<c003cd3b>] (kthread+0x61/0x72) [ 420.403071] [<c003cd3b>] (kthread+0x61/0x72) from [<c000c73d>] (ret_from_fork+0x11/0x34) [ 420.411507] drm_kms_helper: panic occurred, switching back to text console [ 420.418673] Rebooting in 6 seconds..
http://docs.oracle.com/cd/E39368_01/e48214/ch05s02.html
ちょっと不安定なマシンだったので、念のためにカーネルパニックが起きたらリブートするようにしていた。
echo 6 > /proc/sys/kernel/panic echo 1 > /proc/sys/kernel/panic_on_oops
そこに、sync、設定値(60秒)以上固まるスレッドがやってきたため、カーネルパニックが発生した。
カーネルパニックが発生したので、リブートした。
対処法
ログにあるように、時間かかりそうことするときは /proc/sys/kernel/hung_task_timeout_secs に0書いて無効化しておく