>On Wed, Apr 12, 2023 at 08:10:33PM +0900, Kyungsan Kim wrote: >> Pinning and plubbability is mutual exclusive so it can not happen at the same time. >> What we argue is ZONE_EXMEM does not "confine movability". an allocation context can determine the movability attribute. >> Even one unmovable allocation will make the entire CXL DRAM unpluggable. >> When you see ZONE_EXMEM just on movable/unmoable aspect, we think it is the same with ZONE_NORMAL, >> but ZONE_EXMEM works on an extended memory, as of now CXL DRAM. >> >> Then why ZONE_EXMEM is, ZONE_EXMEM considers not only the pluggability aspect, but CXL identifier for user/kenelspace API, >> the abstraction of multiple CXL DRAM channels, and zone unit algorithm for CXL HW characteristics. >> The last one is potential at the moment, though. >> >> As mentioned in ZONE_EXMEM thread, we are preparing slides to explain experiences and proposals. >> It it not final version now[1]. >> [1] https://github.com/OpenMPDK/SMDK/wiki/93.-%5BLSF-MM-BPF-TOPIC%5D-SMDK-inspired-MM-changes-for-CXL > >The problem is that you're starting out with a solution. Tell us what >your requirements are, at a really high level, then walk us through >why ZONE_EXMEM is the best way to satisfy those requirements. Thank you for your advice. It makes sense. We will restate requirements(usecases and issues) rather than our solution aspect. A sympathy about the requirements should come first at the moment. Hope we gradually reach up a consensus. >Also, those slides are terrible. Even at 200% zoom, the text is tiny. > >There is no MAP_NORMAL argument to mmap(), there are no GFP flags to >sys_mmap() and calling mmap() does not typically cause alloc_page() to >be called. I'm not sure that putting your thoughts onto slides is >making them any better organised. I'm sorry for your inconvenience. Explaining the version of document, the 1st slide shows SMDK kernel, not vanilla kernel. Especially, the slide is geared to highlight the flow of the new user/kernel API to implicitly/explicitly access DIMM DRAM or CXL DRAM to help understanding at previous discussion context. We added MAP_NORMAL/MAP_EXMEM on mmap()/sys_mmap(), GFP_EXMEM/GFP_NORMAL on alloc_pages(). If you mean COW, please assume the mmap() is called with MAP_POPULATE flag. We wanted to draw it simple to highlight the purpose. The document is not final version, we will apply your comment while preparing.