9

プロセスを微調整しようとすると、待機チャネルが stext であることがわかります。これはどういう意味ですか?

4

3 に答える 3

12

WCHAN は、プロセスがスリープしているカーネル内のアドレスです (実際にスリープしている場合)。stext に設定されているということは、通常、カーネルが 2.6 より前であり、System.map (namelist ファイル) を初期化していないか、カーネルと namelist ファイルが一致していないことを意味します。

「man ps」を実行して wchan を検索すると、namelist ファイルの検索パスが表示されます。stext はカーネル TEXT セグメントの開始点であり、そこで眠っている可能性は低いため、最初に見つかったものは、取得したカーネルと一致しない可能性があります。

アドレスが TEXT セグメントの外側にある場合、デフォルトで stext が取得されると思います (したがって、namelist ファイルとカーネルが一致しないという私の考えです)。

于 2009-01-01T11:08:19.620 に答える
6

wchan は、SCHED_NO_NO_OMIT_FRAME_POINTER が "y" (デフォルト値) に設定されている x86 システムでは壊れています。これらのシステムでは、wchan は常に _stext にマップされる "0" を返します。

詳細については、 http://lkml.org/lkml/2008/11/6/12を確認してください

于 2010-11-09T15:13:16.110 に答える
1

Kiwi - RHEL の ps は /boot/System.map-2.6.18-53.1.14.el5PAE から名前リストを取得する必要があります。これはすでにインストールされていると思います。正常に動作している場合はps axo pid,cmd,wchan、プロセスとそれらが待機しているカーネル関数のリストが生成されます。私の場合、rpc.idmap と lockd のいくつかを除いて、ほとんどの関数で意味のある出力です。いくつかの関数で「stext」が表示されますが、これが何を意味するのか知りたいです。

于 2012-01-07T18:53:26.927 に答える