Linux block layer
 help / color / mirror / Atom feed
* [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members
@ 2024-07-19 11:28 John Garry
  2024-07-19 11:28 ` [PATCH v3 01/15] block: Add missing entries from cmd_flag_name[] John Garry
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:28 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Currently we rely on the developer to remember to add the appropriate
entry to a blk-mq debugfs flag array when we add a new member.

This has shown to be error prone.

Add compile-time assertions that we are not missing flag array entries.

A limitation of this approach is that if a non-end-of-array entry was now
later removed from a flag name array, we could not detect that at build
time. But this is unlikely to occur. To actually detect that, we could
make the flag name array entries a flag and name tuple. That would just
add extra complexity and slow the code, which I am not sure if is really
required.

Differences to v2:
- Add Bart's RB tags (thanks)
- Drop redundant enum initializer (Bart)
- Re-order patches to put latent fixes at the front
- Relocate BLK_MQ_CPU_WORK_BATCH and BLK_MQ_MAX_DEPTH
- Put BLK_MQ_S_x in separate enum (Bart)
- Commit message tweaks (Bart)

Christoph Hellwig (1):
  block: remove QUEUE_FLAG_STOPPED

John Garry (14):
  block: Add missing entries from cmd_flag_name[]
  block: Add zone write plugging entry to rqf_name[]
  block: Add missing entry to hctx_flag_name[]
  block: Relocate BLK_MQ_CPU_WORK_BATCH
  block: Relocate BLK_MQ_MAX_DEPTH
  block: Make QUEUE_FLAG_x as an enum
  block: Catch possible entries missing from blk_queue_flag_name[]
  block: Catch possible entries missing from hctx_state_name[]
  block: Catch possible entries missing from hctx_flag_name[]
  block: Catch possible entries missing from alloc_policy_name[]
  block: Catch possible entries missing from cmd_flag_name[]
  block: Use enum to define RQF_x bit indexes
  block: Simplify definition of RQF_NAME()
  block: Catch possible entries missing from rqf_name[]

 block/blk-mq-debugfs.c    |  26 ++++++--
 block/blk-mq.h            |   2 +
 include/linux/blk-mq.h    | 127 +++++++++++++++++++++++---------------
 include/linux/blk_types.h |   1 +
 include/linux/blkdev.h    |  31 +++++-----
 5 files changed, 118 insertions(+), 69 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v3 01/15] block: Add missing entries from cmd_flag_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
@ 2024-07-19 11:28 ` John Garry
  2024-07-19 11:28 ` [PATCH v3 02/15] block: Add zone write plugging entry to rqf_name[] John Garry
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:28 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add missing entries for req_flag_bits.

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 344f9e503bdb..786fa4d6e019 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -223,8 +223,13 @@ static const char *const cmd_flag_name[] = {
 	CMD_FLAG_NAME(RAHEAD),
 	CMD_FLAG_NAME(BACKGROUND),
 	CMD_FLAG_NAME(NOWAIT),
-	CMD_FLAG_NAME(NOUNMAP),
 	CMD_FLAG_NAME(POLLED),
+	CMD_FLAG_NAME(ALLOC_CACHE),
+	CMD_FLAG_NAME(SWAP),
+	CMD_FLAG_NAME(DRV),
+	CMD_FLAG_NAME(FS_PRIVATE),
+	CMD_FLAG_NAME(ATOMIC),
+	CMD_FLAG_NAME(NOUNMAP),
 };
 #undef CMD_FLAG_NAME
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 02/15] block: Add zone write plugging entry to rqf_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
  2024-07-19 11:28 ` [PATCH v3 01/15] block: Add missing entries from cmd_flag_name[] John Garry
@ 2024-07-19 11:28 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 03/15] block: Add missing entry to hctx_flag_name[] John Garry
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:28 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add missing entry.

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 786fa4d6e019..49d4f6e0a719 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -248,6 +248,7 @@ static const char *const rqf_name[] = {
 	RQF_NAME(HASHED),
 	RQF_NAME(STATS),
 	RQF_NAME(SPECIAL_PAYLOAD),
+	RQF_NAME(ZONE_WRITE_PLUGGING),
 	RQF_NAME(TIMED_OUT),
 	RQF_NAME(RESV),
 };
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 03/15] block: Add missing entry to hctx_flag_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
  2024-07-19 11:28 ` [PATCH v3 01/15] block: Add missing entries from cmd_flag_name[] John Garry
  2024-07-19 11:28 ` [PATCH v3 02/15] block: Add zone write plugging entry to rqf_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 04/15] block: remove QUEUE_FLAG_STOPPED John Garry
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add missing entry for NO_SCHED_BY_DEFAULT and reorder to match the enum.

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 49d4f6e0a719..5f53796bd6e2 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -181,10 +181,11 @@ static const char *const alloc_policy_name[] = {
 static const char *const hctx_flag_name[] = {
 	HCTX_FLAG_NAME(SHOULD_MERGE),
 	HCTX_FLAG_NAME(TAG_QUEUE_SHARED),
-	HCTX_FLAG_NAME(BLOCKING),
-	HCTX_FLAG_NAME(NO_SCHED),
 	HCTX_FLAG_NAME(STACKING),
 	HCTX_FLAG_NAME(TAG_HCTX_SHARED),
+	HCTX_FLAG_NAME(BLOCKING),
+	HCTX_FLAG_NAME(NO_SCHED),
+	HCTX_FLAG_NAME(NO_SCHED_BY_DEFAULT),
 };
 #undef HCTX_FLAG_NAME
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 04/15] block: remove QUEUE_FLAG_STOPPED
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (2 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 03/15] block: Add missing entry to hctx_flag_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 05/15] block: Relocate BLK_MQ_CPU_WORK_BATCH John Garry
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch
  Cc: linux-block, bvanassche, Chaitanya Kulkarni, Johannes Thumshirn,
	John Garry

From: Christoph Hellwig <hch@lst.de>

QUEUE_FLAG_STOPPED is entirely unused.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 1 -
 include/linux/blkdev.h | 2 --
 2 files changed, 3 deletions(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 5f53796bd6e2..866e8c6bebd0 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -79,7 +79,6 @@ static int queue_pm_only_show(void *data, struct seq_file *m)
 
 #define QUEUE_FLAG_NAME(name) [QUEUE_FLAG_##name] = #name
 static const char *const blk_queue_flag_name[] = {
-	QUEUE_FLAG_NAME(STOPPED),
 	QUEUE_FLAG_NAME(DYING),
 	QUEUE_FLAG_NAME(NOMERGES),
 	QUEUE_FLAG_NAME(SAME_COMP),
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index dce4a6bf7307..942ad4e0f231 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -588,7 +588,6 @@ struct request_queue {
 };
 
 /* Keep blk_queue_flag_name[] in sync with the definitions below */
-#define QUEUE_FLAG_STOPPED	0	/* queue is stopped */
 #define QUEUE_FLAG_DYING	1	/* queue being torn down */
 #define QUEUE_FLAG_NOMERGES     3	/* disable merge attempts */
 #define QUEUE_FLAG_SAME_COMP	4	/* complete on same CPU-group */
@@ -608,7 +607,6 @@ struct request_queue {
 void blk_queue_flag_set(unsigned int flag, struct request_queue *q);
 void blk_queue_flag_clear(unsigned int flag, struct request_queue *q);
 
-#define blk_queue_stopped(q)	test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags)
 #define blk_queue_dying(q)	test_bit(QUEUE_FLAG_DYING, &(q)->queue_flags)
 #define blk_queue_init_done(q)	test_bit(QUEUE_FLAG_INIT_DONE, &(q)->queue_flags)
 #define blk_queue_nomerges(q)	test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags)
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 05/15] block: Relocate BLK_MQ_CPU_WORK_BATCH
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (3 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 04/15] block: remove QUEUE_FLAG_STOPPED John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 06/15] block: Relocate BLK_MQ_MAX_DEPTH John Garry
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

BLK_MQ_CPU_WORK_BATCH is defined in include/linux/blk-mq.h, but only used
in blk-mq.c, so relocate to block/blk-mq.h

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq.h         | 2 ++
 include/linux/blk-mq.h | 2 --
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq.h b/block/blk-mq.h
index 260beea8e332..3bd43b10032f 100644
--- a/block/blk-mq.h
+++ b/block/blk-mq.h
@@ -36,6 +36,8 @@ enum {
 	BLK_MQ_TAG_MAX		= BLK_MQ_NO_TAG - 1,
 };
 
+#define BLK_MQ_CPU_WORK_BATCH	(8)
+
 typedef unsigned int __bitwise blk_insert_t;
 #define BLK_MQ_INSERT_AT_HEAD		((__force blk_insert_t)0x01)
 
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 89ba6b16fe8b..df775a203a4d 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -672,8 +672,6 @@ enum {
 	BLK_MQ_S_INACTIVE	= 3,
 
 	BLK_MQ_MAX_DEPTH	= 10240,
-
-	BLK_MQ_CPU_WORK_BATCH	= 8,
 };
 #define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
 	((flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 06/15] block: Relocate BLK_MQ_MAX_DEPTH
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (4 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 05/15] block: Relocate BLK_MQ_CPU_WORK_BATCH John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 07/15] block: Make QUEUE_FLAG_x as an enum John Garry
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

BLK_MQ_MAX_DEPTH is defined as an enumerated value, but has no real
relation to the other members in its enum, so just use #define to provide
the definition.

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 include/linux/blk-mq.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index df775a203a4d..8a84f49468d5 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -670,8 +670,6 @@ enum {
 
 	/* hw queue is inactive after all its CPUs become offline */
 	BLK_MQ_S_INACTIVE	= 3,
-
-	BLK_MQ_MAX_DEPTH	= 10240,
 };
 #define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
 	((flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
@@ -680,6 +678,7 @@ enum {
 	((policy & ((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1)) \
 		<< BLK_MQ_F_ALLOC_POLICY_START_BIT)
 
+#define BLK_MQ_MAX_DEPTH	(10240)
 #define BLK_MQ_NO_HCTX_IDX	(-1U)
 
 struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set,
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 07/15] block: Make QUEUE_FLAG_x as an enum
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (5 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 06/15] block: Relocate BLK_MQ_MAX_DEPTH John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 08/15] block: Catch possible entries missing from blk_queue_flag_name[] John Garry
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

This will allow us better keep in sync with blk_queue_flag_name[].

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 include/linux/blkdev.h | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 942ad4e0f231..ded46fad67a0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -588,19 +588,22 @@ struct request_queue {
 };
 
 /* Keep blk_queue_flag_name[] in sync with the definitions below */
-#define QUEUE_FLAG_DYING	1	/* queue being torn down */
-#define QUEUE_FLAG_NOMERGES     3	/* disable merge attempts */
-#define QUEUE_FLAG_SAME_COMP	4	/* complete on same CPU-group */
-#define QUEUE_FLAG_FAIL_IO	5	/* fake timeout */
-#define QUEUE_FLAG_NOXMERGES	9	/* No extended merges */
-#define QUEUE_FLAG_SAME_FORCE	12	/* force complete on same CPU */
-#define QUEUE_FLAG_INIT_DONE	14	/* queue is initialized */
-#define QUEUE_FLAG_STATS	20	/* track IO start and completion times */
-#define QUEUE_FLAG_REGISTERED	22	/* queue has been registered to a disk */
-#define QUEUE_FLAG_QUIESCED	24	/* queue has been quiesced */
-#define QUEUE_FLAG_RQ_ALLOC_TIME 27	/* record rq->alloc_time_ns */
-#define QUEUE_FLAG_HCTX_ACTIVE	28	/* at least one blk-mq hctx is active */
-#define QUEUE_FLAG_SQ_SCHED     30	/* single queue style io dispatch */
+enum {
+	QUEUE_FLAG_DYING,		/* queue being torn down */
+	QUEUE_FLAG_NOMERGES,		/* disable merge attempts */
+	QUEUE_FLAG_SAME_COMP,		/* complete on same CPU-group */
+	QUEUE_FLAG_FAIL_IO,		/* fake timeout */
+	QUEUE_FLAG_NOXMERGES,		/* No extended merges */
+	QUEUE_FLAG_SAME_FORCE,		/* force complete on same CPU */
+	QUEUE_FLAG_INIT_DONE,		/* queue is initialized */
+	QUEUE_FLAG_STATS,		/* track IO start and completion times */
+	QUEUE_FLAG_REGISTERED,		/* queue has been registered to a disk */
+	QUEUE_FLAG_QUIESCED,		/* queue has been quiesced */
+	QUEUE_FLAG_RQ_ALLOC_TIME,	/* record rq->alloc_time_ns */
+	QUEUE_FLAG_HCTX_ACTIVE,		/* at least one blk-mq hctx is active */
+	QUEUE_FLAG_SQ_SCHED,		/* single queue style io dispatch */
+	QUEUE_FLAG_MAX
+};
 
 #define QUEUE_FLAG_MQ_DEFAULT	(1UL << QUEUE_FLAG_SAME_COMP)
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 08/15] block: Catch possible entries missing from blk_queue_flag_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (6 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 07/15] block: Make QUEUE_FLAG_x as an enum John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 09/15] block: Catch possible entries missing from hctx_state_name[] John Garry
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Assert that we are not missing flag entries in blk_queue_flag_name[].

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 866e8c6bebd0..d28784c1957f 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -5,6 +5,7 @@
 
 #include <linux/kernel.h>
 #include <linux/blkdev.h>
+#include <linux/build_bug.h>
 #include <linux/debugfs.h>
 
 #include "blk.h"
@@ -99,6 +100,7 @@ static int queue_state_show(void *data, struct seq_file *m)
 {
 	struct request_queue *q = data;
 
+	BUILD_BUG_ON(ARRAY_SIZE(blk_queue_flag_name) != QUEUE_FLAG_MAX);
 	blk_flags_show(m, q->queue_flags, blk_queue_flag_name,
 		       ARRAY_SIZE(blk_queue_flag_name));
 	seq_puts(m, "\n");
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 09/15] block: Catch possible entries missing from hctx_state_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (7 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 08/15] block: Catch possible entries missing from blk_queue_flag_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 10/15] block: Catch possible entries missing from hctx_flag_name[] John Garry
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add a build-time assert that we are not missing entries from
hctx_state_name[]. For this, create a separate enum for state flags and add
a "max" entry for BLK_MQ_S_x flags.

The numbering for those enum values is as default, so don't explicitly
number.

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c |  1 +
 include/linux/blk-mq.h | 17 ++++++++++-------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index d28784c1957f..85be8aa39b90 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -165,6 +165,7 @@ static int hctx_state_show(void *data, struct seq_file *m)
 {
 	struct blk_mq_hw_ctx *hctx = data;
 
+	BUILD_BUG_ON(ARRAY_SIZE(hctx_state_name) != BLK_MQ_S_MAX);
 	blk_flags_show(m, hctx->state, hctx_state_name,
 		       ARRAY_SIZE(hctx_state_name));
 	seq_puts(m, "\n");
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 8a84f49468d5..4905a1d67551 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -663,13 +663,6 @@ enum {
 	BLK_MQ_F_NO_SCHED_BY_DEFAULT	= 1 << 7,
 	BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
 	BLK_MQ_F_ALLOC_POLICY_BITS = 1,
-
-	BLK_MQ_S_STOPPED	= 0,
-	BLK_MQ_S_TAG_ACTIVE	= 1,
-	BLK_MQ_S_SCHED_RESTART	= 2,
-
-	/* hw queue is inactive after all its CPUs become offline */
-	BLK_MQ_S_INACTIVE	= 3,
 };
 #define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
 	((flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
@@ -681,6 +674,16 @@ enum {
 #define BLK_MQ_MAX_DEPTH	(10240)
 #define BLK_MQ_NO_HCTX_IDX	(-1U)
 
+enum {
+	/* Keep hctx_state_name[] in sync with the definitions below */
+	BLK_MQ_S_STOPPED,
+	BLK_MQ_S_TAG_ACTIVE,
+	BLK_MQ_S_SCHED_RESTART,
+	/* hw queue is inactive after all its CPUs become offline */
+	BLK_MQ_S_INACTIVE,
+	BLK_MQ_S_MAX
+};
+
 struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set,
 		struct queue_limits *lim, void *queuedata,
 		struct lock_class_key *lkclass);
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 10/15] block: Catch possible entries missing from hctx_flag_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (8 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 09/15] block: Catch possible entries missing from hctx_state_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 11/15] block: Catch possible entries missing from alloc_policy_name[] John Garry
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Refresh values in BLK_MQ_F_x enum, and then re-arrange members in
hctx_flag_name[] to match that enum. Renumber
BLK_MQ_F_ALLOC_POLICY_START_BIT to match the value refresh.

Add a BUILD_BUG_ON() call to ensure that we are not missing entries in
hctx_flag_name[].

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c |  3 +++
 include/linux/blk-mq.h | 10 ++++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 85be8aa39b90..8618aa07ba2d 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -196,6 +196,9 @@ static int hctx_flags_show(void *data, struct seq_file *m)
 	struct blk_mq_hw_ctx *hctx = data;
 	const int alloc_policy = BLK_MQ_FLAG_TO_ALLOC_POLICY(hctx->flags);
 
+	BUILD_BUG_ON(ARRAY_SIZE(hctx_flag_name) !=
+			BLK_MQ_F_ALLOC_POLICY_START_BIT);
+
 	seq_puts(m, "alloc_policy=");
 	if (alloc_policy < ARRAY_SIZE(alloc_policy_name) &&
 	    alloc_policy_name[alloc_policy])
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 4905a1d67551..27241009c8f9 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -644,6 +644,7 @@ struct blk_mq_ops {
 #endif
 };
 
+/* Keep hctx_flag_name[] in sync with the definitions below */
 enum {
 	BLK_MQ_F_SHOULD_MERGE	= 1 << 0,
 	BLK_MQ_F_TAG_QUEUE_SHARED = 1 << 1,
@@ -653,15 +654,16 @@ enum {
 	 */
 	BLK_MQ_F_STACKING	= 1 << 2,
 	BLK_MQ_F_TAG_HCTX_SHARED = 1 << 3,
-	BLK_MQ_F_BLOCKING	= 1 << 5,
+	BLK_MQ_F_BLOCKING	= 1 << 4,
 	/* Do not allow an I/O scheduler to be configured. */
-	BLK_MQ_F_NO_SCHED	= 1 << 6,
+	BLK_MQ_F_NO_SCHED	= 1 << 5,
+
 	/*
 	 * Select 'none' during queue registration in case of a single hwq
 	 * or shared hwqs instead of 'mq-deadline'.
 	 */
-	BLK_MQ_F_NO_SCHED_BY_DEFAULT	= 1 << 7,
-	BLK_MQ_F_ALLOC_POLICY_START_BIT = 8,
+	BLK_MQ_F_NO_SCHED_BY_DEFAULT	= 1 << 6,
+	BLK_MQ_F_ALLOC_POLICY_START_BIT = 7,
 	BLK_MQ_F_ALLOC_POLICY_BITS = 1,
 };
 #define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 11/15] block: Catch possible entries missing from alloc_policy_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (9 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 10/15] block: Catch possible entries missing from hctx_flag_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 12/15] block: Catch possible entries missing from cmd_flag_name[] John Garry
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Make BLK_TAG_ALLOC_x an enum and add a "max" entry.

Add a BUILD_BUG_ON() call to ensure that we are not missing entries in
hctx_flag_name[].

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 1 +
 include/linux/blk-mq.h | 8 ++++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 8618aa07ba2d..312e8a40caad 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -198,6 +198,7 @@ static int hctx_flags_show(void *data, struct seq_file *m)
 
 	BUILD_BUG_ON(ARRAY_SIZE(hctx_flag_name) !=
 			BLK_MQ_F_ALLOC_POLICY_START_BIT);
+	BUILD_BUG_ON(ARRAY_SIZE(alloc_policy_name) != BLK_TAG_ALLOC_MAX);
 
 	seq_puts(m, "alloc_policy=");
 	if (alloc_policy < ARRAY_SIZE(alloc_policy_name) &&
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 27241009c8f9..a64a50a0edf7 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -278,8 +278,12 @@ enum blk_eh_timer_return {
 	BLK_EH_RESET_TIMER,
 };
 
-#define BLK_TAG_ALLOC_FIFO 0 /* allocate starting from 0 */
-#define BLK_TAG_ALLOC_RR 1 /* allocate starting from last allocated tag */
+/* Keep alloc_policy_name[] in sync with the definitions below */
+enum {
+	BLK_TAG_ALLOC_FIFO,	/* allocate starting from 0 */
+	BLK_TAG_ALLOC_RR,	/* allocate starting from last allocated tag */
+	BLK_TAG_ALLOC_MAX
+};
 
 /**
  * struct blk_mq_hw_ctx - State for a hardware queue facing the hardware
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 12/15] block: Catch possible entries missing from cmd_flag_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (10 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 11/15] block: Catch possible entries missing from alloc_policy_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 13/15] block: Use enum to define RQF_x bit indexes John Garry
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add a BUILD_BUG_ON() call to ensure that we are not missing entries in
cmd_flag_name[].

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c    | 2 ++
 include/linux/blk_types.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 312e8a40caad..a4accd79c225 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -281,6 +281,8 @@ int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq)
 	const enum req_op op = req_op(rq);
 	const char *op_str = blk_op_str(op);
 
+	BUILD_BUG_ON(ARRAY_SIZE(cmd_flag_name) != __REQ_NR_BITS);
+
 	seq_printf(m, "%p {.op=", rq);
 	if (strcmp(op_str, "UNKNOWN") == 0)
 		seq_printf(m, "%u", op);
diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index 632edd71f8c6..36ed96133217 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -354,6 +354,7 @@ enum req_op {
 	REQ_OP_LAST		= (__force blk_opf_t)36,
 };
 
+/* Keep cmd_flag_name[] in sync with the definitions below */
 enum req_flag_bits {
 	__REQ_FAILFAST_DEV =	/* no driver retries of device errors */
 		REQ_OP_BITS,
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 13/15] block: Use enum to define RQF_x bit indexes
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (11 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 12/15] block: Catch possible entries missing from cmd_flag_name[] John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 14/15] block: Simplify definition of RQF_NAME() John Garry
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Similar to what we do for enum req_flag_bits, divide the definition of
RQF_x flags into an enum to declare the bits and an actual flag.

Tweak some comments to not spill onto new lines.

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 include/linux/blk-mq.h | 86 ++++++++++++++++++++++++++----------------
 1 file changed, 54 insertions(+), 32 deletions(-)

diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index a64a50a0edf7..af52ec6a1ed5 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -27,38 +27,60 @@ typedef enum rq_end_io_ret (rq_end_io_fn)(struct request *, blk_status_t);
  * request flags */
 typedef __u32 __bitwise req_flags_t;
 
-/* drive already may have started this one */
-#define RQF_STARTED		((__force req_flags_t)(1 << 1))
-/* request for flush sequence */
-#define RQF_FLUSH_SEQ		((__force req_flags_t)(1 << 4))
-/* merge of different types, fail separately */
-#define RQF_MIXED_MERGE		((__force req_flags_t)(1 << 5))
-/* don't call prep for this one */
-#define RQF_DONTPREP		((__force req_flags_t)(1 << 7))
-/* use hctx->sched_tags */
-#define RQF_SCHED_TAGS		((__force req_flags_t)(1 << 8))
-/* use an I/O scheduler for this request */
-#define RQF_USE_SCHED		((__force req_flags_t)(1 << 9))
-/* vaguely specified driver internal error.  Ignored by the block layer */
-#define RQF_FAILED		((__force req_flags_t)(1 << 10))
-/* don't warn about errors */
-#define RQF_QUIET		((__force req_flags_t)(1 << 11))
-/* account into disk and partition IO statistics */
-#define RQF_IO_STAT		((__force req_flags_t)(1 << 13))
-/* runtime pm request */
-#define RQF_PM			((__force req_flags_t)(1 << 15))
-/* on IO scheduler merge hash */
-#define RQF_HASHED		((__force req_flags_t)(1 << 16))
-/* track IO completion time */
-#define RQF_STATS		((__force req_flags_t)(1 << 17))
-/* Look at ->special_vec for the actual data payload instead of the
-   bio chain. */
-#define RQF_SPECIAL_PAYLOAD	((__force req_flags_t)(1 << 18))
-/* The request completion needs to be signaled to zone write pluging. */
-#define RQF_ZONE_WRITE_PLUGGING	((__force req_flags_t)(1 << 20))
-/* ->timeout has been called, don't expire again */
-#define RQF_TIMED_OUT		((__force req_flags_t)(1 << 21))
-#define RQF_RESV		((__force req_flags_t)(1 << 23))
+enum {
+	/* drive already may have started this one */
+	__RQF_STARTED,
+	/* request for flush sequence */
+	__RQF_FLUSH_SEQ,
+	/* merge of different types, fail separately */
+	__RQF_MIXED_MERGE,
+	/* don't call prep for this one */
+	__RQF_DONTPREP,
+	/* use hctx->sched_tags */
+	__RQF_SCHED_TAGS,
+	/* use an I/O scheduler for this request */
+	__RQF_USE_SCHED,
+	/* vaguely specified driver internal error.  Ignored by block layer */
+	__RQF_FAILED,
+	/* don't warn about errors */
+	__RQF_QUIET,
+	/* account into disk and partition IO statistics */
+	__RQF_IO_STAT,
+	/* runtime pm request */
+	__RQF_PM,
+	/* on IO scheduler merge hash */
+	__RQF_HASHED,
+	/* track IO completion time */
+	__RQF_STATS,
+	/* Look at ->special_vec for the actual data payload instead of the
+	   bio chain. */
+	__RQF_SPECIAL_PAYLOAD,
+	/* request completion needs to be signaled to zone write plugging. */
+	__RQF_ZONE_WRITE_PLUGGING,
+	/* ->timeout has been called, don't expire again */
+	__RQF_TIMED_OUT,
+	__RQF_RESV,
+	__RQF_BITS
+};
+
+#define RQF_STARTED		((__force req_flags_t)(1 << __RQF_STARTED))
+#define RQF_FLUSH_SEQ		((__force req_flags_t)(1 << __RQF_FLUSH_SEQ))
+#define RQF_MIXED_MERGE		((__force req_flags_t)(1 << __RQF_MIXED_MERGE))
+#define RQF_DONTPREP		((__force req_flags_t)(1 << __RQF_DONTPREP))
+#define RQF_SCHED_TAGS		((__force req_flags_t)(1 << __RQF_SCHED_TAGS))
+#define RQF_USE_SCHED		((__force req_flags_t)(1 << __RQF_USE_SCHED))
+#define RQF_FAILED		((__force req_flags_t)(1 << __RQF_FAILED))
+#define RQF_QUIET		((__force req_flags_t)(1 << __RQF_QUIET))
+#define RQF_IO_STAT		((__force req_flags_t)(1 << __RQF_IO_STAT))
+#define RQF_PM			((__force req_flags_t)(1 << __RQF_PM))
+#define RQF_HASHED		((__force req_flags_t)(1 << __RQF_HASHED))
+#define RQF_STATS		((__force req_flags_t)(1 << __RQF_STATS))
+#define RQF_SPECIAL_PAYLOAD	\
+			((__force req_flags_t)(1 << __RQF_SPECIAL_PAYLOAD))
+#define RQF_ZONE_WRITE_PLUGGING	\
+			((__force req_flags_t)(1 << __RQF_ZONE_WRITE_PLUGGING))
+#define RQF_TIMED_OUT		((__force req_flags_t)(1 << __RQF_TIMED_OUT))
+#define RQF_RESV		((__force req_flags_t)(1 << __RQF_RESV))
 
 /* flags that prevent us from merging requests: */
 #define RQF_NOMERGE_FLAGS \
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 14/15] block: Simplify definition of RQF_NAME()
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (12 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 13/15] block: Use enum to define RQF_x bit indexes John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 11:29 ` [PATCH v3 15/15] block: Catch possible entries missing from rqf_name[] John Garry
  2024-07-19 15:39 ` [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members Jens Axboe
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Now that we have a bit index for RQF_x in __RQF_x, use __RQF_x to simplify
the definition of RQF_NAME() by not using ilog2((__force u32()).

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index a4accd79c225..34ed099c3429 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -240,7 +240,7 @@ static const char *const cmd_flag_name[] = {
 };
 #undef CMD_FLAG_NAME
 
-#define RQF_NAME(name) [ilog2((__force u32)RQF_##name)] = #name
+#define RQF_NAME(name) [__RQF_##name] = #name
 static const char *const rqf_name[] = {
 	RQF_NAME(STARTED),
 	RQF_NAME(FLUSH_SEQ),
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v3 15/15] block: Catch possible entries missing from rqf_name[]
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (13 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 14/15] block: Simplify definition of RQF_NAME() John Garry
@ 2024-07-19 11:29 ` John Garry
  2024-07-19 15:39 ` [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members Jens Axboe
  15 siblings, 0 replies; 17+ messages in thread
From: John Garry @ 2024-07-19 11:29 UTC (permalink / raw)
  To: axboe, hch; +Cc: linux-block, bvanassche, John Garry

Add a BUILD_BUG_ON() call to ensure that we are not missing entries in
rqf_name[].

Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 block/blk-mq-debugfs.c | 1 +
 include/linux/blk-mq.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/block/blk-mq-debugfs.c b/block/blk-mq-debugfs.c
index 34ed099c3429..5463697a8442 100644
--- a/block/blk-mq-debugfs.c
+++ b/block/blk-mq-debugfs.c
@@ -282,6 +282,7 @@ int __blk_mq_debugfs_rq_show(struct seq_file *m, struct request *rq)
 	const char *op_str = blk_op_str(op);
 
 	BUILD_BUG_ON(ARRAY_SIZE(cmd_flag_name) != __REQ_NR_BITS);
+	BUILD_BUG_ON(ARRAY_SIZE(rqf_name) != __RQF_BITS);
 
 	seq_printf(m, "%p {.op=", rq);
 	if (strcmp(op_str, "UNKNOWN") == 0)
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index af52ec6a1ed5..8d304b1d16b1 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -27,6 +27,7 @@ typedef enum rq_end_io_ret (rq_end_io_fn)(struct request *, blk_status_t);
  * request flags */
 typedef __u32 __bitwise req_flags_t;
 
+/* Keep rqf_name[] in sync with the definitions below */
 enum {
 	/* drive already may have started this one */
 	__RQF_STARTED,
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members
  2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
                   ` (14 preceding siblings ...)
  2024-07-19 11:29 ` [PATCH v3 15/15] block: Catch possible entries missing from rqf_name[] John Garry
@ 2024-07-19 15:39 ` Jens Axboe
  15 siblings, 0 replies; 17+ messages in thread
From: Jens Axboe @ 2024-07-19 15:39 UTC (permalink / raw)
  To: hch, John Garry; +Cc: linux-block, bvanassche


On Fri, 19 Jul 2024 11:28:57 +0000, John Garry wrote:
> Currently we rely on the developer to remember to add the appropriate
> entry to a blk-mq debugfs flag array when we add a new member.
> 
> This has shown to be error prone.
> 
> Add compile-time assertions that we are not missing flag array entries.
> 
> [...]

Applied, thanks!

[01/15] block: Add missing entries from cmd_flag_name[]
        commit: 6b3789e6c5310a8f517796b0f4a11039f9e5cf8f
[02/15] block: Add zone write plugging entry to rqf_name[]
        commit: af54963f193533dd7c1fe8f3d4e7af18de2406d8
[03/15] block: Add missing entry to hctx_flag_name[]
        commit: 1c83c5375e2f1bc7b59fa3ec5aa1e5909ec8710c
[04/15] block: remove QUEUE_FLAG_STOPPED
        commit: c8f51feee135f37f0d77b4616083c25524daa7b0
[05/15] block: Relocate BLK_MQ_CPU_WORK_BATCH
        commit: 3dff6155733f25872530ad358c6f5559800f4ccb
[06/15] block: Relocate BLK_MQ_MAX_DEPTH
        commit: 793356d23f8a817e164a917c792741a6d6d651ed
[07/15] block: Make QUEUE_FLAG_x as an enum
        commit: 55177adf1837bc56f878f7f6f7123947a2088148
[08/15] block: Catch possible entries missing from blk_queue_flag_name[]
        commit: cce496de061d09794825b7c7c7d57faca4772d82
[09/15] block: Catch possible entries missing from hctx_state_name[]
        commit: 23827310cce7eff3477aeaeb59ea3718f5c9c633
[10/15] block: Catch possible entries missing from hctx_flag_name[]
        commit: 226f0f6afc3e5c8903c6e57e1f6073ad8ad189b5
[11/15] block: Catch possible entries missing from alloc_policy_name[]
        commit: 26d3bdb57ec3fa56eaf8d2e74b5d488e55f43013
[12/15] block: Catch possible entries missing from cmd_flag_name[]
        commit: 6fa99325ec86bcd442363d77561a1babd8d9a427
[13/15] block: Use enum to define RQF_x bit indexes
        commit: 5f89154e8e9e3445f9b592e58a7045e06153b822
[14/15] block: Simplify definition of RQF_NAME()
        commit: 2d61a6c2ca7aadce3771f81a3624848f97dcc39e
[15/15] block: Catch possible entries missing from rqf_name[]
        commit: 8a47e33f50dd779f94bc277c6d3de81672463c5e

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-07-19 15:39 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-19 11:28 [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members John Garry
2024-07-19 11:28 ` [PATCH v3 01/15] block: Add missing entries from cmd_flag_name[] John Garry
2024-07-19 11:28 ` [PATCH v3 02/15] block: Add zone write plugging entry to rqf_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 03/15] block: Add missing entry to hctx_flag_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 04/15] block: remove QUEUE_FLAG_STOPPED John Garry
2024-07-19 11:29 ` [PATCH v3 05/15] block: Relocate BLK_MQ_CPU_WORK_BATCH John Garry
2024-07-19 11:29 ` [PATCH v3 06/15] block: Relocate BLK_MQ_MAX_DEPTH John Garry
2024-07-19 11:29 ` [PATCH v3 07/15] block: Make QUEUE_FLAG_x as an enum John Garry
2024-07-19 11:29 ` [PATCH v3 08/15] block: Catch possible entries missing from blk_queue_flag_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 09/15] block: Catch possible entries missing from hctx_state_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 10/15] block: Catch possible entries missing from hctx_flag_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 11/15] block: Catch possible entries missing from alloc_policy_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 12/15] block: Catch possible entries missing from cmd_flag_name[] John Garry
2024-07-19 11:29 ` [PATCH v3 13/15] block: Use enum to define RQF_x bit indexes John Garry
2024-07-19 11:29 ` [PATCH v3 14/15] block: Simplify definition of RQF_NAME() John Garry
2024-07-19 11:29 ` [PATCH v3 15/15] block: Catch possible entries missing from rqf_name[] John Garry
2024-07-19 15:39 ` [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox