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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.