Re: [PATCH v3] cxl: docs/driver-api/conventions resolve conflicts btw CFMWS, LMH, ED

Gregory Price
2025-07-21T00:51:17Z

On Thu, Jul 17, 2025 at 04:14:13PM +0200, Fabio M. De Francesco wrote:
> The table above shows a real configuration copied from an x86 platform
> where the Low Memory Hole (LMH) starts at 2GB.
>
> The"HDM Decoder Base/Size" refers specifically to the CXL Endpoint
> Decoders HPA range Base/Size. The first row of the table describes the
> first window (CFMWS[0]), whose HPA rage base/size is 0/2GB, and the
> Endpoint Decoder that the CXL driver should match with that CFMWS,
> whose HPA range base/size is 0/3GB.

The only thing i ask is being more precise with decoder references.

HDM Decoder can refer to any of: root, switch, hb, or endpoint decoders.

Below you make this distinct in the explanation, but in the table it's
simply general "HDM Decoder". All I ask is for a bit more clarity on
what decoder will contain what values to avoid further ambiguity.

> The driver expects that the Endpoint Decoders HPA ranges to be contained
> into their corresponding Root Decoders. Furthermore, Linux fails to
> attach Endpoint decoders to already constructed CXL Regions because of
> the same size discrepancy issue.
> >
> > I think you need to describe what the expected behavior is for what linux
> > will produce in terms of the decoder objects given the above.
> >
> The expected behavior is that Linux should be able to match the Endpoint
> Decoder with the Root Decoder range even if the CFMWS size is smaller
> than the Decoder's, as long as the latter adheres to the 256MB * interleave
> ways rule. Furthermore, Linux should be able to match the Endpoint decoders
> with already constructed CXL Regions and allow the attachment process to
> succeed.
>

You may also need to describe more than just the contents of the
endpoint decoder. What would the content of any intermediate decoders
be (matching the root or matching the endpoint?).

> If this explanation suffices, I will incorporate it into the next version
> of this patch and also explain that "HDM Decoder" stands for Endpoint Decoder
> and that the CFMWS HPA base/size describes the System Physical Address (SPA)
> which the CXL driver uses to make Root Decoders HPA range base/size.
>

This explanation is better, just need a few more bits of data and I
think you're good to go.

~Gregory