replica/pull時のソフトオーバフロー

replica/pull: システムの更新」に書いたように、Plan 9にはコマンド一発でソースコードも含めてシステムの状態を最新に保つ仕掛けがある。pull実行中にカーネルが「soverflow for fx->in」と大量のメッセージを出力することがあった*1。これはイーサネットの受信キューがあふれてしまっていることを意味している。

エラー発生自体は/net/ether0/statsを見ればわかるので、エラー出力はうざいので消してしまいたい。ソースコードの該当する箇所はpc/devether.cのetheriq関数で、qpass関数の実行に失敗している箇所のprintである。カーネルの再構築方法は「システムコールの追加」に書いた通りである。

*1:VMWare使っていることが影響しているかもしれない。pullが「reading /n/dist/386/9pcdisk.gz: Hangup」とも出力したが、最終的にはうまく実行完了した。