[PATCH 0/6] bcache: store bcache journal on NVDIMM pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi folks,

This is the first effort to store bcache meta data on NVDIMM, now the
bcache journal can be stored on NVDIMM pages. 

The bcache code does not directly support NVDIMM, the NVDIMM pages are
managed with a simple buddy-like pages alocator nvm-pages. The nvm-pages
allocator is developed by Jianpeng Ma and Qiaowei Ren from Intel. It
could be a separated kernel module to manage NVDIMM space in form of
pages and share them among multiple users (drivers). Now nvm-pages is
directly included in bcache kernel module as EXPERIMENTAL function.

This series is a just-enough code to work, we will continue to improve
both bcache and nvm-pages allocator before removing the EXPERIMENTAL tag
from Kconfig. In the very basic testing 30%+ IOPS increasing is observed
for 512Byte random writes when storing bcache journal jset on NVDIMM
namespace.

Thanks to Jianpeng Ma and Qiaowei Re fo their contribution to the mini
nvm-pages allocator, which helps a lot to allocate and release the pages
from NVDIMM nagespace much simpler for bcache journaling.

Coly Li
---

Coly Li (6):
  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
  bache: read jset from NVDIMM pages for journal replay
  bcache: add sysfs interface register_nvdimm_meta to register NVDIMM
    meta device

 drivers/md/bcache/btree.c    |   6 +-
 drivers/md/bcache/features.h |   9 ++
 drivers/md/bcache/journal.c  | 288 +++++++++++++++++++++++++++--------
 drivers/md/bcache/journal.h  |   2 +-
 drivers/md/bcache/super.c    |  38 ++++-
 5 files changed, 274 insertions(+), 69 deletions(-)

-- 
2.26.2




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux