From: Coly Li <colyli@suse.de>
To: Hannes Reinecke <hare@suse.de>
Cc: linux-bcache@vger.kernel.org, axboe@kernel.dk,
linux-block@vger.kernel.org, Jianpeng Ma <jianpeng.ma@intel.com>,
Randy Dunlap <rdunlap@infradead.org>,
Qiaowei Ren <qiaowei.ren@intel.com>
Subject: Re: [PATCH 04/14] bcache: initialize the nvm pages allocator
Date: Wed, 23 Jun 2021 17:34:45 +0800 [thread overview]
Message-ID: <5d418422-641d-0d76-3eb3-570e3706b88c@suse.de> (raw)
In-Reply-To: <48cab671-d4d6-d5f2-29bf-b2f19e04e533@suse.de>
On 6/23/21 5:16 PM, Hannes Reinecke wrote:
> On 6/23/21 7:26 AM, Coly Li wrote:
>> On 6/22/21 6:39 PM, Hannes Reinecke wrote:
>>> On 6/15/21 7:49 AM, Coly Li wrote:
>>>> From: Jianpeng Ma <jianpeng.ma@intel.com>
>>>>
>>>> This patch define the prototype data structures in memory and
>>>> initializes the nvm pages allocator.
>>>>
>>>> The nvm address space which is managed by this allocator 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
>>>> register_namespace()
>>>> to register the nvdimm device (like /dev/pmemX) into this allocator as
>>>> the instance of struct nvm_namespace.
>>>>
>>>> Reported-by: Randy Dunlap <rdunlap@infradead.org>
>>>> Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
>>>> Co-developed-by: Qiaowei Ren <qiaowei.ren@intel.com>
>>>> Signed-off-by: Qiaowei Ren <qiaowei.ren@intel.com>
>>>> Signed-off-by: Coly Li <colyli@suse.de>
>>>> ---
>>>> drivers/md/bcache/Kconfig | 10 ++
>>>> drivers/md/bcache/Makefile | 1 +
>>>> drivers/md/bcache/nvm-pages.c | 295
>>>> ++++++++++++++++++++++++++++++++++
>>>> drivers/md/bcache/nvm-pages.h | 74 +++++++++
>>>> drivers/md/bcache/super.c | 3 +
>>>> 5 files changed, 383 insertions(+)
>>>> 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..a69f6c0e0507 100644
>>>> --- a/drivers/md/bcache/Kconfig
>>>> +++ b/drivers/md/bcache/Kconfig
>>>> @@ -35,3 +35,13 @@ 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 64BIT
>>>> + depends on LIBNVDIMM
>>>> + depends on DAX
>>>> + help
>>>> + Allocate/release NV-memory pages for bcache and provide
>>>> allocated pages
>>>> + for each requestor after system reboot.
>>>> diff --git a/drivers/md/bcache/Makefile b/drivers/md/bcache/Makefile
>>>> index 5b87e59676b8..2397bb7c7ffd 100644
>>>> --- a/drivers/md/bcache/Makefile
>>>> +++ b/drivers/md/bcache/Makefile
>>>> @@ -5,3 +5,4 @@ obj-$(CONFIG_BCACHE) += bcache.o
>>>> bcache-y := alloc.o bset.o btree.o closure.o debug.o
>>>> extents.o\
>>>> io.o journal.o movinggc.o request.o stats.o super.o sysfs.o
>>>> trace.o\
>>>> util.o writeback.o features.o
>>>> +bcache-$(CONFIG_BCACHE_NVM_PAGES) += nvm-pages.o
>>>> diff --git a/drivers/md/bcache/nvm-pages.c
>>>> b/drivers/md/bcache/nvm-pages.c
>>>> new file mode 100644
>>>> index 000000000000..18fdadbc502f
>>>> --- /dev/null
>>>> +++ b/drivers/md/bcache/nvm-pages.c
>>>> @@ -0,0 +1,295 @@
>>>> +// SPDX-License-Identifier: GPL-2.0-only
>>>> +/*
>>>> + * Nvdimm page-buddy allocator
>>>> + *
>>>> + * Copyright (c) 2021, Intel Corporation.
>>>> + * Copyright (c) 2021, Qiaowei Ren <qiaowei.ren@intel.com>.
>>>> + * Copyright (c) 2021, Jianpeng Ma <jianpeng.ma@intel.com>.
>>>> + */
>>>> +
>>>> +#if defined(CONFIG_BCACHE_NVM_PAGES)
>>>> +
>>> No need for this 'if' statement as it'll be excluded by the Makefile
>>> anyway if the config option isn't set.
>>
>> Such if is necessary because stub routines are defined when
>> CONFIG_BCACHE_NVM_PAGES is not defined, e.g.
>>
>> 426 +#else
>> 427 +
>> 428 +static inline struct bch_nvm_namespace
>> *bch_register_namespace(const char *dev_path)
>> 429 +{
>> 430 + return NULL;
>> 431 +}
>> 432 +static inline int bch_nvm_init(void)
>> 433 +{
>> 434 + return 0;
>> 435 +}
>> 436 +static inline void bch_nvm_exit(void) { }
>> 437 +
>> 438 +#endif /* CONFIG_BCACHE_NVM_PAGES */
>>
> But then these stubs should be defined in the header file, not here.
>
> [ .. ]
Copied, it will be improved in next post. Thanks for your review and
comment.
Coly Li
next prev parent reply other threads:[~2021-06-23 9:34 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-15 5:49 [PATCH 00/14] bcache patches for Linux v5.14 Coly Li
2021-06-15 5:49 ` [PATCH 01/14] bcache: fix error info in register_bcache() Coly Li
2021-06-22 9:47 ` Hannes Reinecke
2021-06-15 5:49 ` [PATCH 02/14] md: bcache: Fix spelling of 'acquire' Coly Li
2021-06-22 10:03 ` Hannes Reinecke
2021-06-15 5:49 ` [PATCH 03/14] bcache: add initial data structures for nvm pages Coly Li
2021-06-21 16:17 ` Ask help for code review (was Re: [PATCH 03/14] bcache: add initial data structures for nvm pages) Coly Li
2021-06-22 8:41 ` Huang, Ying
2021-06-23 4:32 ` Coly Li
2021-06-23 6:53 ` Huang, Ying
2021-06-23 7:04 ` Christoph Hellwig
2021-06-23 7:19 ` Coly Li
2021-06-23 7:21 ` Christoph Hellwig
2021-06-23 10:05 ` Coly Li
2021-06-23 11:16 ` Coly Li
2021-06-23 11:49 ` Christoph Hellwig
2021-06-23 12:09 ` Coly Li
2021-06-22 10:19 ` [PATCH 03/14] bcache: add initial data structures for nvm pages Hannes Reinecke
2021-06-23 7:09 ` Coly Li
2021-06-15 5:49 ` [PATCH 04/14] bcache: initialize the nvm pages allocator Coly Li
2021-06-22 10:39 ` Hannes Reinecke
2021-06-23 5:26 ` Coly Li
2021-06-23 9:16 ` Hannes Reinecke
2021-06-23 9:34 ` Coly Li [this message]
2021-06-15 5:49 ` [PATCH 05/14] bcache: initialization of the buddy Coly Li
2021-06-22 10:45 ` Hannes Reinecke
2021-06-23 5:35 ` Coly Li
2021-06-23 5:46 ` Re[2]: " Pavel Goran
2021-06-23 6:03 ` Coly Li
2021-06-15 5:49 ` [PATCH 06/14] bcache: bch_nvm_alloc_pages() " Coly Li
2021-06-22 10:51 ` Hannes Reinecke
2021-06-23 6:02 ` Coly Li
2021-06-15 5:49 ` [PATCH 07/14] bcache: bch_nvm_free_pages() " Coly Li
2021-06-22 10:53 ` Hannes Reinecke
2021-06-23 6:06 ` Coly Li
2021-06-15 5:49 ` [PATCH 08/14] bcache: get allocated pages from specific owner Coly Li
2021-06-22 10:54 ` Hannes Reinecke
2021-06-23 6:08 ` Coly Li
2021-06-15 5:49 ` [PATCH 09/14] bcache: use bucket index to set GC_MARK_METADATA for journal buckets in bch_btree_gc_finish() Coly Li
2021-06-22 10:55 ` Hannes Reinecke
2021-06-23 6:09 ` Coly Li
2021-06-15 5:49 ` [PATCH 10/14] bcache: add BCH_FEATURE_INCOMPAT_NVDIMM_META into incompat feature set Coly Li
2021-06-22 10:59 ` Hannes Reinecke
2021-06-23 6:09 ` Coly Li
2021-06-15 5:49 ` [PATCH 11/14] bcache: initialize bcache journal for NVDIMM meta device Coly Li
2021-06-22 11:01 ` Hannes Reinecke
2021-06-23 6:17 ` Coly Li
2021-06-23 9:20 ` Hannes Reinecke
2021-06-23 10:14 ` Coly Li
2021-06-15 5:49 ` [PATCH 12/14] bcache: support storing bcache journal into " Coly Li
2021-06-22 11:03 ` Hannes Reinecke
2021-06-23 6:19 ` Coly Li
2021-06-15 5:49 ` [PATCH 13/14] bcache: read jset from NVDIMM pages for journal replay Coly Li
2021-06-22 11:04 ` Hannes Reinecke
2021-06-23 6:21 ` Coly Li
2021-06-15 5:49 ` [PATCH 14/14] bcache: add sysfs interface register_nvdimm_meta to register NVDIMM meta device Coly Li
2021-06-22 11:04 ` Hannes Reinecke
2021-06-21 15:14 ` [PATCH 00/14] bcache patches for Linux v5.14 Jens Axboe
2021-06-21 15:25 ` Coly Li
2021-06-21 15:27 ` Jens Axboe
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=5d418422-641d-0d76-3eb3-570e3706b88c@suse.de \
--to=colyli@suse.de \
--cc=axboe@kernel.dk \
--cc=hare@suse.de \
--cc=jianpeng.ma@intel.com \
--cc=linux-bcache@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=qiaowei.ren@intel.com \
--cc=rdunlap@infradead.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;
as well as URLs for NNTP newsgroup(s).