[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 5/5] hw/nvme: flexible data placement emulation
From: |
Keith Busch |
Subject: |
Re: [PATCH v2 5/5] hw/nvme: flexible data placement emulation |
Date: |
Fri, 17 Feb 2023 11:14:17 -0700 |
On Fri, Feb 17, 2023 at 01:07:43PM +0100, Jesper Devantier wrote:
> +static void nvme_do_write_fdp(NvmeCtrl *n, NvmeRequest *req, uint64_t slba,
> + uint32_t nlb)
> +{
> + NvmeNamespace *ns = req->ns;
> + NvmeRwCmd *rw = (NvmeRwCmd *)&req->cmd;
> + uint64_t data_size = nvme_l2b(ns, nlb);
> + uint32_t dw12 = le32_to_cpu(req->cmd.cdw12);
> + uint8_t dtype = (dw12 >> 20) & 0xf;
> + uint16_t pid = le16_to_cpu(rw->dspec);
> + uint16_t ph, rg, ruhid;
> + NvmeReclaimUnit *ru;
> +
> + if (dtype != NVME_DIRECTIVE_DATA_PLACEMENT
> + || !nvme_parse_pid(ns, pid, &ph, &rg)) {
Style nit, the "||" ought to go in the previous line.
> + ph = 0;
> + rg = 0;
> + }
> +
> + ruhid = ns->fdp.phs[ph];
> + ru = &ns->endgrp->fdp.ruhs[ruhid].rus[rg];
> +
> + nvme_fdp_stat_inc(&ns->endgrp->fdp.hbmw, data_size);
> + nvme_fdp_stat_inc(&ns->endgrp->fdp.mbmw, data_size);
> +
> + //trace_pci_nvme_fdp_ruh_write(ruh->rgid, ruh->ruhid, ruh->nlb_ruamw,
> nlb);
> +
> + while (nlb) {
> + if (nlb < ru->ruamw) {
> + ru->ruamw -= nlb;
> + break;
> + }
> +
> + nlb -= ru->ruamw;
> + //trace_pci_nvme_fdp_ruh_change(ruh->rgid, ruh->ruhid);
Please use the trace points if you find them useful, otherwise just delete
them instead of committing commented out code.
Beyond that, looks good! For the series:
Reviewed-by: Keith Busch <kbusch@kernel.org>
- [PATCH v2 0/5] Support Flexible Data Placement (FDP), Jesper Devantier, 2023/02/17
- [PATCH v2 1/5] hw/nvme: move adjustment of data_units{read,written}, Jesper Devantier, 2023/02/17
- [PATCH v2 2/5] hw/nvme: store a pointer to the NvmeSubsystem in the NvmeNamespace, Jesper Devantier, 2023/02/17
- [PATCH v2 3/5] hw/nvme: add basic endurance group support, Jesper Devantier, 2023/02/17
- [PATCH v2 4/5] hw/nvme: basic directives support, Jesper Devantier, 2023/02/17
- [PATCH v2 5/5] hw/nvme: flexible data placement emulation, Jesper Devantier, 2023/02/17
- Re: [PATCH v2 5/5] hw/nvme: flexible data placement emulation,
Keith Busch <=