[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 0/2] virtio-mem: Handle preallocation with migration
From: |
Michal Prívozník |
Subject: |
Re: [PATCH v1 0/2] virtio-mem: Handle preallocation with migration |
Date: |
Wed, 19 Jan 2022 14:26:43 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 1/18/22 16:07, David Hildenbrand wrote:
> While playing with migration of virtio-mem with an ordinary file backing,
> I realized that migration and prealloc doesn't currently work as expected
> for virtio-mem, especially when migrating zeropages or skipping migration
> of some pages.
>
> In contrast to ordinary memory backend preallocation, virtio-mem
> preallocates memory before plugging blocks to the guest. Consequently,
> when migrating we are not actually preallocating on the destination but
> "only" migrate pages. When migrating the zeropage, we might not end up
> allocating actual backend memory.
>
> Postcopy needs some extra care, and I realized that prealloc+postcopy is
> shaky in general. Let's at least try to mimic what ordinary
> prealloc+postcopy does: temporarily allocate the memory, discard it, and
> cross fingers that we'll still have sufficient memory when postcopy
> actually tries placing pages.
>
> For postcopy to work with prealloc=on, we need a matching "requested-size"
> on source and destination, meaning we have to start QEMU on the destination
> with the current "requested-size" on the source. Only that way, we can try
> temporarily allocating the "requested-size" to see if there is a
> fundamental issue. If we detect a mismatch, we don't start postcopy.
>
> Cc: Juan Quintela <quintela@redhat.com>
> Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Michal Privoznik <mprivozn@redhat.com>
>
> David Hildenbrand (2):
> virtio-mem: Warn if a memory backend with "prealloc=on" is used
> virtio-mem: Handle preallocation with migration
>
> hw/virtio/virtio-mem.c | 143 +++++++++++++++++++++++++++++++++
> include/hw/virtio/virtio-mem.h | 6 ++
> 2 files changed, 149 insertions(+)
>
I don't feel confident to review, but I feel confident enough to test:
Tested-by: Michal Privoznik <mprivozn@redhat.com>
Michal