Skip to contentSkip to conversation

backporting bcache-testing to kernel 3.4

DISCUSSION Dongsu Park 2 participants 2 messages Apr 22, 2013 – Apr 24, 2013 1 message not in the archive bcache (block layer cache)

lore
Share & tools
lore
#0 lore raw

Hi,

has anyone succeeded backporting bcache(-testing) branch to kernel 3.4?

I tried to get it working, patching commits from bcache-testing branch as well as block patches by Kent, on top of Kernel 3.4.23.

* writeback mode
* backing device: MD-RAID0, or a HDD
* cache device: loopback device on tmpfs (for test)
* testing command:
dd if=/dev/zero of=/dev/bcache0 bs=4K count=1M oflag=sync

Everything works fine, except for a problem of sync operation. Every write request is being immediately flushed into backing device. That's actually what I want to avoid in writeback caches. Observing block I/Os with iostat, it's weird that no data is actually written to backing device, despite of high IOPs. e.g.:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util

vdb      0.00     0.00    0.00 2550.00    0.00     0.00
0.00     2.05       0.81  0.00    0.81    0.26   67.00

If I test bcache-testing branch based on kernel 3.9-rc3, which means without backporting, then it works well without such massive bogus syncs. bcache-3.2 is also fine. So I suppose there might be any change on the block layer between 3.4 and 3.9, making bcache work in such a strange way.

Any idea?

Dongsu

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw

This sounds like the bug I _think_ I just fixed - Do you suppose you could try again with the current bcache branch?

Quoted 37 lines · Dongsu Park

Hi,

has anyone succeeded backporting bcache(-testing) branch to kernel 3.4?

I tried to get it working, patching commits from bcache-testing branch as well as block patches by Kent, on top of Kernel 3.4.23.

* writeback mode
* backing device: MD-RAID0, or a HDD
* cache device: loopback device on tmpfs (for test)
* testing command:
dd if=/dev/zero of=/dev/bcache0 bs=4K count=1M oflag=sync

Everything works fine, except for a problem of sync operation. Every write request is being immediately flushed into backing device. That's actually what I want to avoid in writeback caches. Observing block I/Os with iostat, it's weird that no data is actually written to backing device, despite of high IOPs. e.g.:

Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s
avgrq-sz avgqu-sz await r_await w_await svctm %util

vdb      0.00     0.00    0.00 2550.00    0.00     0.00
0.00     2.05       0.81  0.00    0.81    0.26   67.00

If I test bcache-testing branch based on kernel 3.9-rc3, which means without backporting, then it works well without such massive bogus syncs. bcache-3.2 is also fine. So I suppose there might be any change on the block layer between 3.4 and 3.9, making bcache work in such a strange way.

Any idea?

Dongsu

--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html