On 4/28/21 2:39 PM, Qiaowei Ren wrote: > From: Jianpeng Ma <jianpeng.ma@xxxxxxxxx> > > This patch define the prototype data structures in memory and initializes > the nvm pages allocator. > > The nvm address space which is managed by this allocatior can consist of > many nvm namespaces, and some namespaces can compose into one nvm set, > like cache set. For this initial implementation, only one set can be > supported. > > The users of this nvm pages allocator need to call regiseter_namespace() > to register the nvdimm device (like /dev/pmemX) into this allocator as > the instance of struct nvm_namespace. > > v9: > -Fix Kconfig dependance error(Reported-by Randy) > -Fix an uninitialized return value(Colin) > > Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Signed-off-by: Jianpeng Ma <jianpeng.ma@xxxxxxxxx> > Co-developed-by: Qiaowei Ren <qiaowei.ren@xxxxxxxxx> > Signed-off-by: Qiaowei Ren <qiaowei.ren@xxxxxxxxx> > Signed-off-by: Coly Li <colyli@xxxxxxx> > Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> > --- > drivers/md/bcache/Kconfig | 8 + > drivers/md/bcache/Makefile | 2 +- > drivers/md/bcache/nvm-pages.c | 285 ++++++++++++++++++++++++++++++++++ > drivers/md/bcache/nvm-pages.h | 74 +++++++++ > drivers/md/bcache/super.c | 3 + > 5 files changed, 371 insertions(+), 1 deletion(-) > create mode 100644 drivers/md/bcache/nvm-pages.c > create mode 100644 drivers/md/bcache/nvm-pages.h > > diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig > index d1ca4d059c20..3057da4cf8ff 100644 > --- a/drivers/md/bcache/Kconfig > +++ b/drivers/md/bcache/Kconfig > @@ -35,3 +35,11 @@ config BCACHE_ASYNC_REGISTRATION > device path into this file will returns immediately and the real > registration work is handled in kernel work queue in asynchronous > way. > + > +config BCACHE_NVM_PAGES > + bool "NVDIMM support for bcache (EXPERIMENTAL)" > + depends on BCACHE > + depends on LIBNVDIMM > + depends on DAX > + help > + nvm pages allocator for bcache. Please follow coding-style for Kconfig files: (from Documentation/process/coding-style.rst, section 10): For all of the Kconfig* configuration files throughout the source tree, the indentation is somewhat different. Lines under a ``config`` definition are indented with one tab, while help text is indented an additional two spaces. Also, that help text could be better. -- ~Randy