Julien Muchembled
2014-Nov-11 20:10 UTC
kernel >= 3.16 saturates I/O endlessly and without reason
Hello,
I upgraded my kernel from 3.15.10 to 3.17.2 and after a while, btrfs kworkers
started to read/write data at maximum speed for hours whereas I was doing
nothing. So I rebooted with kernel 3.15.10 and hopefully everything went back to
normal. Later attempts to upgrade to 3.16.7 or 3.17.2 showed the same issue,
immediately at boot or after a while.
In order to investigate a little, I copied the partition and mounted it in qemu
(snapshot mode, with cow file in tmpfs, debian kernel 3.16.7-2). I could see
that btrfs always wrote the same ~8MB in loop. qemu used all cpu and when I
stopped it, it wrote 190G and the generation number raised from 625955 to
853922.
I dumped the FS with btrfs-image. The restored FS has the same issue so I can
send the image (78M) to anyone who would like to debug.
$ btrfs fi df /
Data, single: total=13.62GiB, used=12.60GiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=1.00GiB, used=747.48MiB
GlobalReserve, single: total=256.00MiB, used=0.00B
$ btrfs fi show --mounted
Label: none uuid: f5a13768-b968-49c7-8a09-fdad88b83ea8
Total devices 1 FS bytes used 13.33GiB
devid 1 size 14.62GiB used 14.62GiB path /dev/sdb2
$ btrfs sub list -a /
ID 257 gen 626025 top level 5 path <FS_TREE>/@
ID 269 gen 28 top level 257 path @/usr/src/linux-sysrcd
ID 278 gen 599690 top level 257 path @/usr/src/linux-3.15-1
ID 279 gen 13003 top level 257 path @/usr/src/python3.3
ID 281 gen 13036 top level 257 path @/usr/src/python3.4
ID 282 gen 614068 top level 257 path @/usr/src/linux-3.16-1
ID 283 gen 599642 top level 257 path @/usr/src/linux-3.17-1