[PATCH 00/20] bcache patches for Linux v5.12
From: Coly Li <hidden>
Date: 2021-02-10 05:08:48
Also in:
linux-block
Hi Jens,
This is the first wave bcache patches for Linux v5.12.
It is nice to see in this round we have 3 new patch contributors:
Jianpeng Ma, Qiaowei Ren and Kai Krakow.
In this series, the EXPERIMENTAL patches from Jianpeng Ma, Qiaowei Ren
and me are initial effort to store bcache meta-data on NVDIMM namespace.
The NVDIMM space is managed and mapped via DAX interface, and accessed
by linear address. In this submission we store bcache journal on NVDIMM,
in future bcache btree nodes and other meta data will be added in too,
before we remove the EXPERIMENTAL statues.
Dongdong Tao contributes a performance optimization when
bcache cache buckets are highly fregmented, Dongdong's patch makes the
dirty data writeback faster and from his benchmark reprots such changes
have recognized improvement for randome write I/O thoughput and latency
for highly fregmented buckets, and no regression for regular I/O
observed.
Kai Krakow contributes 4 patches to offload system_wq usage to separated
btree_io_wq and bch_flush_wq. In his environment the daily backup job
throughput increases from 60.2MB/s to 419MB/s and accomplished time
reduced from 14h29m to 2h13m.
Joe Perches also contributes a fine code stype fix which I pick for this
submission.
Please take them for Linux v5.12 merge window.
Thank you in advance.
Coly Li
---
Coly Li (8):
bcache: add initial data structures for nvm pages
bcache: use bucket index for SET_GC_MARK() in bch_btree_gc_finish()
bcache: add BCH_FEATURE_INCOMPAT_NVDIMM_META into incompat feature set
bcache: initialize bcache journal for NVDIMM meta device
bcache: support storing bcache journal into NVDIMM meta device
bcache: read jset from NVDIMM pages for journal replay
bcache: add sysfs interface register_nvdimm_meta to register NVDIMM
meta device
bcache: only initialize nvm-pages allocator when
CONFIG_BCACHE_NVM_PAGES configured
Jianpeng Ma (6):
bcache: initialize the nvm pages allocator
bcache: initialization of the buddy
bcache: bch_nvm_alloc_pages() of the buddy
bcache: bch_nvm_free_pages() of the buddy
bcache: get allocated pages from specific owner
bcache: persist owner info when alloc/free pages.
Joe Perches (1):
bcache: Avoid comma separated statements
Kai Krakow (4):
bcache: Fix register_device_aync typo
Revert "bcache: Kill btree_io_wq"
bcache: Give btree_io_wq correct semantics again
bcache: Move journal work to new flush wq
dongdong tao (1):
bcache: consider the fragmentation when update the writeback rate
drivers/md/bcache/Kconfig | 6 +
drivers/md/bcache/Makefile | 2 +-
drivers/md/bcache/bcache.h | 7 +
drivers/md/bcache/bset.c | 12 +-
drivers/md/bcache/btree.c | 27 +-
drivers/md/bcache/features.h | 9 +
drivers/md/bcache/journal.c | 293 ++++++++---
drivers/md/bcache/journal.h | 2 +-
drivers/md/bcache/nvm-pages.c | 853 ++++++++++++++++++++++++++++++++
drivers/md/bcache/nvm-pages.h | 112 +++++
drivers/md/bcache/super.c | 76 ++-
drivers/md/bcache/sysfs.c | 29 +-
drivers/md/bcache/writeback.c | 42 ++
drivers/md/bcache/writeback.h | 4 +
include/uapi/linux/bcache-nvm.h | 188 +++++++
15 files changed, 1579 insertions(+), 83 deletions(-)
create mode 100644 drivers/md/bcache/nvm-pages.c
create mode 100644 drivers/md/bcache/nvm-pages.h
create mode 100644 include/uapi/linux/bcache-nvm.h
--
2.26.2