• P
    mm/gup: do not migrate zero page · 9afaf30f
    Pavel Tatashin 提交于
    On some platforms ZERO_PAGE(0) might end-up in a movable zone.  Do not
    migrate zero page in gup during longterm pinning as migration of zero page
    is not allowed.
    
    For example, in x86 QEMU with 16G of memory and kernelcore=5G parameter, I
    see the following:
    
    Boot#1: zero_pfn  0x48a8d zero_pfn zone: ZONE_DMA32
    Boot#2: zero_pfn 0x20168d zero_pfn zone: ZONE_MOVABLE
    
    On x86, empty_zero_page is declared in .bss and depending on the loader
    may end up in different physical locations during boots.
    
    Also, move is_zero_pfn() my_zero_pfn() functions under CONFIG_MMU, because
    zero_pfn that they are using is declared in memory.c which is compiled
    with CONFIG_MMU.
    
    Link: https://lkml.kernel.org/r/20210215161349.246722-9-pasha.tatashin@soleen.comSigned-off-by: NPavel Tatashin <pasha.tatashin@soleen.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Ira Weiny <ira.weiny@intel.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Jason Gunthorpe <jgg@ziepe.ca>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Tyler Hicks <tyhicks@linux.microsoft.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    9afaf30f
mm.h 101.4 KB