mbox series

[V5,0/3] block: add two statistic tables

Message ID 20210408135840.386076-1-haris.iqbal@ionos.com (mailing list archive)
Headers show
Series block: add two statistic tables | expand

Message

Md Haris Iqbal April 8, 2021, 1:58 p.m. UTC
Hi Jens,

This version is rebased against the latest for-next.

Thanks,
Haris

PATCH V4: https://lore.kernel.org/linux-block/20210203151019.27036-1-guoqing.jiang@cloud.ionos.com/
* Adds Reviewed-by tag from Johannes.

PATCH V3: https://lore.kernel.org/linux-block/7f78132a-affc-eb03-735a-4da43e143b6e@cloud.ionos.com/T/#t
* reorgnize the patchset per Johannes's suggestion.

PATCH V2: https://lore.kernel.org/linux-block/20210201012727.28305-1-guoqing.jiang@cloud.ionos.com/T/#t
*. remove BLK_ADDITIONAL_DISKSTAT option per Christoph's comment.
*. move blk_queue_io_extra_stat into blk_additional_{latency,sector}
   per Christoph's comment.
*. simplify blk_additional_latency by pass duration time directly.

PATCH V1: https://marc.info/?l=linux-block&m=161176000024443&w=2
* add Jack's reviewed-by.

RFC V4: https://marc.info/?l=linux-block&m=161027198729158&w=2
* rebase with latest code.

RFC V3: https://marc.info/?l=linux-block&m=159730633416534&w=2
* Move the #ifdef CONFIG_BLK_ADDITIONAL_DISKSTAT into the function body
  per Johannes's comment.
* Tweak the output of two tables to make they are more intuitive

RFC V2: https://marc.info/?l=linux-block&m=159467483514062&w=2
* don't call ktime_get_ns and drop unnecessary patches.
* add io_extra_stats to avoid potential overhead.

RFC V1: https://marc.info/?l=linux-block&m=159419516730386&w=2

Guoqing Jiang (3):
  block: add io_extra_stats node
  block: add a statistic table for io latency
  block: add a statistic table for io sector

 Documentation/ABI/testing/sysfs-block | 26 ++++++++++
 Documentation/block/queue-sysfs.rst   |  5 ++
 block/blk-core.c                      | 43 ++++++++++++++++
 block/blk-sysfs.c                     |  3 ++
 block/genhd.c                         | 74 +++++++++++++++++++++++++++
 include/linux/blkdev.h                |  2 +
 include/linux/part_stat.h             |  6 +++
 7 files changed, 159 insertions(+)

Comments

Khazhy Kumykov April 8, 2021, 10:22 p.m. UTC | #1
On Thu, Apr 8, 2021 at 6:59 AM Md Haris Iqbal <haris.iqbal@ionos.com> wrote:
>
> Hi Jens,
>
> This version is rebased against the latest for-next.
>
> Thanks,
> Haris
>
> PATCH V4: https://lore.kernel.org/linux-block/20210203151019.27036-1-guoqing.jiang@cloud.ionos.com/
> * Adds Reviewed-by tag from Johannes.
>
> PATCH V3: https://lore.kernel.org/linux-block/7f78132a-affc-eb03-735a-4da43e143b6e@cloud.ionos.com/T/#t
> * reorgnize the patchset per Johannes's suggestion.
>
> PATCH V2: https://lore.kernel.org/linux-block/20210201012727.28305-1-guoqing.jiang@cloud.ionos.com/T/#t
> *. remove BLK_ADDITIONAL_DISKSTAT option per Christoph's comment.
> *. move blk_queue_io_extra_stat into blk_additional_{latency,sector}
>    per Christoph's comment.
> *. simplify blk_additional_latency by pass duration time directly.
>
> PATCH V1: https://marc.info/?l=linux-block&m=161176000024443&w=2
> * add Jack's reviewed-by.
>
> RFC V4: https://marc.info/?l=linux-block&m=161027198729158&w=2
> * rebase with latest code.
>
> RFC V3: https://marc.info/?l=linux-block&m=159730633416534&w=2
> * Move the #ifdef CONFIG_BLK_ADDITIONAL_DISKSTAT into the function body
>   per Johannes's comment.
> * Tweak the output of two tables to make they are more intuitive
>
> RFC V2: https://marc.info/?l=linux-block&m=159467483514062&w=2
> * don't call ktime_get_ns and drop unnecessary patches.
> * add io_extra_stats to avoid potential overhead.
>
> RFC V1: https://marc.info/?l=linux-block&m=159419516730386&w=2
>
> Guoqing Jiang (3):
>   block: add io_extra_stats node
>   block: add a statistic table for io latency
>   block: add a statistic table for io sector

We've also found it useful to have the kernel export latency
statistics. In particular we've been using a 2d-histogram exporting
latency per iosize (there was a proposal a loong time ago that seemed
to fizzle out https://lwn.net/Articles/383515/)

Do you think having a format like that would be useful?

# cat /sys/block/sda/read_request_histo
rows = bytes columns = ms
        10      20      50      100     200     500     1000    2000
 5000    10000   20000
   2048 33      0       0       0       0       0       0       0
 0       0       0
   4096 51798   1114    1271    11      0       0       0       0
 0       0       0
   8192 8803    81      109     1       0       0       0       0
 0       0       0
  16384 10321   116     150     5       0       0       0       0
 0       0       0
  32768 8341    166     215     6       0       0       0       0
 0       0       0
  65536 7550    248     389     2       0       0       0       0
 0       0       0
 131072 40440   923     1317    10      0       0       0       0
 0       0       0
 262144 357     1       0       0       0       0       0       0
 0       0       0
 524288 13      1       0       0       0       0       0       0
 0       0       0
1048576 7       2       0       0       0       0       0       0
 0       0       0

Khazhy