File 0147-Avoid-sending-whole-huge-pages-duri.patch of Package qemu.13117
From 988ef7dc1bd4109608c7c9e7186f542529df5a72 Mon Sep 17 00:00:00 2001
From: Lin Ma <lma@suse.com>
Date: Mon, 12 Aug 2019 17:03:20 +0800
Subject: [PATCH] Avoid sending whole huge pages during precopy migration
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 021d583b9b..537b77a28d 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);