Re: [PATCH 10/14] bcache: add BCH_FEATURE_INCOMPAT_NVDIMM_META into incompat feature set

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

 



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



[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