Hello,

I'm experiencing periodic write spikes while my system is idle.

According to iotop, they're being caused by "btrfs-endio-write",
"btrfs-transaction", and "btrfs-dealloc". Mostly, the issue is with
"endio-write": I've seen up to four of these processes write at the
same time. Using iostat, I've determined that these writes range from
1 to 6 megabytes in size, and that they occur roughly every 5 seconds.

These write spikes may prevent my disk from spinning down and lower
my battery life.

I fetched the latest unpatched mainline kernel and modified
linux/fs/btrfs/inode.c:2051 to add a debugging printk() inside of
btrfs_writepage_end_io_hook(). After running that kernel, I can confirm
two things;

1. The write spikes occur whenever btrfs does:

/* btrfs/inode.c:2051 */
workers = &root->fs_info->endio_write_workers;
btrfs_queue_worker(workers, &ordered_extent->work);

2. The write spikes seem to affect only one inode. That is to say, every
time there is a write spike, my printk() indicates that it is the exact
same inode being written to over and over again.

I actually scanned my entire disk for this mysterious inode (using
find / -inum ...), and it turned out to be some systemd log in
/var/log/journal. I turned off journald and rebooted, but the write spike
behavior remained. I tried removing write priviliges to that file and then
deleting it outright, but endio-write just picked another inode to write
to (which was again in /var/log/journal!).

I am not a kernel hacker and I'm not absolutely convinced this is a btrfs
issue, but I'd appreciate some pointers in the right direction.

best,
-vk
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to