4.2.4. I/O 監視 (デバイスごと)
このセクションでは、特定のデバイス上の I/O アクティビティーを監視する方法を説明します。
例4.15 traceio2.stp
例4.15「traceio2.stp」 は、全体デバイス番号という引数 1 つを取ります。この番号を取得するには、stat -c "0x%D" directory を使用します。この directory は、監視するデバイス上にあります。
usrdev2kerndev()
関数は、全体デバイス番号をカーネルが理解する書式に変換します。usrdev2kerndev()
が生成した出力は、特定デバイスのメジャー番号とマイナー番号を決定するために MKDEV()
、MINOR()
、および MAJOR()
関数とともに使用されます。
例4.15「traceio2.stp」 の出力には、読み取り/書き込みを実行しているプロセスの名前と ID、実行している関数 (
vfs_read
または vfs_write
)、およびカーネルデバイス番号が含まれます。
次の例は、stap traceio2.stp 0x805 の完全な出力からの抜粋です。ここで、
0x805
は /home
のデバイス番号全体です。/home
は、監視したいデバイスである /dev/sda5
にあります。
例4.16 例4.15「traceio2.stp」 出力サンプル