シリアルポート経由で実行した後にカーネル pppd タスクがハングする

シリアルポート経由で実行した後にカーネル pppd タスクがハングする

pppLinux カーネル 2.6.32 を搭載した p2020 プロセッサを搭載したボードのコンソール ポートでデーモンを実行しようとしています。実行後、pppインターフェイスppp0が起動せず、エラーが発生しますpppd blocked for more than 120 sec。これをデバッグできません。

このエラーの発生を防ぐにはどうすればよいですか?

syslog 出力は以下のとおりです。

INFO: task pppd:2957 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
pppd D 0fe61c98 0 2957 2953 0x00000002
Call Trace:
[eec93d10] [c021ace4] n_tty_set_termios+0x3f8/0x59c (unreliable)
[eec93dd0] [c0007920] __switch_to+0x54/0xb0
[eec93de0] [c0381e8c] schedule+0x1f0/0x2f8
[eec93e20] [c021f308] tty_ldisc_ref_wait+0x6c/0xb0
[eec93e60] [c0218888] tty_ioctl+0x13c/0x9dc
[eec93e90] [c00b0aa4] vfs_ioctl+0x34/0x8c
[eec93ea0] [c00b0cc8] do_vfs_ioctl+0x88/0x72c
[eec93f10] [c00b13ac] sys_ioctl+0x40/0x74
[eec93f40] [c000f998] ret_from_syscall+0x0/0x3c
INFO: task pppd:2957 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
pppd D 0fe61c98 0 2957 2953 0x00000002

答え1

この特定のバージョンのカーネルにはバグがありました。バージョン 2.6.34 で修正されました。カーネルに対して発行されたチケットは次の通りです。バグ 16206 - 問題: PPP およびその他のシリアル ポート関連のアプリケーションがカーネル空間でハングする

パッチを自分でバックポートするか、カーネルの新しいバージョンに移行する必要があります。

関連情報