On Thu, Dec 3, 2020 at 3:57 AM Michal Hocko <mhocko@xxxxxxxx> wrote: > > On Wed 02-12-20 00:23:28, Pavel Tatashin wrote: > > PF_MEMALLOC_NOCMA is used for longterm pinning and has an effect of > > clearing _GFP_MOVABLE or prohibiting allocations from ZONE_MOVABLE. > > This is not precise. You are mixing the implementation and the intention > here. I would say "PF_MEMALLOC_NOCMA is used ot guarantee that the > allocator will not return pages that might belong to CMA region. This is > currently used for long term gup to make sure that such pins are not > going to be done on any CMA pages." > > > We will prohibit allocating any pages that are getting > > longterm pinned from ZONE_MOVABLE, and we would want to unify and re-use > > this flag. So, rename it to generic PF_MEMALLOC_NOMOVABLE. > > Also re-name: > > memalloc_nocma_save()/memalloc_nocma_restore > > to > > memalloc_nomovable_save()/memalloc_nomovable_restore() > > and make the new functions common. > > This is hard to parse for me. I would go with something like: > " > When PF_MEMALLOC_NOCMA has been introduced we haven't realized that it > is focusing on CMA pages too much and that there is larger class of > pages that need the same treatment. MOVABLE zone cannot contain > any long term pins as well so it makes sense to reuse and redefine this > flag for that usecase as well. Rename the flag to PF_MEMALLOC_NOMOVABLE > which defines an allocation context which can only get pages suitable > for long-term pins. > " I will address the above with your suggested wording. > > Btw. the naming is hard but PF_MEMALLOC_NOMOVABLE is a bit misnomer. CMA > pages are not implicitly movable. So in fact we do care more about > pinning than movability. PF_MEMALLOC_PIN or something similar would be > better fit for the overal intention. Sounds good, I will rename with PF_MEMALLOC_PIN > > Other than that looks good to me. Thanks! Thank you, Pasha