Re: FW: [LSF/MM/BPF TOPIC] SMDK inspired MM changes for CXL

Dragan Stancevic <[email protected]> Thu, 30 Mar 2023 17:03:24 -0500
Newsgroups dev.linux.lists.nil-migration,org.kernel.vger.linux-cxl,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm
Message-ID <[email protected]>
On 3/26/23 02:21, Mike Rapoport wrote:
> Hi,
> 
> [..] >> One problem we experienced was occured in the combination of 
hot-remove and kerelspace allocation usecases.
>> ZONE_NORMAL allows kernel context allocation, but it does not allow hot-remove because kernel resides all the time.
>> ZONE_MOVABLE allows hot-remove due to the page migration, but it only allows userspace allocation.
>> Alternatively, we allocated a kernel context out of ZONE_MOVABLE by adding GFP_MOVABLE flag.
>> In case, oops and system hang has occasionally occured because ZONE_MOVABLE can be swapped.
>> We resolved the issue using ZONE_EXMEM by allowing seletively choice of the two usecases.
>> As you well know, among heterogeneous DRAM devices, CXL DRAM is the first PCIe basis device, which allows hot-pluggability, different RAS, and extended connectivity.
>> So, we thought it could be a graceful approach adding a new zone and separately manage the new features.
> 
> This still does not describe what are the use cases that require having
> kernel allocations on CXL.mem.
> 
> I believe it's important to start with explanation *why* it is important to
> have kernel allocations on removable devices.

Hi Mike,

not speaking for Kyungsan here, but I am starting to tackle hypervisor 
clustering and VM migration over cxl.mem [1].

And in my mind, at least one reason that I can think of having kernel 
allocations from cxl.mem devices is where you have multiple VH 
connections sharing the memory [2]. Where for example you have a user 
space application stored in cxl.mem, and then you want the metadata 
about this process/application that the kernel keeps on one hypervisor 
be "passed on" to another hypervisor. So basically the same way 
processors in a single hypervisors cooperate on memory, you extend that 
across processors that span over physical hypervisors. If that makes 
sense...


[1] A high-level explanation is at http://nil-migration.org
[2] Compute Express Link Specification r3.0, v1.0 8/1/22, Page 51, 
figure 1-4, black color scheme circle(3) and bars.

--
Peace can only come as a natural consequence
of universal enlightenment -Dr. Nikola Tesla