bcache: add readahead cache policy options via sysfs interface
authorColy Li <colyli@suse.de>
Sat, 1 Feb 2020 14:42:33 +0000 (22:42 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 1 Feb 2020 14:55:39 +0000 (07:55 -0700)
commit038ba8cc1bffc51250add4a9b9249d4331576d8f
tree44e5406a0c7317700f2053dcc3dcc2b870fb7a15
parent7c02b0055f774ed9afb6e1c7724f33bf148ffdc0
bcache: add readahead cache policy options via sysfs interface

In year 2007 high performance SSD was still expensive, in order to
save more space for real workload or meta data, the readahead I/Os
for non-meta data was bypassed and not cached on SSD.

In now days, SSD price drops a lot and people can find larger size
SSD with more comfortable price. It is unncessary to alway bypass
normal readahead I/Os to save SSD space for now.

This patch adds options for readahead data cache policies via sysfs
file /sys/block/bcache<N>/readahead_cache_policy, the options are,
- "all": cache all readahead data I/Os.
- "meta-only": only cache meta data, and bypass other regular I/Os.

If users want to make bcache continue to only cache readahead request
for metadata and bypass regular data readahead, please set "meta-only"
to this sysfs file. By default, bcache will back to cache all read-
ahead requests now.

Cc: stable@vger.kernel.org
Signed-off-by: Coly Li <colyli@suse.de>
Acked-by: Eric Wheeler <bcache@linux.ewheeler.net>
Cc: Michael Lyle <mlyle@lyle.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/bcache.h
drivers/md/bcache/request.c
drivers/md/bcache/sysfs.c