Hi everyone, I am using btrfs for my /home partition since I upgraded my slow laptop hdd for an ssd 3 weeks ago. I am always in sync with Linus' tree of the day (plus a btrfs patch which is not in there yet) and so far I haven't lost any data, so all is good. I have a question about the write behavior of the various [btrfs- ] kernel threads, as I've been monitoring what is writing to the ssd just in case. So what I've been observing with 'iostat', 'iotop' and 'blktrace' is the following. If my laptop is almost absolutely idle (just a plain Window Maker and a few xterms and a couple dockapps open) there is nothing writing to the disk (which is OK). But as soon as I leave an open tab in chrome (or firefox) the various [btrfs- ] threads start writing in my /home, and I don't know what. For testing purposes, I mounted the config dir of chrome (~/.config/google-chrome) in my SD card (at /dev/mmcblk0p1) to exclude the possibility of maybe chrome trying to update its history or something, so that it does not write anything in my /home partition with btrfs. But I see this in the output of 'iotop' from a 60 sec interval, showing only the processes which wrote something: Total DISK READ: 0 B/s | Total DISK WRITE: 10.26 K/s PID USER DISK READ DISK WRITE SWAPIN IO COMMAND 485 root 0 B/s 5.19 K/s 0.00 % 0.02 % [btrfs-transacti] 3792 root 0 B/s 0 B/s 0.00 % 0.01 % [flush-btrfs-1] 476 root 0 B/s 0.13 K/s 0.00 % 0.00 % [btrfs-delalloc-] 481 root 0 B/s 4.93 K/s 0.00 % 0.00 % [btrfs-endio-wri] and there are more instances like this. Is there a way to avoid (or reduce) the writings of these threads? And when I start opening some pages in chrome and use it some more I get many many writes on my /home partition from these threads (and swapper, see below) even though I mounted the .config/google-chrome dir under /dev/mmcblk0p1 which uses ext4. >From another experiment where chrome was showing a blank tab a ~7 minutes run of 'blktrace -a write /dev/sda3' (sda3 is my /home) ends like this (from 'blkparse -s sda3.blktrace.0'): 8,3 1 73 432.719342409 485 I W 27409442 + 8 [btrfs-transacti] 8,3 1 74 432.719348765 485 C W 27278498 + 8 [0] 8,3 1 0 432.719355400 0 m N cfq485 complete rqnoidle 1 8,3 0 3244 432.719464704 0 D W 27409442 + 8 [swapper] 8,3 0 3245 432.719535525 0 C W 27409442 + 8 [0] 8,3 0 3246 432.719632676 0 C W 27409442 + 8 [0] btrfs-endio-met (2714) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 8, 40KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-endio-wri (481) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 1, 4KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-submit-0 (475) Reads Queued: 0, 0KiB Writes Queued: 545, 2,412KiB Read Dispatches: 0, 0KiB Write Dispatches: 517, 2,308KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 415, 1,860KiB Read Merges: 0, 0KiB Write Merges: 2, 8KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-transacti (485) Reads Queued: 0, 0KiB Writes Queued: 8, 32KiB Read Dispatches: 0, 0KiB Write Dispatches: 4, 16KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 3, 12KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 swapper (0) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 30, 120KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 128, 544KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 CPU0 (sda3): Reads Queued: 0, 0KiB Writes Queued: 540, 2,392KiB Read Dispatches: 0, 0KiB Write Dispatches: 542, 2,408KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 546, 2,424KiB Read Merges: 0, 0KiB Write Merges: 2, 8KiB Read depth: 0 Write depth: 32 IO unplugs: 0 Timer unplugs: 0 CPU1 (sda3): Reads Queued: 0, 0KiB Writes Queued: 13, 52KiB Read Dispatches: 0, 0KiB Write Dispatches: 9, 36KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 9, 36KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB Read depth: 0 Write depth: 32 IO unplugs: 0 Timer unplugs: 0 Total (sda3): Reads Queued: 0, 0KiB Writes Queued: 553, 2,444KiB Read Dispatches: 0, 0KiB Write Dispatches: 551, 2,444KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 555, 2,460KiB Read Merges: 0, 0KiB Write Merges: 2, 8KiB IO unplugs: 0 Timer unplugs: 0 Throughput (R/W): 0KiB/s / 5KiB/s Events (sda3): 6,463 entries Skips: 0 forward (0 - 0.0%) and see how the summary of processes lists only [btrfs- ] threads and the swapper. And this is my 'idle' laptop while I am not saving anything as far as I know. [ I get really worried when I 'blktrace -a write' my /home when actively using chrome. Just a 2-minute experiment here while I was writing this email ended up like this: 8,3 0 0 124.098327632 0 m N cfq481 activate rq, drv=1 8,3 0 0 124.099056219 0 m N cfq481 complete rqnoidle 0 8,3 0 0 124.099058803 0 m N cfq481 set_slice=100 8,3 0 0 124.099060968 0 m N cfq schedule dispatch Xorg (1111) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 13, 92KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 42, 532KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 blktrace (4226) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 8, 204KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-cache-127 (4267) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 1, 8KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-delalloc- (476) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 83, 724KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-endio-met (479) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 3, 16KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-endio-met (2714) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 23, 156KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 69, 304KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-endio-wri (481) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 27, 252KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-submit-0 (475) Reads Queued: 0, 0KiB Writes Queued: 1,144, 7,280KiB Read Dispatches: 0, 0KiB Write Dispatches: 898, 5,772KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 563, 2,716KiB Read Merges: 0, 0KiB Write Merges: 28, 236KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-transacti (485) Reads Queued: 0, 0KiB Writes Queued: 6, 24KiB Read Dispatches: 0, 0KiB Write Dispatches: 14, 68KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 41, 180KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 btrfs-worker-1 (2701) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 1, 4KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 12, 144KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 chrome (4180) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 6, 168KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 chrome (4228) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 12, 80KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 chrome (4238) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 92, 448KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 97, 424KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 exe (4248) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 20, 136KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 32, 348KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 exe (4249) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 2, 12KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 exe (4253) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 5, 56KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 flush-btrfs-1 (4227) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 1, 88KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 8, 48KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 kondemand/1 (3910) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 2, 12KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 kthreadd (2) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 1, 12KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 swapper (0) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 60, 540KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 110, 1,072KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 wmlaptop2 (1597) Reads Queued: 0, 0KiB Writes Queued: 0, 0KiB Read Dispatches: 0, 0KiB Write Dispatches: 0, 0KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 1, 4KiB Read Merges: 0, 0KiB Write Merges: 0, 0KiB IO unplugs: 0 Timer unplugs: 0 Allocation wait: 0 Allocation wait: 0 Dispatch wait: 0 Dispatch wait: 0 Completion wait: 0 Completion wait: 0 CPU0 (sda3): Reads Queued: 0, 0KiB Writes Queued: 432, 2,268KiB Read Dispatches: 0, 0KiB Write Dispatches: 418, 2,292KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 421, 2,288KiB Read Merges: 0, 0KiB Write Merges: 16, 100KiB Read depth: 0 Write depth: 32 IO unplugs: 0 Timer unplugs: 0 CPU1 (sda3): Reads Queued: 0, 0KiB Writes Queued: 718, 5,036KiB Read Dispatches: 0, 0KiB Write Dispatches: 704, 5,012KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 704, 5,028KiB Read Merges: 0, 0KiB Write Merges: 12, 136KiB Read depth: 0 Write depth: 32 IO unplugs: 0 Timer unplugs: 0 Total (sda3): Reads Queued: 0, 0KiB Writes Queued: 1,150, 7,304KiB Read Dispatches: 0, 0KiB Write Dispatches: 1,122, 7,304KiB Reads Requeued: 0 Writes Requeued: 0 Reads Completed: 0, 0KiB Writes Completed: 1,125, 7,316KiB Read Merges: 0, 0KiB Write Merges: 28, 236KiB IO unplugs: 0 Timer unplugs: 0 Throughput (R/W): 0KiB/s / 58KiB/s Events (sda3): 17,035 entries Skips: 0 forward (0 - 0.0%) because having 7 Megs written in 2 minutes just by reading some webpages feels a bit strange. So that is why I wanted to ask if other people using btrfs see the same thing, if this is the expected behavior or if there is something I can tweak to reduce the number of writes etc. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
