RE: Re: Re: RE(2): FW: [LSF/MM/BPF TOPIC] SMDK inspired MM changes for CXL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>On Fri, Mar 31, 2023 at 08:37:15PM +0900, Kyungsan Kim wrote:
>> >> We resolved the issue using ZONE_EXMEM by allowing seletively choice of the two usecases.
>> >
>> >This sounds dangerously confused.  Do you want the EXMEM to be removable
>> >or not?  If you do, then allocations from it have to be movable.  If
>> >you don't, why go to all this trouble?
>> 
>> I'm sorry to make you confused. We will try more to clearly explain our thought.
>> We think the CXL DRAM device should be removable along with HW pluggable nature.
>> For MM point of view, we think a page of CXL DRAM can be both movable and unmovable. 
>> An user or kernel context should be able to determine it. Thus, we think dedication on the ZONE_NORMAL or the ZONE_MOVABLE is not enough.
>
>No, this is not the right approach.  If CXL is to be hot-pluggable,
>then all CXL allocations must be movable.  If even one allocation on a
>device is not movable, then the device cannot be removed.  ZONE_EXMEM
>feels like a solution in search of a problem

We know the situation. When a CXL DRAM channel is located under ZONE_NORMAL,
a random allocation of a kernel object by calling kmalloc() siblings makes the entire CXL DRAM unremovable.
Also, not all kernel objects can be allocated from ZONE_MOVABLE.

ZONE_EXMEM does not confine a movability attribute(movable or unmovable), rather it allows a calling context can decide it.
In that aspect, it is the same with ZONE_NORMAL but ZONE_EXMEM works for extended memory device.
It does not mean ZONE_EXMEM support both movability and kernel object allocation at the same time.
In case multiple CXL DRAM channels are connected, we think a memory consumer possibly dedicate a channel for movable or unmovable purpose.





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux