task_io_accounting_add という関数があってioの集計情報を足すのですが
その関数がexit時によばれて子プロセスのio統計が親プロセ スに加算されるようです。
linux-3.10.0-862.fc24.x86_64/ kernel/exit.c
内で、
release_task → __exit_signal → task_io_accounting_add という順に呼ばれています。
動作を確認するため簡単に実験しました。bashからddを実行するとそのあとにwrite_ bytesが100MiBくらい増えて統計情報だけみるとbashがI/Oしたかのようにみえるのがわかります。
snake:~$ cat /proc/$$/io
rchar: 4569105
wchar: 4335
syscr: 2875
syscw: 60
read_bytes: 0
write_bytes: 4096
cancelled_write_bytes: 0
その関数がexit時によばれて子プロセスのio統計が親プロセ
linux-3.10.0-862.fc24.x86_64/
内で、
release_task → __exit_signal → task_io_accounting_add という順に呼ばれています。
動作を確認するため簡単に実験しました。bashからddを実行するとそのあとにwrite_
snake:~$ cat /proc/$$/io
rchar: 4569105
wchar: 4335
syscr: 2875
syscw: 60
read_bytes: 0
write_bytes: 4096
cancelled_write_bytes: 0
snake:~$ dd if=/dev/zero of=/var/tmp/foo bs=1MiB count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0308119 s, 3.4 GB/s
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0308119 s, 3.4 GB/s
snake:~$ cat /proc/$$/io
rchar: 109501412
wchar: 104862679
syscr: 3095
syscw: 249
read_bytes: 8192
write_bytes: 104861696
cancelled_write_bytes: 0
rchar: 109501412
wchar: 104862679
syscr: 3095
syscw: 249
read_bytes: 8192
write_bytes: 104861696
cancelled_write_bytes: 0
0 件のコメント:
コメントを投稿