On Thu, Dec 3, 2020 at 11:03 PM Joonsoo Kim <js1304@xxxxxxxxx> wrote: > > Hello, > > On Wed, Dec 02, 2020 at 12:23:24AM -0500, Pavel Tatashin wrote: > > When page is pinned it cannot be moved and its physical address stays > > the same until pages is unpinned. > > > > This is useful functionality to allows userland to implementation DMA > > access. For example, it is used by vfio in vfio_pin_pages(). > > > > However, this functionality breaks memory hotplug/hotremove assumptions > > that pages in ZONE_MOVABLE can always be migrated. > > > > This patch series fixes this issue by forcing new allocations during > > page pinning to omit ZONE_MOVABLE, and also to migrate any existing > > pages from ZONE_MOVABLE during pinning. > > I love what this patchset does, but, at least, it's better to consider > the side-effect of this patchset and inform it in somewhere. IIUC, > ZONE_MOVABLE exists for two purposes. > > 1) increasing availability of THP > 2) memory hot-unplug > > Potential issue would come from the case 1). They uses ZONE_MOVABLE > for THP availability and hard guarantee for migration isn't required > until now. So, there would be a system with following congifuration. > > - memory layout: ZONE_NORMAL-512MB, ZONE_MOVABLE-512MB > - memory usage: unmovable-256MB, movable pinned-256MB, movable > unpinned-512MB > > With this patchset, movable pinned should be placed in ZONE_NORMAL so > 512MB is required for ZONE_NORMAL. ZONE_NORMAL would be exhausted and > system performance would be highly afftect according to memory usage > pattern. > > I'm not sure whether such configuration exists or not, but, at least, > it's better to write down this risk on commit message or something > else. Yes, this indeed could be a problem for some configurations. I will add your comment to the commit log of one of the patches. Thank you, Pasha