Re: [PATCH v25 1/2 RESEND] mm: support reporting free page blocks

From: Wei Wang
Date: Thu Jan 25 2018 - 21:09:11 EST


On 01/26/2018 06:41 AM, Andrew Morton wrote:
On Thu, 25 Jan 2018 17:38:27 +0800 Wei Wang <wei.w.wang@xxxxxxxxx> wrote:

This patch adds support to walk through the free page blocks in the
system and report them via a callback function. Some page blocks may
leave the free list after zone->lock is released, so it is the caller's
responsibility to either detect or prevent the use of such pages.

One use example of this patch is to accelerate live migration by skipping
the transfer of free pages reported from the guest. A popular method used
by the hypervisor to track which part of memory is written during live
migration is to write-protect all the guest memory. So, those pages that
are reported as free pages but are written after the report function
returns will be captured by the hypervisor, and they will be added to the
next round of memory transfer.
It would be useful if we had some quantitative testing results, so we
can see the real-world benefits from this change?


Sure. Thanks for the reminder, I think I'll also attach this to the cover letter:

Without this feature, locally live migrating an 8G idle guest takes ~2286 ms. With this featrue, it takes ~260 ms, which reduces the migration time to ~11%.

Idle guest means a guest which doesn't run any specific workloads after boots. The improvement depends on how much free memory the guest has, idle guest is a good case to show the improvement. From the optimization point of view, having something is better than nothing, IMHO. If the guest has less free memory, the improvement will be less, but still better than no improvement.

Best,
Wei