* [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