On Mon 07-12-20 16:12:50, Joonsoo Kim wrote: > On Fri, Dec 04, 2020 at 12:50:56PM -0500, Pavel Tatashin wrote: > > > > Yes, this indeed could be a problem for some configurations. I will > > > > add your comment to the commit log of one of the patches. > > > > > > It sounds like there is some inherent tension here, breaking THP's > > > when doing pin_user_pages() is a really nasty thing to do. DMA > > > benefits greatly from THP. > > > > > > I know nothing about ZONE_MOVABLE, is this auto-setup or an admin > > > option? If the result of this patch is standard systems can no longer > > > pin > 80% of their memory I have some regression concerns.. > > > > ZONE_MOVABLE can be configured via kernel parameter, or when memory > > nodes are onlined after hot-add; so this is something that admins > > configure. ZONE_MOVABLE is designed to gurantee memory hot-plug > > Just note, the origin of ZONE_MOVABLE is to provide availability of > huge page, especially, hugetlb page. AFAIK, not guarantee memory > hot-plug. See following commit that introduces the ZONE_MOVABLE. > > 2a1e274 Create the ZONE_MOVABLE zone > > > functionality, and not availability of THP, however, I did not know > > about the use case where some admins might configure ZONE_MOVABLE to > > The usecase is lightly mentioned in previous discussion. > > http://lkml.kernel.org/r/alpine.DEB.2.23.453.2011221300100.2830030@xxxxxxxxxxxxxxxxxxxxxxxxx > > Anyway, I agree with your other arguments and this patchset. Yes, historically the original motivation for the movable zone was to help creating large pages via compaction. I also do remember Mel not being particularly happy about that. The thing is that the movability constrain is just too strict for this usecases because the movable zone, especially a lot of it, might be causing similar to lowmem/highmem problems very well known from 32b world. So an admin had to be always very careful when configuring to not cause zone pressure problems. Later on, with a higher demand on the memory hotplug - especially the hotremove usecases - it has become clear that the only reliable way for the memory offlining is to rule out any unmovable memory out of the way and that is why a rather strong properly of movable zone was relied on. In the end we are in two rather different requirements here. One for optimization and one for correctness. In this case I would much rather focus on the correctness aspect. -- Michal Hocko SUSE Labs