Re: [PATCH v7 0/2 RESEND] Support zero-sized HDM decoders
Richard Cheng <[email protected]> Fri, 24 Jul 2026 14:38:15 +0800
| Newsgroups | org.kernel.vger.linux-cxl,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <amMIAjOCTDlSpH_S@MWDK4CY14F> |
On Wed, Jul 22, 2026 at 01:07:31AM +0800, Jonathan Cameron wrote: > On Tue, 21 Jul 2026 16:57:13 +0800 > Richard Cheng <[email protected]> wrote: > > Hi Richard, > > RESEND series should always include a brief note at the top of the cover letter > saying why. Otherwise it can get rather confusing for anyone seeing both. > I'd also always reply to original post (even it when to subset of people > or similar) just to call out you are resending and hopefully stop > the reviews getting split across the two postings. > > If it was just that it had been a few weeks, don't resend for that. > > Jonathan > Hi Jonathan, Copied that, I'll keep this in mind. Sorry for the inconvevient. Best regards, Richard Cheng. > > > CXL r4.0 §8.2.4.20.12 ("Committing Decoder Programming") and > > §14.13.10 ("CXL HDM Decoder Zero Size Commit") permit committing an > > HDM decoder with size 0. Firmware may commit and lock such decoders so > > the OS cannot program regions through them; this is a platform design > > choice rather than a specification requirement. > > > > The kernel currently rejects these decoders with -ENXIO during port > > enumeration and aborts enumeration of the entire port. On affected > > systems, this prevents the CXL topology from appearing in userspace. > > > > This series enumerates empty committed decoders into the topology while > > keeping them out of region assembly. > > > > Patch 1 makes zero-size DPA reservations first-class. Since the resource > > tree cannot represent an empty range, an empty decoder is backed by a > > separately allocated resource. This keeps port->hdm_end, skip handling, > > and in-order DPA accounting consistent. Operations requiring non-empty > > capacity, including region attachment and poison queries, are guarded > > appropriately. > > > > Patch 2 adds the mock_zero_size_decoders cxl_test module parameter, > > disabled by default. When enabled, it installs committed, locked, > > zero-sized endpoint, switch, and host-bridge decoders under > > host-bridge0. > > > > Testing on arm64 covered enumeration of eight locked zero-sized > > decoders, DPA reservation and release after those decoders, ACPI > > unbind/rebind, module reload, poison handling, and rejection of > > incompatible cxl_test module-parameter combinations. The core patch was > > also previously validated on a Montage CXL Type 3 device. > > > > The corresponding ndctl test is attached at > > https://lore.kernel.org/linux-cxl/[email protected]/ > > > > Changelog: > > > > v6->v7: > > - Rebase onto cxl/for-7.3/cxl-type2-test. > > - Patch 1 is unchanged. > > - Adapt patch 2 to the refactored Type-2/Type-3 decoder initialization > > paths. > > - Integrate mock_zero_size_decoders with special-topology parameter > > validation and reject its incompatible use with fail_autoassemble. > > > > Richard Cheng (2): > > cxl/hdm: Allow zero sized HDM decoders > > tools/testing/cxl: Enable zero sized decoders under hb0 > > > > drivers/cxl/core/hdm.c | 52 +++++++++++------ > > drivers/cxl/core/mbox.c | 3 + > > drivers/cxl/core/region.c | 49 ++++++++++------ > > drivers/cxl/cxl.h | 10 ++++ > > drivers/cxl/port.c | 3 + > > tools/testing/cxl/test/cxl.c | 109 ++++++++++++++++++++++++++++++----- > > 6 files changed, 177 insertions(+), 49 deletions(-) > > > > > > base-commit: 1c6b4ceafc3b994871c29340e0c1ddb0af5800e7 >