File 0147-Avoid-sending-whole-huge-pages-duri.patch of Package qemu.18973

From: Lin Ma <lma@suse.com>
Date: Mon, 12 Aug 2019 17:03:20 +0800
Subject: Avoid sending whole huge pages during precopy migration

Include-If: %if 0%{?suse_version} == 1315

To postcopy migration, The RAM save code uses the host page size associated
with the RAM Block.

But to precopy migration, We uses the host page size while sending pages.

[LM: BSC#1141043 BSC#1127077]
Signed-off-by: Lin Ma <lma@suse.com>
---
 migration/ram.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/migration/ram.c b/migration/ram.c
index 021d583b9bdf89882eea9341c54a..537b77a28d7508c0cd6084065cc1 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1489,8 +1489,12 @@ static int ram_save_host_page(RAMState *rs, PageSearchStatus *pss,
                               bool last_stage)
 {
     int tmppages, pages = 0;
-    size_t pagesize_bits =
-        qemu_ram_pagesize(pss->block) >> TARGET_PAGE_BITS;
+    size_t pagesize_bits;
+
+    if (migrate_postcopy_ram())
+        pagesize_bits = qemu_ram_pagesize(pss->block) >> TARGET_PAGE_BITS;
+    else
+        pagesize_bits = qemu_host_page_size >> TARGET_PAGE_BITS;
 
     do {
         tmppages = ram_save_target_page(rs, pss, last_stage);
openSUSE Build Service is sponsored by