From: Alex Williamson <alex@shazbot.org>
To: Leon Romanovsky <leon@kernel.org>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
David Matlack <dmatlack@google.com>,
Fuad Tabba <fuad.tabba@linux.dev>,
Joey Gouly <joey.gouly@arm.com>,
kvm@vger.kernel.org, kvmarm@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-kselftest@vger.kernel.org, linux-rdma@vger.kernel.org,
Marc Zyngier <maz@kernel.org>, Mark Bloch <mbloch@nvidia.com>,
netdev@vger.kernel.org, Oliver Upton <oupton@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
Saeed Mahameed <saeedm@nvidia.com>,
Sean Christopherson <seanjc@google.com>,
Steffen Eiden <seiden@linux.ibm.com>,
Shuah Khan <shuah@kernel.org>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Tariq Toukan <tariqt@nvidia.com>,
Zenghui Yu <yuzenghui@huawei.com>,
patches@lists.linux.dev, alex@shazbot.org
Subject: Re: [PATCH v7 00/10] mlx5 support for VFIO self test
Date: Thu, 24 Sep 2026 06:56:42 -0600 [thread overview]
Message-ID: <20260924065642.125986a4@shazbot.org> (raw)
In-Reply-To: <0-v7-c6d30e8ce1e4+3dfa6-mlx5st_jgg@nvidia.com>
Leon, can we get your ack on 1-4? I'll publish an rc1-based branch for
any conflict management. Thanks,
Alex
On Mon, 21 Sep 2026 19:35:40 -0300
Jason Gunthorpe <jgg@nvidia.com> wrote:
> Add an mlx5 driver to VFIO self test. This is largely a remix of the
> existing VFIO mlx5 driver in rdma-core. It uses an RDMA loopback QP
> to issue RDMA WRITE operations which effectively perform memory
> copies using DMA. Since mlx5 has a stable programming ABI this
> should work on devices from CX5 to current HW. The device FW must
> support the QP loopback configuration.
>
> Also support send_msi by arming completion events of the RDMA WRITE
> to trigger MSI delivery.
>
> mlx5 device startup is very complex and most of this code is just
> booting the device, with a smaller amount for operating the QP.
>
> This entire series was coded by Claude Code in about 4 days. It
> used about 4.5M output tokens, 30 individual sessions and 5600 lines
> of AI-generated .md files. I spent an annoying amount of time
> de-slopping and cleaning its work product to make it presentable.
> However, previous VFIO drivers have taken on the order of 1-2
> months to write, so getting one in a week is pretty remarkable.
>
> For those interested, the flow I used was broadly a prompt sequence
> sort of like:
>
> - Hey Claude, go look at the falcon series, VFIO self test, the
> mlx5 driver, rdma-core and some PDF documentation and make a
> plan to put mlx5 under the selftest.
> - Write an rdma-core application using the built-in VFIO provider
> that can do the required memcpy operations that vfio selftests
> wants.
> (This resulted in a 1k loc C file that compiled and ran the
> first time but had a few bugs related to device programming
> that the AI resolved.)
> - Replace the rdma-core components with open-coded versions to
> create a fully stand-alone program that does the DMA memcpy.
> - Review and audit the thing.
> [Pause and de-slop it]
> - Make it work on a PF too (this is surprisingly hard!).
> [Move to a kernel tree and copy all the .md files and .c program
> it made]
> - Hey Claude, look at all this stuff and make a broad plan to
> actually build a VFIO self test.
> - Here is my 1 sentence advice on what each patch should look
> like, make a detailed plan to make a patch for every one.
> [Pause and polish the patch plans]
> - Execute plan X then commit it [pause and de-slop each patch,
> repeat].
> [Review and final polish]
>
> v7:
> - Fix some compilation problems, kvm and the igb
> v6: https://patch.msgid.link/r/0-v6-8af36cf7b73f+e2-mlx5st_jgg@nvidia.com
> - Rebase on v7.3-rc3
> - Correct some minor sashiko remarks
> v5: https://patch.msgid.link/r/0-v5-4cacb99249f6+1b4-mlx5st_jgg@nvidia.com
> - Rebase on v7.3-rc1
> - Adjust how region_size is computed to min it to getpagesize()
> v4: https://patch.msgid.link/r/0-v4-021df3fb5a3f+98e-mlx5st_jgg@nvidia.com
> - Rebase on vfio next, update igb and falcon
> - Move rounding to iova_allocator_alloc()
> - Remove arm barrier changes
> v3: https://patch.msgid.link/r/0-v3-76f117ad04f1+28a90-mlx5st_jgg@nvidia.com
> - Move max into vfio_pci_driver_probe()
> - Rebase on v7.2-rc3
> v2: https://patch.msgid.link/r/0-v2-72e9640932fd+2c64-mlx5st_jgg@nvidia.com
> - Rebase on v7.1-rc3, drop falcon patches
> - dev_dbg checks the format string even in non debug builds
> - Sort includes
> - Adjust comments/commit messageas
> - Use linux/pci_ids.h
> - Compute the driver.max_memcpy_size the same as mlx5 kernel driver, it
> should be GBs now on most devices
> - Put region_size into all drivers instead of allowing 0
> v1: https://patch.msgid.link/r/0-v1-dc5fa250ca1d+3213-mlx5st_jgg@nvidia.com
>
> Jason Gunthorpe (10):
> net/mlx5: Add IFC structures for CQE and WQE
> net/mlx5: Move HW constant groups from device.h/cq.h to mlx5_ifc.h
> net/mlx5: Extract MLX5_SET/GET macros into mlx5_ifc_macros.h
> net/mlx5: Add ONCE and MMIO accessor variants to mlx5_ifc_macros.h
> selftests: Add additional kernel functions to tools/include/
> vfio: selftests: Allow drivers to specify required region size
> vfio: selftests: Add dev_dbg
> vfio: selftests: Add mlx5 driver - HW init and command interface
> vfio: selftests: Add mlx5 driver - data path and memcpy ops
> vfio: selftests: mlx5 driver - add send_msi support
>
> include/linux/mlx5/cq.h | 10 -
> include/linux/mlx5/device.h | 231 +-
> include/linux/mlx5/mlx5_ifc.h | 178 ++
> include/linux/mlx5/mlx5_ifc_macros.h | 185 ++
> tools/arch/arm64/include/asm/barrier.h | 4 +
> tools/arch/x86/include/asm/barrier.h | 5 +
> tools/include/asm-generic/io.h | 28 +
> tools/include/asm/barrier.h | 8 +
> tools/include/linux/stddef.h | 10 +
> .../selftests/kvm/include/arm64/processor.h | 4 +-
> tools/testing/selftests/kvm/irq_test.c | 2 -
> .../selftests/vfio/lib/drivers/dsa/dsa.c | 1 +
> .../selftests/vfio/lib/drivers/igb/igb.c | 1 +
> .../selftests/vfio/lib/drivers/ioat/ioat.c | 1 +
> .../selftests/vfio/lib/drivers/mlx5/mlx5.c | 1928 +++++++++++++++++
> .../selftests/vfio/lib/drivers/mlx5/mlx5_hw.h | 114 +
> .../vfio/lib/drivers/mlx5/mlx5_ifc.h | 1 +
> .../vfio/lib/drivers/mlx5/mlx5_ifc_fpga.h | 1 +
> .../vfio/lib/drivers/mlx5/mlx5_ifc_macros.h | 1 +
> .../vfio/lib/drivers/nv_falcon/nv_falcon.c | 1 +
> .../lib/include/libvfio/vfio_pci_device.h | 11 +
> .../lib/include/libvfio/vfio_pci_driver.h | 6 +
> .../selftests/vfio/lib/iova_allocator.c | 7 +-
> tools/testing/selftests/vfio/lib/libvfio.mk | 1 +
> .../selftests/vfio/lib/vfio_pci_driver.c | 6 +
> .../selftests/vfio/vfio_pci_driver_test.c | 3 +-
> 26 files changed, 2502 insertions(+), 246 deletions(-)
> create mode 100644 include/linux/mlx5/mlx5_ifc_macros.h
> create mode 100644 tools/include/linux/stddef.h
> create mode 100644 tools/testing/selftests/vfio/lib/drivers/mlx5/mlx5.c
> create mode 100644 tools/testing/selftests/vfio/lib/drivers/mlx5/mlx5_hw.h
> create mode 120000 tools/testing/selftests/vfio/lib/drivers/mlx5/mlx5_ifc.h
> create mode 120000 tools/testing/selftests/vfio/lib/drivers/mlx5/mlx5_ifc_fpga.h
> create mode 120000 tools/testing/selftests/vfio/lib/drivers/mlx5/mlx5_ifc_macros.h
>
>
> base-commit: fd73f4a6659897191fa0d40695fe370925dd3780
next prev parent reply other threads:[~2026-09-24 12:56 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-21 22:35 [PATCH v7 00/10] mlx5 support for VFIO self test Jason Gunthorpe
2026-09-21 22:35 ` [PATCH v7 01/10] net/mlx5: Add IFC structures for CQE and WQE Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-28 19:21 ` Leon Romanovsky
2026-09-21 22:35 ` [PATCH v7 02/10] net/mlx5: Move HW constant groups from device.h/cq.h to mlx5_ifc.h Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-28 19:21 ` Leon Romanovsky
2026-09-21 22:35 ` [PATCH v7 03/10] net/mlx5: Extract MLX5_SET/GET macros into mlx5_ifc_macros.h Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-28 19:22 ` Leon Romanovsky
2026-09-21 22:35 ` [PATCH v7 04/10] net/mlx5: Add ONCE and MMIO accessor variants to mlx5_ifc_macros.h Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-28 19:24 ` Leon Romanovsky
2026-09-21 22:35 ` [PATCH v7 05/10] selftests: Add additional kernel functions to tools/include/ Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-21 22:35 ` [PATCH v7 06/10] vfio: selftests: Allow drivers to specify required region size Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-23 18:26 ` David Matlack
2026-09-23 22:42 ` Sean Christopherson
2026-09-21 22:35 ` [PATCH v7 07/10] vfio: selftests: Add dev_dbg Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-21 22:35 ` [PATCH v7 08/10] vfio: selftests: Add mlx5 driver - HW init and command interface Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-21 22:35 ` [PATCH v7 09/10] vfio: selftests: Add mlx5 driver - data path and memcpy ops Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-21 22:35 ` [PATCH v7 10/10] vfio: selftests: mlx5 driver - add send_msi support Jason Gunthorpe
2026-09-22 22:38 ` sashiko-bot
2026-09-23 18:30 ` [PATCH v7 00/10] mlx5 support for VFIO self test David Matlack
2026-09-24 12:56 ` Alex Williamson [this message]
2026-09-28 22:28 ` Alex Williamson
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=20260924065642.125986a4@shazbot.org \
--to=alex@shazbot.org \
--cc=dmatlack@google.com \
--cc=fuad.tabba@linux.dev \
--cc=jgg@nvidia.com \
--cc=joey.gouly@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=leon@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=maz@kernel.org \
--cc=mbloch@nvidia.com \
--cc=netdev@vger.kernel.org \
--cc=oupton@kernel.org \
--cc=patches@lists.linux.dev \
--cc=pbonzini@redhat.com \
--cc=saeedm@nvidia.com \
--cc=seanjc@google.com \
--cc=seiden@linux.ibm.com \
--cc=shuah@kernel.org \
--cc=suzuki.poulose@arm.com \
--cc=tariqt@nvidia.com \
--cc=yuzenghui@huawei.com \
/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