From: colyli@suse.de
To: linux-bcache@vger.kernel.org
Cc: linux-block@vger.kernel.org, Coly Li <colyli@suse.de>
Subject: [PATCH 00/14] bcache: remove multiple caches code framework
Date: Sat, 15 Aug 2020 20:47:29 +0800 [thread overview]
Message-ID: <20200815124743.115270-1-colyli@suse.de> (raw)
From: Coly Li <colyli@suse.de>
The multiple caches code framework in bcache is to store multiple
copies of the cached data among multiple caches of the cache set.
Current code framework just does simple data write to each cache without
any extra condition handling (e.g. device failure, slow devices). This
code framework is not and will never be completed. Considering people
may use md raid1 for same similar data duplication purpose, the multiple
caches framework is useless dead code indeed.
Due to the multiple caches code framework, bcache has two data structure
struct cache and struct cache_set to manage the cache device. Indeed
since bcache was merged into mainline kernel in Linux v3.10, a cache set
only has one cache, the unnecessary two level abstraction makes extra
effort to maintain redundant information between struct cache and struct
cache set, for examaple the in-memmory super block struct cache_sb.
This is the first wave effort to remove multiple caches framework and
make the code and data structure relation to be more clear. This series
explicitly make each cache set only have single cache, and remove the
embedded partial super block in struct cache_set and directly reference
cache's in-memory super block, finally move struct cache_sb from
include/uapi/linux/bcache.h to drivers/md/bcache/bcache.h since it isn't
part of uapi anymore.
The patch set is just compiling passed, I post this series early for
your review and comments. More fixes after testing will follow up soon.
Thanks in advance.
Coly Li
----
Coly Li (14):
bcache: remove 'int n' from parameter list of bch_bucket_alloc_set()
bcache: explicitly make cache_set only have single cache
bcache: remove for_each_cache()
bcache: add set_uuid in struct cache_set
bcache: only use block_bytes() on struct cache
bcache: remove useless alloc_bucket_pages()
bcache: remove useless bucket_pages()
bcache: only use bucket_bytes() on struct cache
bcache: avoid data copy between cache_set->sb and cache->sb
bcache: don't check seq numbers in register_cache_set()
bcache: remove can_attach_cache()
bcache: check and set sync status on cache's in-memory super block
bcache: remove embedded struct cache_sb from struct cache_set
bcache: move struct cache_sb out of uapi bcache.h
drivers/md/bcache/alloc.c | 60 ++++-----
drivers/md/bcache/bcache.h | 128 +++++++++++++++---
drivers/md/bcache/btree.c | 144 ++++++++++----------
drivers/md/bcache/btree.h | 2 +-
drivers/md/bcache/debug.c | 10 +-
drivers/md/bcache/extents.c | 6 +-
drivers/md/bcache/features.c | 4 +-
drivers/md/bcache/io.c | 2 +-
drivers/md/bcache/journal.c | 246 ++++++++++++++++------------------
drivers/md/bcache/movinggc.c | 58 ++++----
drivers/md/bcache/request.c | 6 +-
drivers/md/bcache/super.c | 225 +++++++++++--------------------
drivers/md/bcache/sysfs.c | 10 +-
drivers/md/bcache/writeback.c | 2 +-
include/trace/events/bcache.h | 4 +-
include/uapi/linux/bcache.h | 98 --------------
16 files changed, 445 insertions(+), 560 deletions(-)
--
2.26.2
next reply other threads:[~2020-08-15 22:23 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-15 12:47 colyli [this message]
2020-08-15 12:47 ` [PATCH v1 01/14] bcache: remove 'int n' from parameter list of bch_bucket_alloc_set() colyli
2020-08-15 12:47 ` [PATCH v1 02/14] bcache: explicitly make cache_set only have single cache colyli
2020-08-15 12:47 ` [PATCH v1 03/14] bcache: remove for_each_cache() colyli
2020-08-15 12:47 ` [PATCH v1 04/14] bcache: add set_uuid in struct cache_set colyli
2020-08-15 12:47 ` [PATCH v1 05/14] bcache: only use block_bytes() on struct cache colyli
2020-08-15 12:47 ` [PATCH v1 06/14] bcache: remove useless alloc_bucket_pages() colyli
2020-08-15 12:47 ` [PATCH v1 07/14] bcache: remove useless bucket_pages() colyli
2020-08-15 12:47 ` [PATCH v1 08/14] bcache: only use bucket_bytes() on struct cache colyli
2020-08-15 12:47 ` [PATCH v1 09/14] bcache: avoid data copy between cache_set->sb and cache->sb colyli
2020-08-15 12:47 ` [PATCH v1 10/14] bcache: don't check seq numbers in register_cache_set() colyli
2020-08-15 12:47 ` [PATCH v1 11/14] bcache: remove can_attach_cache() colyli
2020-08-15 12:47 ` [PATCH v1 12/14] bcache: check and set sync status on cache's in-memory super block colyli
2020-08-15 12:47 ` [PATCH v1 13/14] bcache: remove embedded struct cache_sb from struct cache_set colyli
2020-08-15 12:47 ` [PATCH v1 14/14] bcache: move struct cache_sb out of uapi bcache.h colyli
-- strict thread matches above, loose matches on Subject: below --
2020-08-15 4:10 [PATCH 00/14] bcache: remove multiple caches code framework Coly Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200815124743.115270-1-colyli@suse.de \
--to=colyli@suse.de \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox