Commit 6cc26d77 authored by David Hildenbrand's avatar David Hildenbrand Committed by Linus Torvalds
Browse files

virtio-mem: use page_offline_(start|end) when setting PageOffline()

Let's properly use page_offline_(start|end) to synchronize setting
PageOffline(), so we won't have valid page access to unplugged memory
regions from /proc/kcore.

Existing balloon implementations usually allow reading inflated memory;
doing so might result in unnecessary overhead in the hypervisor, which is
currently the case with virtio-mem.

For future virtio-mem use cases, it will be different when using shmem,
huge pages, !anonymous private mappings, ...  as backing storage for a VM.
virtio-mem unplugged memory must no longer be accessed and access might
result in undefined behavior.  There will be a virtio spec extension to
document this change, including a new feature flag indicating the changed
behavior.  We really don't want to race against PFN walkers reading random
page content.


Signed-off-by: default avatarDavid Hildenbrand <>
Acked-by: default avatarMichael S. Tsirkin <>
Acked-by: default avatarMike Rapoport <>
Reviewed-by: default avatarOscar Salvador <>
Cc: Aili Yao <>
Cc: Alexey Dobriyan <>
Cc: Alex Shi <>
Cc: Haiyang Zhang <>
Cc: Jason Wang <>
Cc: Jiri Bohac <>
Cc: "K. Y. Srinivasan" <>
Cc: "Matthew Wilcox (Oracle)" <>
Cc: Michal Hocko <>
Cc: Mike Kravetz <>
Cc: Naoya Horiguchi <>
Cc: Roman Gushchin <>
Cc: Stephen Hemminger <>
Cc: Steven Price <>
Cc: Wei Liu <>
Signed-off-by: default avatarAndrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent 82840451
......@@ -1065,6 +1065,7 @@ static int virtio_mem_memory_notifier_cb(struct notifier_block *nb,
static void virtio_mem_set_fake_offline(unsigned long pfn,
unsigned long nr_pages, bool onlined)
for (; nr_pages--; pfn++) {
struct page *page = pfn_to_page(pfn);
......@@ -1075,6 +1076,7 @@ static void virtio_mem_set_fake_offline(unsigned long pfn,
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment