From: "Dan Williams (nvidia)" <djbw@kernel.org>
To: Manish Honap <mhonap@nvidia.com>, Alex Williamson <alex@shazbot.org>
Cc: "djbw@kernel.org" <djbw@kernel.org>,
"jgg@ziepe.ca" <jgg@ziepe.ca>,
"jic23@kernel.org" <jic23@kernel.org>,
"dave.jiang@intel.com" <dave.jiang@intel.com>,
Ankit Agrawal <ankita@nvidia.com>,
"alejandro.lucero-palau@amd.com"
<alejandro.lucero-palau@amd.com>,
"alison.schofield@intel.com" <alison.schofield@intel.com>,
"dave@stgolabs.net" <dave@stgolabs.net>,
"dmatlack@google.com" <dmatlack@google.com>,
"gourry@gourry.net" <gourry@gourry.net>,
"ira.weiny@intel.com" <ira.weiny@intel.com>,
Neo Jia <cjia@nvidia.com>, Krishnakant Jaju <kjaju@nvidia.com>,
Vikram Sethi <vsethi@nvidia.com>, Zhi Wang <zhiw@nvidia.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-cxl@vger.kernel.org" <linux-cxl@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-kselftest@vger.kernel.org"
<linux-kselftest@vger.kernel.org>,
Manish Honap <mhonap@nvidia.com>
Subject: RE: [PATCH v3 07/11] vfio/pci: Add CONFIG_VFIO_PCI_CXL with bind-time CXL Type-2 acquisition
Date: Mon, 13 Jul 2026 21:32:02 -0700 [thread overview]
Message-ID: <6a55bbc276b96_f7ebd100e4@djbw-dev.notmuch> (raw)
In-Reply-To: <IA1PR12MB90309355D97FE886A1DA77BABDFA2@IA1PR12MB9030.namprd12.prod.outlook.com>
Manish Honap wrote:
[..]
> > > vfio_pci_cxl_acquire() implements the bind sequence:
> > >
> > > - pcie_is_cxl() and CXL Device DVSEC discovery (-ENODEV if absent
> > > or if MEM_CAPABLE clear — caller falls back to plain vfio-pci)
> > > - devm_cxl_dev_state_create() with struct vfio_pci_cxl_state
> > > embedding cxl_dev_state at offset 0 (required by the 7-arg
> > > macro's static_assert in include/cxl/cxl.h)
> > > - pci_enable_device_mem(), cxl_pci_setup_regs(), cxl_get_hdm_info()
> > > (rejecting hdm_count != 1), cxl_regblock_get_bar_info(),
> > > cxl_await_range_active()
> >
> > The cover letter claims otherwise:
> >
> > "- cxl_await_range_active stays in cxl-core probe; not exported, vfio
> > does not call it."
> >
> > It's exported in 2/ and called below.
This feels like a gap on the CXL side. devm_cxl_probe_mem() should take
care to only succeed after memory is active, or fail with a timeout.
Recall that the current cxl_await_range_active() export is for the
"internal" cxl_pci driver. Now that there are external consumers
devm_cxl_probe_mem() should return a fully validated and awaited memory
range. Do not make every driver remember this part of the setup flow.
> > > - devm_cxl_passthrough_create() to snapshot the DVSEC body, HDM
> > > block, and CM cap-array shadows owned by cxl-core
> > > - pci_disable_device() — clears PCI_COMMAND_MASTER but NOT
> > > PCI_COMMAND_MEMORY, so cxl-core MMIO accesses from the next step
> > > still succeed
> > > - devm_cxl_probe_mem() to register the cxl_memdev, enumerate the
> > > endpoint port, and attach the firmware-committed autoregion
> > > - request_mem_region() + memremap_wb() of the autoregion's HPA so
> > > the HDM VFIO region can serve guest accesses through it
> >
> > How does this interact with:
> >
> > - The device making use of low power states while idle
> > - Repeatability per tenant instance
> > - Protection of tenant data per instance
> >
> > The culmination of all of these, plus the basic housekeeping of
> > maintaining the lightest touch on the device, including keeping the
> > device in the minimum state of functionality outside of an actual user,
> > is why I would expect to perform acquire/release as part of open/close.
>
> The cover letter description is wrong. During my earlier thought process,
> creating a region during probe seemed a correct option as any later requirement
> where region needs to be already created at probe emerged, we will have easier
> way to handle it. I will give some more thought to update v4 to acquire
> CXL state in open_device() and release it in close_device(), matching zpci.
This is going to run up against a current design wart of
devm_cxl_probe_mem() that does not have a teardown flow implemented
outside of the typical ->remove() to devres_release_all() flow. Even if
that was fixed I do not see it affecting the listed concerns.
devm_cxl_probe_mem() for firmware committed decoders is mostly just
reading resource values.
For power state management the power management that vfio-pci performs
only informs the CXL.io portion of device power. CXL.cache and CXL.mem
are dynamically managed by the device.
For repeatability I do think discarding and reinitializing the shadow
configuration makes sense, but the base HDM configuration does not
require teardown.
For tenant data protection that arises from the data retention after
reset policy, not impacted by unloading the HDM configuration.
I assume VFIO likely would want to build a capability to zero HDM memory
if the device leaves the state ambiguous / implementation defined?
That is a good note for the CXL Reset series as well. If VFIO issued
resets are for tenant handoff the make sure that CXL Reset requests
memory clearing.
next prev parent reply other threads:[~2026-07-14 4:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-25 16:53 [PATCH v3 00/11] vfio/pci: Add CXL Type-2 device passthrough support mhonap
2026-06-25 16:53 ` [PATCH v3 01/11] cxl: Add cxl_get_hdm_info() helper for HDM decoder metadata mhonap
2026-07-10 1:00 ` Dan Williams (nvidia)
2026-07-13 16:44 ` Manish Honap
2026-06-25 16:53 ` [PATCH v3 02/11] cxl: Split cxl_await_range_active() from media-ready wait mhonap
2026-06-25 16:53 ` [PATCH v3 03/11] cxl: Record BIR and BAR offset in cxl_register_map mhonap
2026-06-25 16:54 ` [PATCH v3 04/11] cxl: Move component/HDM register defines to uapi/cxl/cxl_regs.h mhonap
2026-06-25 16:54 ` [PATCH v3 05/11] vfio: UAPI for CXL Type-2 device passthrough mhonap
2026-07-10 22:23 ` Alex Williamson
2026-07-13 16:44 ` Manish Honap
2026-07-13 17:40 ` Manish Honap
2026-07-13 21:14 ` Dan Williams (nvidia)
2026-07-13 23:37 ` Alex Williamson
2026-06-25 16:54 ` [PATCH v3 06/11] cxl: Add register-virtualization helpers for vfio Type-2 passthrough mhonap
2026-07-10 21:56 ` Dan Williams (nvidia)
2026-07-13 16:46 ` Manish Honap
2026-06-25 16:54 ` [PATCH v3 07/11] vfio/pci: Add CONFIG_VFIO_PCI_CXL with bind-time CXL Type-2 acquisition mhonap
2026-07-10 22:23 ` Alex Williamson
2026-07-13 16:48 ` Manish Honap
2026-07-14 4:32 ` Dan Williams (nvidia) [this message]
2026-06-25 16:54 ` [PATCH v3 08/11] vfio/pci/cxl: Add HDM + COMP_REGS regions and DVSEC clipping shim mhonap
2026-07-10 22:09 ` Dan Williams (nvidia)
2026-07-13 16:48 ` Manish Honap
2026-07-10 22:23 ` Alex Williamson
2026-07-13 16:48 ` Manish Honap
2026-06-25 16:54 ` [PATCH v3 09/11] selftests/vfio: Add CXL Type-2 device passthrough smoke test mhonap
2026-06-25 16:54 ` [PATCH v3 10/11] docs: vfio-pci: Document CXL Type-2 device passthrough mhonap
2026-06-25 16:54 ` [PATCH v3 11/11] vfio/pci: Provide opt-out for CXL Type-2 extensions mhonap
2026-06-26 9:16 ` [PATCH v3 00/11] vfio/pci: Add CXL Type-2 device passthrough support Richard Cheng
2026-07-13 16:44 ` Manish Honap
2026-07-10 16:26 ` Dave Jiang
2026-07-13 16:43 ` Manish Honap
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=6a55bbc276b96_f7ebd100e4@djbw-dev.notmuch \
--to=djbw@kernel.org \
--cc=alejandro.lucero-palau@amd.com \
--cc=alex@shazbot.org \
--cc=alison.schofield@intel.com \
--cc=ankita@nvidia.com \
--cc=cjia@nvidia.com \
--cc=dave.jiang@intel.com \
--cc=dave@stgolabs.net \
--cc=dmatlack@google.com \
--cc=gourry@gourry.net \
--cc=ira.weiny@intel.com \
--cc=jgg@ziepe.ca \
--cc=jic23@kernel.org \
--cc=kjaju@nvidia.com \
--cc=kvm@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mhonap@nvidia.com \
--cc=vsethi@nvidia.com \
--cc=zhiw@nvidia.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