On 6/22/21 6:59 PM, Hannes Reinecke wrote: > 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> Thanks for your review. Coly Li