• David Hildenbrand's avatar
    x86/xen: update xen_oldmem_pfn_is_ram() documentation · 434b90f3
    David Hildenbrand authored
    After removing /dev/kmem, sanitizing /proc/kcore and handling /dev/mem,
    this series tackles the last sane way how a VM could accidentially
    access logically unplugged memory managed by a virtio-mem device:
    /proc/vmcore
    
    When dumping memory via "makedumpfile", PG_offline pages, used by
    virtio-mem to flag logically unplugged memory, are already properly
    excluded; however, especially when accessing/copying /proc/vmcore "the
    usual way", we can still end up reading logically unplugged memory part
    of a virtio-mem device.
    
    Patch #1-#3 are cleanups.  Patch #4 extends the existing
    oldmem_pfn_is_ram mechanism.  Patch #5-#7 are virtio-mem refactorings
    for patch #8, which implements the virtio-mem logic to query the state
    of device blocks.
    
    Patch #8:
     "Although virtio-mem currently supports reading unplugged memory in the
      hypervisor, this will change in the future, indicated to the device
      via a new feature flag. We similarly sanitized /proc/kcore access
      recently.
      [...]
      Distributions that support virtio-mem+kdump have to make sure that the
      virtio_mem module will be part of the kdump kernel or the kdump
      initrd; dracut was recently [2] extended to include virtio-mem in the
      generated initrd. As long as no special kdump kernels are used, this
      will automatically make sure that virtio-mem will be around in the
      kdump initrd and sanitize /proc/vmcore access -- with dracut"
    
    This is the last remaining bit to support
    VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE [3] in the Linux implementation of
    virtio-mem.
    
    Note: this is best-effort.  We'll never be able to control what runs
    inside the second kernel, really, but we also don't have to care: we
    only care about sane setups where we don't want our VM getting zapped
    once we touch the wrong memory location while dumping.  While we usually
    expect sane setups to use "makedumfile", nothing really speaks against
    just copying /proc/vmcore, especially in environments where HWpoisioning
    isn't typically expected.  Also, we really don't want to put all our
    trust completely on the memmap, so sanitizing also makes sense when just
    using "makedumpfile".
    
    [1] https://lkml.kernel.org/r/20210526093041.8800-1-david@redhat.com
    [2] https://github.com/dracutdevs/dracut/pull/1157
    [3] https://lists.oasis-open.org/archives/virtio-comment/202109/msg00021.html
    
    This patch (of 9):
    
    The callback is only used for the vmcore nowadays.
    
    Link: https://lkml.kernel.org/r/20211005121430.30136-1-david@redhat.com
    Link: https://lkml.kernel.org/r/20211005121430.30136-2-david@redhat.comSigned-off-by: default avatarDavid Hildenbrand <david@redhat.com>
    Reviewed-by: default avatarBoris Ostrovsky <boris.ostrvsky@oracle.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Stefano Stabellini <sstabellini@kernel.org>
    Cc: "Michael S. Tsirkin" <mst@redhat.com>
    Cc: Jason Wang <jasowang@redhat.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Oscar Salvador <osalvador@suse.de>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    434b90f3
mmu_hvm.c 1.56 KB