Skip to content

blk-mq: move debugging information from sysfs to debugfs

Omar Sandoval linux-block 2 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest10 patches 4 repliesIn review
  2. v110 patches 11 repliesSuperseded

Changes in v2 from the cover letter

- Make the sbitmap seq_file helpers take a (struct sbitmap *) instead of a (void *), since it's not possible to use them directly as the seq_file show helper, anyways
- Fix a crash when reading ctx_map because it was attempting to do exactly that ^

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10blk-mq: create debugfs directory treeblock/Makefile block/blk-mq-debugfs.c block/blk-mq-sysfs.c +3 more+201 -01 reply
2/10blk-mq: add hctx->{state,flags} to debugfsblock/blk-mq-debugfs.c+42 -00 replies
3/10blk-mq: move hctx->dispatch and ctx->rq_list from sysfs to debugfsblock/blk-mq-debugfs.c block/blk-mq-sysfs.c+106 -572 replies
4/10blk-mq: add extra request information to debugfsblock/blk-mq-debugfs.c+3 -10 replies
5/10sbitmap: add helpers for dumping to a seq_fileinclude/linux/sbitmap.h lib/sbitmap.c+102 -02 replies
6/10blk-mq: export software queue pending map to debugfsblock/blk-mq-debugfs.c+21 -00 replies
7/10blk-mq: move tags and sched_tags info from sysfs to debugfsblock/blk-mq-debugfs.c block/blk-mq-sysfs.c block/blk-mq-tag.c +1 more+86 -450 replies
8/10blk-mq: add tags and sched_tags bitmaps to debugfsblock/blk-mq-debugfs.c+50 -00 replies
9/10blk-mq: move hctx io_poll, stats, and dispatched from sysfs to debugfsblock/blk-mq-debugfs.c block/blk-mq-sysfs.c+132 -920 replies
10/10blk-mq: move hctx and ctx counters from sysfs to debugfsblock/blk-mq-debugfs.c block/blk-mq-sysfs.c+181 -640 replies

Reviews trailers per patch

9 of 10 patches have a Reviewed-by or Acked-by.

PatchHannes Reinecke
1/10R-b
2/10
3/10R-b
4/10R-b
5/10R-b R-b
6/10R-b
7/10R-b
8/10R-b
9/10R-b
10/10R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 00/10] blk-mq: move debugging information from sysfs to debugfs

From: Omar Sandoval <[email protected]>

Changes from v1:

- Make the sbitmap seq_file helpers take a (struct sbitmap *) instead of a (void *), since it's not possible to use them directly as the seq_file show helper, anyways
- Fix a crash when reading ctx_map because it was attempting to do exactly that ^

Cover letter from v1:

This series ends our abuse of sysfs and puts all of the debugging information in debugfs instead. This has a few benefits:

1. Removes the possibility of userspace being stupid and relying on something in sysfs that we only exposed for debugging.
2. Lifts the limitations of sysfs, including the one-value-per-file convention and maximum of one page of output.
3. Allows us to add more debugging information that we often want but don't have when debugging a live system.

Thanks!
Omar

Omar Sandoval (10):
blk-mq: create debugfs directory tree
blk-mq: add hctx->{state,flags} to debugfs
blk-mq: move hctx->dispatch and ctx->rq_list from sysfs to debugfs
blk-mq: add extra request information to debugfs
sbitmap: add helpers for dumping to a seq_file
blk-mq: export software queue pending map to debugfs
blk-mq: move tags and sched_tags info from sysfs to debugfs
blk-mq: add tags and sched_tags bitmaps to debugfs
blk-mq: move hctx io_poll, stats, and dispatched from sysfs to debugfs
blk-mq: move hctx and ctx counters from sysfs to debugfs

 block/Makefile          |   1 +
 block/blk-mq-debugfs.c  | 756 ++++++++++++++++++++++++++++++++++++++++++++++++
 block/blk-mq-sysfs.c    | 248 ++--------------
 block/blk-mq-tag.c      |  27 --
 block/blk-mq-tag.h      |   1 -
 block/blk-mq.c          |   2 +
 block/blk-mq.h          |  33 +++
 include/linux/blkdev.h  |   5 +
 include/linux/sbitmap.h |  28 ++
 lib/sbitmap.c           |  74 +++++
 10 files changed, 920 insertions(+), 255 deletions(-)
 create mode 100644 block/blk-mq-debugfs.c
Signature · 1 line
2.11.0