On 6/15/21 7:49 AM, Coly Li wrote: > This patch adds BCH_FEATURE_INCOMPAT_NVDIMM_META (value 0x0004) into the > incompat feature set. When this bit is set by bcache-tools, it indicates > bcache meta data should be stored on specific NVDIMM meta device. > > The bcache meta data mainly includes journal and btree nodes, when this > bit is set in incompat feature set, bcache will ask the nvm-pages > allocator for NVDIMM space to store the meta data. > > Signed-off-by: Coly Li <colyli@xxxxxxx> > Cc: Jianpeng Ma <jianpeng.ma@xxxxxxxxx> > Cc: Qiaowei Ren <qiaowei.ren@xxxxxxxxx> > --- > drivers/md/bcache/features.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/md/bcache/features.h b/drivers/md/bcache/features.h > index d1c8fd3977fc..45d2508d5532 100644 > --- a/drivers/md/bcache/features.h > +++ b/drivers/md/bcache/features.h > @@ -17,11 +17,19 @@ > #define BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET 0x0001 > /* real bucket size is (1 << bucket_size) */ > #define BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE 0x0002 > +/* store bcache meta data on nvdimm */ > +#define BCH_FEATURE_INCOMPAT_NVDIMM_META 0x0004 > > #define BCH_FEATURE_COMPAT_SUPP 0 > #define BCH_FEATURE_RO_COMPAT_SUPP 0 > +#if defined(CONFIG_BCACHE_NVM_PAGES) > +#define BCH_FEATURE_INCOMPAT_SUPP (BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET| \ > + BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE| \ > + BCH_FEATURE_INCOMPAT_NVDIMM_META) > +#else > #define BCH_FEATURE_INCOMPAT_SUPP (BCH_FEATURE_INCOMPAT_OBSO_LARGE_BUCKET| \ > BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE) > +#endif > > #define BCH_HAS_COMPAT_FEATURE(sb, mask) \ > ((sb)->feature_compat & (mask)) > @@ -89,6 +97,7 @@ static inline void bch_clear_feature_##name(struct cache_sb *sb) \ > > BCH_FEATURE_INCOMPAT_FUNCS(obso_large_bucket, OBSO_LARGE_BUCKET); > BCH_FEATURE_INCOMPAT_FUNCS(large_bucket, LOG_LARGE_BUCKET_SIZE); > +BCH_FEATURE_INCOMPAT_FUNCS(nvdimm_meta, NVDIMM_META); > > static inline bool bch_has_unknown_compat_features(struct cache_sb *sb) > { > Reviewed-by: Hannes Reinecke <hare@xxxxxxx> Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@xxxxxxx +49 911 74053 688 SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg HRB 36809 (AG Nürnberg), GF: Felix Imendörffer