• D
    mm: balloon: update comment about isolation/migration/compaction · 4d3467e1
    David Hildenbrand 提交于
    Patch series "mm/kdump: allow to exclude pages that are logically
    offline"
    
    Right now, pages inflated as part of a balloon driver will be dumped by
    dump tools like makedumpfile.  While XEN is able to check in the crash
    kernel whether a certain pfn is actuall backed by memory in the
    hypervisor (see xen_oldmem_pfn_is_ram) and optimize this case, dumps of
    virtio-balloon, hv-balloon and VMWare balloon inflated memory will
    essentially result in zero pages getting allocated by the hypervisor and
    the dump getting filled with this data.
    
    The allocation and reading of zero pages can directly be avoided if a
    dumping tool could know which pages only contain stale information not
    to be dumped.
    
    Also for XEN, calling into the kernel and asking the hypervisor if a pfn
    is backed can be avoided if the duming tool would skip such pages right
    from the beginning.
    
    Dumping tools have no idea whether a given page is part of a balloon
    driver and shall not be dumped.  Esp.  PG_reserved cannot be used for
    that purpose as all memory allocated during early boot is also
    PG_reserved, see discussion at [1].  So some other way of indication is
    required and a new page flag is frowned upon.
    
    We have PG_balloon (MAPCOUNT value), which is essentially unused now.  I
    suggest renaming it to something more generic (PG_offline) to mark pages
    as logically offline.  This flag can than e.g.  also be used by
    virtio-mem in the future to mark subsections as offline.  Or by other
    code that wants to put pages logically offline (e.g.  later maybe
    poisoned pages that shall no longer be used).
    
    This series converts PG_balloon to PG_offline, allows dumping tools to
    query the value to detect such pages and marks pages in the hv-balloon
    and XEN balloon properly as PG_offline.  Note that virtio-balloon
    already set pages to PG_balloon (and now PG_offline).
    
    Please note that this is also helpful for a problem we were seeing under
    Hyper-V: Dumping logically offline memory (pages kept fake offline while
    onlining a section via online_page_callback) would under some condicions
    result in a kernel panic when dumping them.
    
    As I don't have access to neither XEN nor Hyper-V nor VMWare
    installations, this was only tested with the virtio-balloon and pages
    were properly skipped when dumping.  I'll also attach the makedumpfile
    patch to this series.
    
    [1] https://lkml.org/lkml/2018/7/20/566
    
    This patch (of 8):
    
    Commit b1123ea6 ("mm: balloon: use general non-lru movable page
    feature") reworked balloon handling to make use of the general non-lru
    movable page feature.  The big comment block in balloon_compaction.h
    contains quite some outdated information.  Let's fix this.
    
    Link: http://lkml.kernel.org/r/20181119101616.8901-2-david@redhat.comSigned-off-by: NDavid Hildenbrand <david@redhat.com>
    Acked-by: NMichael S. Tsirkin <mst@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Alexander Duyck <alexander.h.duyck@linux.intel.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Christian Hansen <chansen3@cisco.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Julien Freche <jfreche@vmware.com>
    Cc: Kairui Song <kasong@redhat.com>
    Cc: Kazuhito Hagio <k-hagio@ab.jp.nec.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Len Brown <len.brown@intel.com>
    Cc: Lianbo Jiang <lijiang@redhat.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Cc: Miles Chen <miles.chen@mediatek.com>
    Cc: Nadav Amit <namit@vmware.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: Omar Sandoval <osandov@fb.com>
    Cc: Pankaj gupta <pagupta@redhat.com>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: Pavel Tatashin <pasha.tatashin@oracle.com>
    Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Stefano Stabellini <sstabellini@kernel.org>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Xavier Deguillard <xdeguillard@vmware.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    4d3467e1
balloon_compaction.h 6.6 KB