mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Niklas Cassel <cassel@kernel.org>
To: Damien Le Moal <dlemoal@kernel.org>
Cc: "Christoph Hellwig" <hch@lst.de>,
	"Andrea Parri" <parri.andrea@gmail.com>,
	"Sagi Grimberg" <sagi@grimberg.me>,
	"Chaitanya Kulkarni" <kch@nvidia.com>,
	"Keith Busch" <kbusch@kernel.org>,
	"Manivannan Sadhasivam" <mani@kernel.org>,
	"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
	linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH 4/5] nvmet: pci-epf: report transport errors in command completions
Date: Wed, 14 Oct 2026 14:46:46 +0200	[thread overview]
Message-ID: <as95tp8CF2lX4Gs0@ryzen> (raw)
In-Reply-To: <1b4ee842-844e-4b6a-9ce8-0c4e7229825f@kernel.org>

On Tue, Oct 13, 2026 at 05:12:16PM +0200, Damien Le Moal wrote:
> On 2026/10/13 16:27, Christoph Hellwig wrote:
> > I think this looks good.  Damien/Niklas, can you test this on hardware?
> 
> I do not have the hardware available right now. Niklas ? Can you test this?

I understand that these changes are not supposed to affect performance,
but posting it for completeness:


Before patches:

# ./fio-test.sh /dev/nvme0n1
Running on /dev/nvme0n1...
  Rnd read,    4KB,  QD=1, 1 job :  IOPS=3088, BW=12.1MiB/s (12.7MB/s)
  Rnd read,    4KB, QD=32, 1 job :  IOPS=45.4k, BW=177MiB/s (186MB/s)
  Rnd read,    4KB, QD=32, 4 jobs:  IOPS=47.8k, BW=187MiB/s (196MB/s)
  Rnd read,  128KB,  QD=1, 1 job :  IOPS=1803, BW=225MiB/s (236MB/s)
  Rnd read,  128KB, QD=32, 1 job :  IOPS=9078, BW=1135MiB/s (1190MB/s)
  Rnd read,  128KB, QD=32, 4 jobs:  IOPS=10.0k, BW=1253MiB/s (1314MB/s)
  Rnd read,  512KB,  QD=1, 1 job :  IOPS=1447, BW=724MiB/s (759MB/s)
  Rnd read,  512KB, QD=32, 1 job :  IOPS=2415, BW=1208MiB/s (1267MB/s)
  Rnd read,  512KB, QD=32, 4 jobs:  IOPS=2686, BW=1343MiB/s (1409MB/s)
  Rnd write,   4KB,  QD=1, 1 job :  IOPS=3046, BW=11.9MiB/s (12.5MB/s)
  Rnd write,   4KB, QD=32, 1 job :  IOPS=22.9k, BW=89.3MiB/s (93.6MB/s)
  Rnd write,   4KB, QD=32, 4 jobs:  IOPS=22.9k, BW=89.6MiB/s (94.0MB/s)
  Rnd write, 128KB,  QD=1, 1 job :  IOPS=1555, BW=194MiB/s (204MB/s)
  Rnd write, 128KB, QD=32, 1 job :  IOPS=6183, BW=773MiB/s (810MB/s)
  Rnd write, 128KB, QD=32, 4 jobs:  IOPS=6903, BW=863MiB/s (905MB/s)
  Seq read,  128KB,  QD=1, 1 job :  IOPS=1672, BW=209MiB/s (219MB/s)
  Seq read,  128KB, QD=32, 1 job :  IOPS=9033, BW=1129MiB/s (1184MB/s)
  Seq read,  512KB,  QD=1, 1 job :  IOPS=1580, BW=790MiB/s (829MB/s)
  Seq read,  512KB, QD=32, 1 job :  IOPS=2536, BW=1268MiB/s (1330MB/s)
  Seq read,    1MB, QD=32, 1 job :  IOPS=1297, BW=1297MiB/s (1360MB/s)
  Seq write, 128KB,  QD=1, 1 job :  IOPS=1547, BW=193MiB/s (203MB/s)
  Seq write, 128KB, QD=32, 1 job :  IOPS=6563, BW=820MiB/s (860MB/s)
  Seq write, 512KB,  QD=1, 1 job :  IOPS=893, BW=447MiB/s (469MB/s)
  Seq write, 512KB, QD=32, 1 job :  IOPS=1667, BW=834MiB/s (874MB/s)
  Seq write,   1MB, QD=32, 1 job :  IOPS=762, BW=763MiB/s (800MB/s)
  Rnd rdwr, 4K..1MB, QD=8, 4 jobs:  IOPS=788, BW=396MiB/s (415MB/s)
 IOPS=811, BW=408MiB/s (427MB/s)


After patches:

# ./fio-test.sh /dev/nvme0n1
Running on /dev/nvme0n1...
  Rnd read,    4KB,  QD=1, 1 job :  IOPS=2958, BW=11.6MiB/s (12.1MB/s)
  Rnd read,    4KB, QD=32, 1 job :  IOPS=44.5k, BW=174MiB/s (182MB/s)
  Rnd read,    4KB, QD=32, 4 jobs:  IOPS=47.4k, BW=185MiB/s (194MB/s)
  Rnd read,  128KB,  QD=1, 1 job :  IOPS=1741, BW=218MiB/s (228MB/s)
  Rnd read,  128KB, QD=32, 1 job :  IOPS=9327, BW=1166MiB/s (1223MB/s)
  Rnd read,  128KB, QD=32, 4 jobs:  IOPS=10.2k, BW=1280MiB/s (1342MB/s)
  Rnd read,  512KB,  QD=1, 1 job :  IOPS=1444, BW=722MiB/s (758MB/s)
  Rnd read,  512KB, QD=32, 1 job :  IOPS=2505, BW=1253MiB/s (1313MB/s)
  Rnd read,  512KB, QD=32, 4 jobs:  IOPS=2516, BW=1258MiB/s (1319MB/s)
  Rnd write,   4KB,  QD=1, 1 job :  IOPS=3322, BW=13.0MiB/s (13.6MB/s)
  Rnd write,   4KB, QD=32, 1 job :  IOPS=22.8k, BW=89.1MiB/s (93.5MB/s)
  Rnd write,   4KB, QD=32, 4 jobs:  IOPS=22.9k, BW=89.4MiB/s (93.7MB/s)
  Rnd write, 128KB,  QD=1, 1 job :  IOPS=1529, BW=191MiB/s (201MB/s)
  Rnd write, 128KB, QD=32, 1 job :  IOPS=6369, BW=796MiB/s (835MB/s)
  Rnd write, 128KB, QD=32, 4 jobs:  IOPS=6449, BW=806MiB/s (845MB/s)
  Seq read,  128KB,  QD=1, 1 job :  IOPS=1690, BW=211MiB/s (222MB/s)
  Seq read,  128KB, QD=32, 1 job :  IOPS=9262, BW=1158MiB/s (1214MB/s)
  Seq read,  512KB,  QD=1, 1 job :  IOPS=1428, BW=714MiB/s (749MB/s)
  Seq read,  512KB, QD=32, 1 job :  IOPS=2652, BW=1326MiB/s (1391MB/s)
  Seq read,    1MB, QD=32, 1 job :  IOPS=1301, BW=1302MiB/s (1365MB/s)
  Seq write, 128KB,  QD=1, 1 job :  IOPS=1531, BW=191MiB/s (201MB/s)
  Seq write, 128KB, QD=32, 1 job :  IOPS=6144, BW=768MiB/s (805MB/s)
  Seq write, 512KB,  QD=1, 1 job :  IOPS=924, BW=462MiB/s (485MB/s)
  Seq write, 512KB, QD=32, 1 job :  IOPS=1468, BW=734MiB/s (770MB/s)
  Seq write,   1MB, QD=32, 1 job :  IOPS=749, BW=749MiB/s (786MB/s)
  Rnd rdwr, 4K..1MB, QD=8, 4 jobs:  IOPS=786, BW=394MiB/s (414MB/s)
 IOPS=809, BW=407MiB/s (426MB/s)



Also used ftrace on the EP side to see that SGLs were actually being used:
   kworker/u32:2-75      [005] .....   300.152187: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.152560: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.153126: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.153702: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.154273: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.154807: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.155445: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.156263: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.156676: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.157340: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work
   kworker/u32:2-75      [005] .....   300.158096: nvmet_pci_epf_iod_parse_sgls <-nvmet_pci_epf_exec_iod_work


I can not see anything wrong, thus:

Tested-by: Niklas Cassel <cassel@kernel.org>

  parent reply	other threads:[~2026-10-14 12:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-12 14:12 [PATCH 0/5] nvmet: fix stale data exposure and ZNS validation Andrea Parri
2026-10-12 14:12 ` [PATCH 1/5] nvmet-fc: only send read data for successful commands Andrea Parri
2026-10-12 14:12 ` [PATCH 2/5] nvmet: zns: don't leak stale memory in zone management receive Andrea Parri
2026-10-13 14:25   ` Christoph Hellwig
2026-10-14 11:00     ` Andrea Parri
2026-10-14 13:04       ` Christoph Hellwig
2026-10-13 15:47   ` Keith Busch
2026-10-12 14:12 ` [PATCH 3/5] nvmet: zns: reject a NUMD whose byte count wraps Andrea Parri
2026-10-13 14:26   ` Christoph Hellwig
2026-10-14 11:00     ` Andrea Parri
2026-10-12 14:12 ` [PATCH 4/5] nvmet: pci-epf: report transport errors in command completions Andrea Parri
2026-10-13 14:27   ` Christoph Hellwig
2026-10-13 15:12     ` Damien Le Moal
2026-10-14 11:01       ` Andrea Parri
2026-10-14 12:46       ` Niklas Cassel [this message]
2026-10-12 14:12 ` [PATCH 5/5] nvmet: pci-epf: require SGLs to match the command data length Andrea Parri
2026-10-13 14:28   ` Christoph Hellwig
2026-10-14 12:47     ` Niklas Cassel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=as95tp8CF2lX4Gs0@ryzen \
    --to=cassel@kernel.org \
    --cc=dlemoal@kernel.org \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=kch@nvidia.com \
    --cc=kwilczynski@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=mani@kernel.org \
    --cc=parri.andrea@gmail.com \
    --cc=sagi@grimberg.me \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®