Message ID | 20240325044452.3125418-26-dlemoal@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Zone write plugging | expand |
On 3/24/24 21:44, Damien Le Moal wrote: > diff --git a/block/blk-mq-debugfs.h b/block/blk-mq-debugfs.h > index 9c7d4b6117d4..3ebe2c29b624 100644 > --- a/block/blk-mq-debugfs.h > +++ b/block/blk-mq-debugfs.h > @@ -83,7 +83,7 @@ static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos) > } > #endif > > -#ifdef CONFIG_BLK_DEBUG_FS_ZONED > +#if defined(CONFIG_BLK_DEV_ZONED) && defined(CONFIG_BLK_DEBUG_FS) > int queue_zone_wlock_show(void *data, struct seq_file *m); > #else > static inline int queue_zone_wlock_show(void *data, struct seq_file *m) > diff --git a/block/blk-zoned.c b/block/blk-zoned.c > index 03222314d649..62160a8675f4 100644 > --- a/block/blk-zoned.c > +++ b/block/blk-zoned.c > @@ -22,6 +22,7 @@ > > #include "blk.h" > #include "blk-mq-sched.h" > +#include "blk-mq-debugfs.h" > > #define ZONE_COND_NAME(name) [BLK_ZONE_COND_##name] = #name > static const char *const zone_cond_name[] = { > @@ -1745,3 +1746,22 @@ void blk_zone_dev_init(void) > { > blk_zone_wplugs_cachep = KMEM_CACHE(blk_zone_wplug, SLAB_PANIC); > } > + > +#ifdef CONFIG_BLK_DEBUG_FS > + > +int queue_zone_wlock_show(void *data, struct seq_file *m) > +{ > + struct request_queue *q = data; > + unsigned int i; > + > + if (!q->disk->seq_zones_wlock) > + return 0; > + > + for (i = 0; i < q->disk->nr_zones; i++) > + if (test_bit(i, q->disk->seq_zones_wlock)) > + seq_printf(m, "%u\n", i); > + > + return 0; > +} > + > +#endif This patch increases the number of #ifdefs in block layer .c files so I'm not sure that this patch can be considered an improvement. Thanks, Bart.
On 3/26/24 07:20, Bart Van Assche wrote: > On 3/24/24 21:44, Damien Le Moal wrote: >> diff --git a/block/blk-mq-debugfs.h b/block/blk-mq-debugfs.h >> index 9c7d4b6117d4..3ebe2c29b624 100644 >> --- a/block/blk-mq-debugfs.h >> +++ b/block/blk-mq-debugfs.h >> @@ -83,7 +83,7 @@ static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos) >> } >> #endif >> >> -#ifdef CONFIG_BLK_DEBUG_FS_ZONED >> +#if defined(CONFIG_BLK_DEV_ZONED) && defined(CONFIG_BLK_DEBUG_FS) >> int queue_zone_wlock_show(void *data, struct seq_file *m); >> #else >> static inline int queue_zone_wlock_show(void *data, struct seq_file *m) >> diff --git a/block/blk-zoned.c b/block/blk-zoned.c >> index 03222314d649..62160a8675f4 100644 >> --- a/block/blk-zoned.c >> +++ b/block/blk-zoned.c >> @@ -22,6 +22,7 @@ >> >> #include "blk.h" >> #include "blk-mq-sched.h" >> +#include "blk-mq-debugfs.h" >> >> #define ZONE_COND_NAME(name) [BLK_ZONE_COND_##name] = #name >> static const char *const zone_cond_name[] = { >> @@ -1745,3 +1746,22 @@ void blk_zone_dev_init(void) >> { >> blk_zone_wplugs_cachep = KMEM_CACHE(blk_zone_wplug, SLAB_PANIC); >> } >> + >> +#ifdef CONFIG_BLK_DEBUG_FS >> + >> +int queue_zone_wlock_show(void *data, struct seq_file *m) >> +{ >> + struct request_queue *q = data; >> + unsigned int i; >> + >> + if (!q->disk->seq_zones_wlock) >> + return 0; >> + >> + for (i = 0; i < q->disk->nr_zones; i++) >> + if (test_bit(i, q->disk->seq_zones_wlock)) >> + seq_printf(m, "%u\n", i); >> + >> + return 0; >> +} >> + >> +#endif > > This patch increases the number of #ifdefs in block layer .c files so > I'm not sure that this patch can be considered an improvement. Not following... This removes CONFIG_BLK_DEBUG_FS_ZONED and only add this single ifdef here in blk-zoned.c instead of testing the removed config in blk-mq-debugfs.h. Same count and one less config. Sure, there is one ifdef in c code added. But I *really* prefer that instead of having zone related code all over the place guarded with #if defined(CONFIG_BLK_DEV_ZONED). So unless Jens is against this change, I am keeping it. > > Thanks, > > Bart.
diff --git a/block/Kconfig b/block/Kconfig index 1de4682d48cc..9f647149fbee 100644 --- a/block/Kconfig +++ b/block/Kconfig @@ -198,10 +198,6 @@ config BLK_DEBUG_FS Unless you are building a kernel for a tiny system, you should say Y here. -config BLK_DEBUG_FS_ZONED - bool - default BLK_DEBUG_FS && BLK_DEV_ZONED - config BLK_SED_OPAL bool "Logic for interfacing with Opal enabled SEDs" depends on KEYS diff --git a/block/Makefile b/block/Makefile index 46ada9dc8bbf..168150b9c510 100644 --- a/block/Makefile +++ b/block/Makefile @@ -33,7 +33,6 @@ obj-$(CONFIG_BLK_MQ_VIRTIO) += blk-mq-virtio.o obj-$(CONFIG_BLK_DEV_ZONED) += blk-zoned.o obj-$(CONFIG_BLK_WBT) += blk-wbt.o obj-$(CONFIG_BLK_DEBUG_FS) += blk-mq-debugfs.o -obj-$(CONFIG_BLK_DEBUG_FS_ZONED)+= blk-mq-debugfs-zoned.o obj-$(CONFIG_BLK_SED_OPAL) += sed-opal.o obj-$(CONFIG_BLK_PM) += blk-pm.o obj-$(CONFIG_BLK_INLINE_ENCRYPTION) += blk-crypto.o blk-crypto-profile.o \ diff --git a/block/blk-mq-debugfs-zoned.c b/block/blk-mq-debugfs-zoned.c deleted file mode 100644 index a77b099c34b7..000000000000 --- a/block/blk-mq-debugfs-zoned.c +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Copyright (C) 2017 Western Digital Corporation or its affiliates. - */ - -#include <linux/blkdev.h> -#include "blk-mq-debugfs.h" - -int queue_zone_wlock_show(void *data, struct seq_file *m) -{ - struct request_queue *q = data; - unsigned int i; - - if (!q->disk->seq_zones_wlock) - return 0; - - for (i = 0; i < q->disk->nr_zones; i++) - if (test_bit(i, q->disk->seq_zones_wlock)) - seq_printf(m, "%u\n", i); - - return 0; -} diff --git a/block/blk-mq-debugfs.h b/block/blk-mq-debugfs.h index 9c7d4b6117d4..3ebe2c29b624 100644 --- a/block/blk-mq-debugfs.h +++ b/block/blk-mq-debugfs.h @@ -83,7 +83,7 @@ static inline void blk_mq_debugfs_unregister_rqos(struct rq_qos *rqos) } #endif -#ifdef CONFIG_BLK_DEBUG_FS_ZONED +#if defined(CONFIG_BLK_DEV_ZONED) && defined(CONFIG_BLK_DEBUG_FS) int queue_zone_wlock_show(void *data, struct seq_file *m); #else static inline int queue_zone_wlock_show(void *data, struct seq_file *m) diff --git a/block/blk-zoned.c b/block/blk-zoned.c index 03222314d649..62160a8675f4 100644 --- a/block/blk-zoned.c +++ b/block/blk-zoned.c @@ -22,6 +22,7 @@ #include "blk.h" #include "blk-mq-sched.h" +#include "blk-mq-debugfs.h" #define ZONE_COND_NAME(name) [BLK_ZONE_COND_##name] = #name static const char *const zone_cond_name[] = { @@ -1745,3 +1746,22 @@ void blk_zone_dev_init(void) { blk_zone_wplugs_cachep = KMEM_CACHE(blk_zone_wplug, SLAB_PANIC); } + +#ifdef CONFIG_BLK_DEBUG_FS + +int queue_zone_wlock_show(void *data, struct seq_file *m) +{ + struct request_queue *q = data; + unsigned int i; + + if (!q->disk->seq_zones_wlock) + return 0; + + for (i = 0; i < q->disk->nr_zones; i++) + if (test_bit(i, q->disk->seq_zones_wlock)) + seq_printf(m, "%u\n", i); + + return 0; +} + +#endif