FreeBSD Daily Topics

2009年6月29日FreeBSD 7.2に3つのセキュリティアドバイザリ(マルチスレッドプロセスからのfork(2)でデッドロックの可能性、fxp(4)で性能劣化のケースあり、bce(4)とlagg(4)組み合わせ不動作)

security-advisory

3件のFreeBSDセキュリティアドバイザリが公開されました。

FreeBSD-EN-09:04.fork

FreeBSD-EN-09:04.forkでは、FreeBSD 7.2のfork(2)にデッドロックの問題があることが報告されています。マルチスレッドで動作しているプロセスがあった場合、そのスレッドのいずれかからfork(2)で子プロセスを生成したとき、他のスレッドにmalloc(3)があると、子プロセスにおいてデッドロックが発生します。これはロック順序が逆になっていた部分があったためです。この問題を解決するには、システムを最新のセキュリティブランチへアップデートするか、/usr/src/lib/libc/malloc.cにパッチをあてて、/usr/src/lib/libcにて「make obj && make depend && make && make install」のようにライブラリを更新します。

FreeBSD-EN-09:03.fxp

FreeBSD-EN-09:03.fxpにてFreeBSD 7.2のfxp(4)ネットワークデバイスドライバに性能上の問題があったことが報告されています。fxp(4)はIntel i82557、i82558、i82559、i82550、i82562チップセットに対応したネットワークデバイスドライバです。i82550およびi82551に対してはTCP segmentation offload (TSO)がサポートされています。

今回、このfxp(4)でTSOが有効になっているケースで、状況によってはパケットロスが多発して通信性能が劣化するケースがあることがわかりました。FreeBSD 7.2でfxp(4)を使っているケースで、どうも通信が遅い気がするという場合、この問題に該当している可能性があります。この問題を解決するには、システムを最新のセキュリティブランチへアップデートするか、パッチをあててカーネルを再構築する必要があります。

また、一時的に問題を回避するのであれば、fxp(4)のTSOを無効にすればよく、この操作は「ifconfig fxp0 -tso」または「sysctl net.inet.tcp.tso=0」のように実施できます。

FreeBSD-EN-09:02.bce

FreeBSD-EN-09:02.bceにてFreeBSD 7.2のbce(4)ネットワークデバイスドライバに問題があり、lagg(4)と組み合わせた場合にt正しく動作しない問題があると報告されています。bce(4)はBroadcom NetXtreme II(BCM5706/5708/5709/5716)PCI/PCIe Gigabit Ethernetアダプタに対するドライバです。lagg(4)はフォールトトレランスなどを実現するための仮想ネットワークインターフェースドライバです。

この問題を一時的に回避する方法はありません。この問題を解決するには、システムを最新のセキュリティブランチへアップデートするか、パッチをあててカーネルを再構築する必要があります。

links

BSD Magazine free PDFs

bsdmag.org - PDF articlesにおいてBSD Magazineの記事のいくつかがPDFで提供されています。購読するにはメールアドレスを登録する必要があります。

おすすめ記事

記事・ニュース一覧