[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] block/nvme: Add driver statistics for access alignment an
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v2] block/nvme: Add driver statistics for access alignment and hw errors |
Date: |
Fri, 02 Oct 2020 07:14:40 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> Keep statistics of some hardware errors, and number of
> aligned/unaligned I/O accesses.
>
> QMP example booting a full RHEL 8.3 aarch64 guest:
>
> { "execute": "query-blockstats" }
> {
> "return": [
> {
> "device": "",
> "node-name": "drive0",
> "stats": {
> "flush_total_time_ns": 6026948,
> "wr_highest_offset": 3383991230464,
> "wr_total_time_ns": 807450995,
> "failed_wr_operations": 0,
> "failed_rd_operations": 0,
> "wr_merged": 3,
> "wr_bytes": 50133504,
> "failed_unmap_operations": 0,
> "failed_flush_operations": 0,
> "account_invalid": false,
> "rd_total_time_ns": 1846979900,
> "flush_operations": 130,
> "wr_operations": 659,
> "rd_merged": 1192,
> "rd_bytes": 218244096,
> "account_failed": false,
> "idle_time_ns": 2678641497,
> "rd_operations": 7406,
> },
> "driver-specific": {
> "driver": "nvme",
> "completion-errors": 0,
> "unaligned-accesses": 2959,
> "aligned-accesses": 4477
> },
> "qdev": "/machine/peripheral-anon/device[0]/virtio-backend"
> }
> ]
> }
>
> Suggested-by: Stefan Hajnoczi <stefanha@gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
> v2: 'access-nb' -> 'accesses' (Stefan)
> ---
> qapi/block-core.json | 24 +++++++++++++++++++++++-
> block/nvme.c | 27 +++++++++++++++++++++++++++
> 2 files changed, 50 insertions(+), 1 deletion(-)
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 86ed72ef9f..dec17e3036 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -941,6 +941,27 @@
> 'discard-nb-failed': 'uint64',
> 'discard-bytes-ok': 'uint64' } }
>
> +##
> +# @BlockStatsSpecificNvme:
> +#
> +# NVMe driver statistics
> +#
> +# @completion-errors: The number of completion errors.
> +#
> +# @aligned-accesses: The number of aligned accesses performed by
> +# the driver.
> +#
> +# @unaligned-accesses: The number of unaligned accesses performed by
> +# the driver.
> +#
> +# Since: 5.2
> +##
> +{ 'struct': 'BlockStatsSpecificNvme',
> + 'data': {
> + 'completion-errors': 'uint64',
> + 'aligned-accesses': 'uint64',
> + 'unaligned-accesses': 'uint64' } }
> +
> ##
> # @BlockStatsSpecific:
> #
> @@ -953,7 +974,8 @@
> 'discriminator': 'driver',
> 'data': {
> 'file': 'BlockStatsSpecificFile',
> - 'host_device': 'BlockStatsSpecificFile' } }
> + 'host_device': 'BlockStatsSpecificFile',
> + 'nvme': 'BlockStatsSpecificNvme' } }
>
> ##
> # @BlockStats:
Acked-by: Markus Armbruster <armbru@redhat.com>