From: John Garry <john.g.garry@oracle.com>
To: axboe@kernel.dk, hch@lst.de
Cc: linux-block@vger.kernel.org, bvanassche@acm.org,
John Garry <john.g.garry@oracle.com>
Subject: [PATCH v3 00/15] block: Catch missing blk-mq debugfs flag array members
Date: Fri, 19 Jul 2024 11:28:57 +0000 [thread overview]
Message-ID: <20240719112912.3830443-1-john.g.garry@oracle.com> (raw)
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
next reply other threads:[~2024-07-19 11:30 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-19 11:28 John Garry [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240719112912.3830443-1-john.g.garry@oracle.com \
--to=john.g.garry@oracle.com \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox