[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Z7RdH7RGNivDjq6n@phytium.com.cn>
Date: Tue, 18 Feb 2025 18:12:47 +0800
From: Yuquan Wang <wangyuquan1236@...tium.com.cn>
To: Gregory Price <gourry@...rry.net>
Cc: lsf-pc@...ts.linux-foundation.org, linux-mm@...ck.org,
linux-cxl@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [LSF/MM] CXL Boot to Bash - Section 1: BIOS, EFI, and Early Boot
On Tue, Feb 04, 2025 at 09:17:09PM -0500, Gregory Price wrote:
>
> ------------------------------------------------------------------
> Step 2: BIOS / EFI generates the CEDT (CXL Early Detection Table).
> ------------------------------------------------------------------
>
> This table is responsible for reporting each "CXL Host Bridge" and
> "CXL Fixed Memory Window" present at boot - which enables early boot
> software to manage those devices and the memory capacity presented
> by those devices.
>
> Example CEDT Entries (truncated)
> Subtable Type : 00 [CXL Host Bridge Structure]
> Reserved : 00
> Length : 0020
> Associated host bridge : 00000005
>
> Subtable Type : 01 [CXL Fixed Memory Window Structure]
> Reserved : 00
> Length : 002C
> Reserved : 00000000
> Window base address : 000000C050000000
> Window size : 0000003CA0000000
>
> If this memory is NOT marked "Special Purpose" by BIOS (next section),
> you should find a matching entry EFI Memory Map and /proc/iomem
>
> BIOS-e820: [mem 0x000000c050000000-0x000000fcefffffff] usable
> /proc/iomem: c050000000-fcefffffff : System RAM
>
>
> Observation: This memory is treated as 100% normal System RAM
>
> 1) This memory may be placed in any zone (ZONE_NORMAL, typically)
> 2) The kernel may use this memory for arbitrary allocations
> 4) The driver still enumerates CXL devices and memory regions, but
> 3) The CXL driver CANNOT manage this memory (as of today)
> (Caveat: *some* RAS features may still work, possibly)
>
Hi, Gregory
Thanks for the in-depth introduction and analysis.
Here I have some confusion:
1) In this scenario, does it mean users could not create a CXL region
dynamically after OS boot?
2) A CXL region (interleave set) would influence the real used memory
in this memory range. Therefore, apart from devices, does platforms
have to configure CXL regions in this stage?
3) How bios/EFI to describe a CXL region?
> This creates an nuanced management state.
>
> The memory is online by default and completely usable, AND the driver
> appears to be managing the devices - BUT the memory resources and the
> management structure are fundamentally separate.
> 1) CXL Driver manages CXL features
> 2) Non-CXL SystemRAM mechanisms surface the memory to allocators.
>
Powered by blists - more mailing lists