Я на Debian Jessie 8.2 . Есть ли способ выяснить, что именно записывает kworker или что вызывает эти записи? Я использую флешку для своей ОС.
deathstar> dmesg|grep sdc|grep WRITE
[ 335.765626] hwclock(991): WRITE block 8900608 on sdc1 (8 sectors)
[ 361.020065] kworker/u4:3(95): WRITE block 21037080 on sdc1 (8 sectors)
[ 361.020094] kworker/u4:3(95): WRITE block 8 on sdc1 (8 sectors)
[ 361.020099] kworker/u4:3(95): WRITE block 4194576 on sdc1 (8 sectors)
[ 361.020103] kworker/u4:3(95): WRITE block 4194672 on sdc1 (8 sectors)
[ 361.020107] kworker/u4:3(95): WRITE block 8388616 on sdc1 (8 sectors)
[ 361.020112] kworker/u4:3(95): WRITE block 8389088 on sdc1 (8 sectors)
[ 361.020116] kworker/u4:3(95): WRITE block 20971520 on sdc1 (8 sectors)
[ 361.020121] kworker/u4:3(95): WRITE block 20971648 on sdc1 (8 sectors)
[ 361.020125] kworker/u4:3(95): WRITE block 20971832 on sdc1 (8 sectors)
[ 361.020129] kworker/u4:3(95): WRITE block 20971848 on sdc1 (8 sectors)
[ 361.020133] kworker/u4:3(95): WRITE block 20972000 on sdc1 (8 sectors)
[ 366.028174] kworker/u4:3(95): WRITE block 4581024 on sdc1 (8 sectors)
[ 386.060077] kworker/u4:3(95): WRITE block 4644368 on sdc1 (8 sectors)
[РЕДАКТИРОВАТЬ]
The disk isn't full
/dev/sdc1 15G 5.5G 8.1G 41% /
cat write|grep WRITE|wc
69 lines but accumulates over 1hr
Я попробовал перф запись -g -a, предложенную ниже: Я вижу такие вещи, как:
- 0.02% 0.02% kworker/u4:4 [kernel.kallsyms] [k] i915_gem_object_move_to_inactive
- 0.02% 0.02% kworker/u4:4 [kernel.kallsyms] [k] cpuacct_charge
+ 0.03% 0.03% kworker/u4:4 [kernel.kallsyms] [k] radix_tree_next_chunk
+ 0.03% 0.03% kworker/u4:4 [kernel.kallsyms] [k] strlen
+ 0.03% 0.03% kworker/u4:4 [kernel.kallsyms] [k] radix_tree_lookup_slot
+ 0.03% 0.03% kworker/u4:4 [kernel.kallsyms] [k] find_get_pages
+ 0.03% 0.03% kworker/u4:4 [kernel.kallsyms] [k] inc_zone_page_state
+ 0.04% 0.04% kworker/u4:4 [kernel.kallsyms] [k] check_addr
Я думаю, возможно, это драйвер i915, но что теперь?
Как мне сделать что-то вроде perf -e ext4: ext4_write_begin, сопоставить с sdc и распечатать имя файла / процесс? Например: dtrace -n датчик / фильтр / {действие; }
Мне нужно сделать что-то вроде: dtrace -n 'io ::: start / execname == "kworker" / {printf ("% d% s% s", pid, execname, fileinfo_t}'