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? -- Peter Xu