Messages in this thread | | | Date | Wed, 19 Jul 2017 20:01:18 +0800 | From | Wei Wang <> | Subject | Re: [PATCH v12 6/8] mm: support reporting free page blocks |
| |
On 07/19/2017 04:13 PM, Michal Hocko wrote: > On Tue 18-07-17 10:12:14, Wei Wang wrote: > [...] >> Probably I should have included the introduction of the usages in >> the log. Hope it is not too later to explain here: > Yes this should have been described in the cover.
OK, I will do it in the next version.
> >> Live migration needs to transfer the VM's memory from the source >> machine to the destination round by round. For the 1st round, all the VM's >> memory is transferred. From the 2nd round, only the pieces of memory >> that were written by the guest (after the 1st round) are transferred. One >> method that is popularly used by the hypervisor to track which part of >> memory is written is to write-protect all the guest memory. >> >> This patch enables the optimization of the 1st round memory transfer - >> the hypervisor can skip the transfer of guest unused pages in the 1st round. > All you should need is the check for the page reference count, no? I > assume you do some sort of pfn walk and so you should be able to get an > access to the struct page.
Not necessarily - the guest struct page is not seen by the hypervisor. The hypervisor only gets those guest pfns which are hinted as unused. From the hypervisor (host) point of view, a guest physical address corresponds to a virtual address of a host process. So, once the hypervisor knows a guest physical page is unsued, it knows that the corresponding virtual memory of the process doesn't need to be transferred in the 1st round.
Best, Wei
| |