From: colyli@suse.de
To: linux-bcache@vger.kernel.org
Cc: linux-block@vger.kernel.org, Coly Li <colyli@suse.de>
Subject: [PATCH v3 00/16] bcache: extend bucket size to 32bit width
Date: Wed, 15 Jul 2020 22:29:59 +0800 [thread overview]
Message-ID: <20200715143015.14957-1-colyli@suse.de> (raw)
From: Coly Li <colyli@suse.de>
This patch series is an effort to extent bucket_size from 16bit to
32bit width. This is the code base for next step to use zoned device as
cache device.
In this series, these changes should be noticed,
- Increase the super block version to
BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
- The new version adds 3 new members,
__le64 feature_compat;
__le64 feature_incompat;
__le64 feature_ro_compat;
If new feature added will change the on-disk format, just setting the
feature set bits, no need to upstream super block version.
- The in-memory struct cache_sb does not exactly map the on-disk struct
cache_sb_disk.
- Add 32bit bucket_size_hi in struct cache_sb_disk,
__le32 bucket_size_hi;
In theory bucket_size can be extended to 48bit, but now 32bit width is
big enough.
- Other changes to follow the large bucket size.
The changes are mostly on cache device, except the super block update
there is no change about the backing device.
Any code review comments or suggestion is welcome. Thanks in advance.
Coly Li
---
Changelog:
v3: Update with Hannes' comments of v2 series code review.
v2: several bug fixes, and add sysfs file to display cache set feature
sets information.
v1: initial RFC version.
Coly Li (16):
bcache: add read_super_common() to read major part of super block
bcache: add more accurate error information in read_super_common()
bcache: disassemble the big if() checks in bch_cache_set_alloc()
bcache: fix super block seq numbers comparision in
register_cache_set()
bcache: increase super block version for cache device and backing
device
bcache: move bucket related code into read_super_common()
bcache: struct cache_sb is only for in-memory super block now
bcache: introduce meta_bucket_pages() related helper routines
bcache: handle c->uuids properly for bucket size > 8MB
bcache: handle cache prio_buckets and disk_buckets properly for bucket
size > 8MB
bcache: handle cache set verify_ondisk properly for bucket size > 8MB
bcache: handle btree node memory allocation properly for bucket size >
8MB
bcache: add bucket_size_hi into struct cache_sb_disk for large bucket
bcache: add sysfs file to display feature sets information of cache
set
bcache: avoid extra memory allocation from mempool c->fill_iter
bcache: avoid extra memory consumption in struct bbio for large bucket
size
drivers/md/bcache/Makefile | 2 +-
drivers/md/bcache/alloc.c | 2 +-
drivers/md/bcache/bcache.h | 29 +++-
drivers/md/bcache/btree.c | 12 +-
drivers/md/bcache/features.c | 70 ++++++++++
drivers/md/bcache/features.h | 84 +++++++++++
drivers/md/bcache/io.c | 2 +-
drivers/md/bcache/movinggc.c | 4 +-
drivers/md/bcache/super.c | 261 ++++++++++++++++++++++++-----------
drivers/md/bcache/sysfs.c | 6 +
include/uapi/linux/bcache.h | 38 +++--
11 files changed, 407 insertions(+), 103 deletions(-)
create mode 100644 drivers/md/bcache/features.c
create mode 100644 drivers/md/bcache/features.h
--
2.26.2
next reply other threads:[~2020-07-15 14:30 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-15 14:29 colyli [this message]
2020-07-15 14:30 ` [PATCH v3 01/16] bcache: add read_super_common() to read major part of super block colyli
2020-07-15 14:30 ` [PATCH v3 02/16] bcache: add more accurate error information in read_super_common() colyli
2020-07-15 14:30 ` [PATCH v3 03/16] bcache: disassemble the big if() checks in bch_cache_set_alloc() colyli
2020-07-15 14:30 ` [PATCH v3 04/16] bcache: fix super block seq numbers comparision in register_cache_set() colyli
2020-07-15 14:30 ` [PATCH v3 05/16] bcache: increase super block version for cache device and backing device colyli
2020-07-15 14:30 ` [PATCH v3 06/16] bcache: move bucket related code into read_super_common() colyli
2020-07-15 14:30 ` [PATCH v3 07/16] bcache: struct cache_sb is only for in-memory super block now colyli
2020-07-15 18:21 ` Christoph Hellwig
2020-07-16 3:31 ` Coly Li
2020-07-15 14:30 ` [PATCH v3 08/16] bcache: introduce meta_bucket_pages() related helper routines colyli
2020-07-15 15:36 ` Hannes Reinecke
2020-07-15 16:00 ` Coly Li
2020-07-15 14:30 ` [PATCH v3 09/16] bcache: handle c->uuids properly for bucket size > 8MB colyli
2020-07-15 15:37 ` Hannes Reinecke
2020-07-15 14:30 ` [PATCH v3 10/16] bcache: handle cache prio_buckets and disk_buckets " colyli
2020-07-15 15:38 ` Hannes Reinecke
2020-07-15 14:30 ` [PATCH v3 11/16] bcache: handle cache set verify_ondisk " colyli
2020-07-16 6:07 ` Hannes Reinecke
2020-07-15 14:30 ` [PATCH v3 12/16] bcache: handle btree node memory allocation " colyli
2020-07-16 6:08 ` Hannes Reinecke
2020-07-15 14:30 ` [PATCH v3 13/16] bcache: add bucket_size_hi into struct cache_sb_disk for large bucket colyli
2020-07-16 6:15 ` Hannes Reinecke
2020-07-16 6:41 ` Coly Li
2020-07-16 7:02 ` Hannes Reinecke
2020-07-16 7:08 ` Coly Li
2020-07-15 14:30 ` [PATCH v3 14/16] bcache: add sysfs file to display feature sets information of cache set colyli
2020-07-16 6:17 ` Hannes Reinecke
2020-07-16 6:20 ` Coly Li
2020-07-15 14:30 ` [PATCH v3 15/16] bcache: avoid extra memory allocation from mempool c->fill_iter colyli
2020-07-16 6:18 ` Hannes Reinecke
2020-07-15 14:30 ` [PATCH v3 16/16] bcache: avoid extra memory consumption in struct bbio for large bucket size colyli
2020-07-16 6:18 ` Hannes Reinecke
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=20200715143015.14957-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.