On Thu, Jul 29, 2021 at 02:14:41PM +0200, David Hildenbrand wrote:
On 24.07.21 00:10, Peter Xu wrote:
On Fri, Jul 23, 2021 at 09:01:42PM +0200, David Hildenbrand wrote:
It can happen in corner cases and is valid: with the current virtio-mem
spec, guests are allowed to read unplugged memory. This will, for example,
happen on older Linux guests when reading /proc/kcore or (with even older
guests) when dumping guest memory via kdump. These corner cases were the
main reason why the spec allows for it -- until we have guests properly
adjusted such that it won't happen even in corner cases.
A future feature bit will disallow it for the guest: required for supporting
shmem/hugetlb cleanly. With that in place, I agree that we would want to
warn in this case!
OK that makes sense; with the page_size change, feel free to add:
I just realized that relying on the page_size would be wrong.
We migrate TARGET_PAGE_SIZE chunks and the offset might not be page_size
aligned. So if we were to replace TARGET_PAGE_SIZE by rb->page_size, we
might accidentally cover a "too big" range.
I'm wondering whether we should make the offset page size aligned instead. For
example, note that postcopy_place_page_zero() should only take page_size
aligned host addr or UFFDIO_COPY could fail (hugetlb doesn't support
UFFDIO_ZEROPAGE yet).
Btw, does virtio-mem supports hugetlbfs now? When with it, the smallest unit
to plug/unplug would the huge page size (e.g., for 1g huge page, sounds not
helpful to unplug 2M memory), am I right?