[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 1/5] hw/nvme: move adjustment of data_units{read,written}
From: |
Joel Granados |
Subject: |
Re: [PULL 1/5] hw/nvme: move adjustment of data_units{read,written} |
Date: |
Tue, 7 Mar 2023 15:36:38 +0100 |
On Mon, Mar 06, 2023 at 03:34:29PM +0100, Klaus Jensen wrote:
> From: Joel Granados <j.granados@samsung.com>
>
> Move the rounding of bytes read/written into nvme_smart_log which
> reports in units of 512 bytes, rounded up in thousands. This is in
> preparation for adding the Endurance Group Information log page which
> reports in units of billions, rounded up.
Awesome. the message now makes more sense. I see that it already has my
signed off tag :)
Joel
>
> Reviewed-by: Keith Busch <kbusch@kernel.org>
> Reviewed-by: Klaus Jensen <k.jensen@samsung.com>
> Signed-off-by: Joel Granados <j.granados@samsung.com>
> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
> ---
> hw/nvme/ctrl.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/hw/nvme/ctrl.c b/hw/nvme/ctrl.c
> index f25cc2c235e9..99b92ff20b9a 100644
> --- a/hw/nvme/ctrl.c
> +++ b/hw/nvme/ctrl.c
> @@ -4386,8 +4386,8 @@ static void nvme_set_blk_stats(NvmeNamespace *ns,
> struct nvme_stats *stats)
> {
> BlockAcctStats *s = blk_get_stats(ns->blkconf.blk);
>
> - stats->units_read += s->nr_bytes[BLOCK_ACCT_READ] >> BDRV_SECTOR_BITS;
> - stats->units_written += s->nr_bytes[BLOCK_ACCT_WRITE] >>
> BDRV_SECTOR_BITS;
> + stats->units_read += s->nr_bytes[BLOCK_ACCT_READ];
> + stats->units_written += s->nr_bytes[BLOCK_ACCT_WRITE];
> stats->read_commands += s->nr_ops[BLOCK_ACCT_READ];
> stats->write_commands += s->nr_ops[BLOCK_ACCT_WRITE];
> }
> @@ -4401,6 +4401,7 @@ static uint16_t nvme_smart_info(NvmeCtrl *n, uint8_t
> rae, uint32_t buf_len,
> uint32_t trans_len;
> NvmeNamespace *ns;
> time_t current_ms;
> + uint64_t u_read, u_written;
>
> if (off >= sizeof(smart)) {
> return NVME_INVALID_FIELD | NVME_DNR;
> @@ -4427,10 +4428,11 @@ static uint16_t nvme_smart_info(NvmeCtrl *n, uint8_t
> rae, uint32_t buf_len,
> trans_len = MIN(sizeof(smart) - off, buf_len);
> smart.critical_warning = n->smart_critical_warning;
>
> - smart.data_units_read[0] = cpu_to_le64(DIV_ROUND_UP(stats.units_read,
> - 1000));
> - smart.data_units_written[0] =
> cpu_to_le64(DIV_ROUND_UP(stats.units_written,
> - 1000));
> + u_read = DIV_ROUND_UP(stats.units_read >> BDRV_SECTOR_BITS, 1000);
> + u_written = DIV_ROUND_UP(stats.units_written >> BDRV_SECTOR_BITS, 1000);
> +
> + smart.data_units_read[0] = cpu_to_le64(u_read);
> + smart.data_units_written[0] = cpu_to_le64(u_written);
> smart.host_read_commands[0] = cpu_to_le64(stats.read_commands);
> smart.host_write_commands[0] = cpu_to_le64(stats.write_commands);
>
> --
> 2.39.2
>
signature.asc
Description: PGP signature
- [PULL 0/5] hw/nvme updates, Klaus Jensen, 2023/03/06
- [PULL 2/5] hw/nvme: store a pointer to the NvmeSubsystem in the NvmeNamespace, Klaus Jensen, 2023/03/06
- [PULL 1/5] hw/nvme: move adjustment of data_units{read,written}, Klaus Jensen, 2023/03/06
- Re: [PULL 1/5] hw/nvme: move adjustment of data_units{read,written},
Joel Granados <=
- [PULL 3/5] hw/nvme: add basic endurance group support, Klaus Jensen, 2023/03/06
- [PULL 4/5] hw/nvme: basic directives support, Klaus Jensen, 2023/03/06
- [PULL 5/5] hw/nvme: flexible data placement emulation, Klaus Jensen, 2023/03/06
- Re: [PULL 0/5] hw/nvme updates, Peter Maydell, 2023/03/07