From: Juan Quintela <quintela@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
"Leonardo Bras" <leobras@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Peng Tao" <tao.peng@linux.alibaba.com>,
"Mario Casquero" <mcasquer@redhat.com>
Subject: Re: [PATCH v2 1/4] softmmu/physmem: Warn with ram_block_discard_range() on MAP_PRIVATE file mapping
Date: Thu, 06 Jul 2023 15:20:19 +0200 [thread overview]
Message-ID: <87zg496uss.fsf@secure.mitica> (raw)
In-Reply-To: <6cceb935-1830-2984-7529-59d1f8881d34@redhat.com> (David Hildenbrand's message of "Thu, 6 Jul 2023 10:31:53 +0200")
David Hildenbrand <david@redhat.com> wrote:
> On 06.07.23 10:10, Juan Quintela wrote:
>> David Hildenbrand <david@redhat.com> wrote:
>>> ram_block_discard_range() cannot possibly do the right thing in
>>> MAP_PRIVATE file mappings in the general case.
>>>
>>> To achieve the documented semantics, we also have to punch a hole into
>>> the file, possibly messing with other MAP_PRIVATE/MAP_SHARED mappings
>>> of such a file.
>>>
>>> For example, using VM templating -- see commit b17fbbe55cba ("migration:
>>> allow private destination ram with x-ignore-shared") -- in combination with
>>> any mechanism that relies on discarding of RAM is problematic. This
>>> includes:
>>> * Postcopy live migration
>>> * virtio-balloon inflation/deflation or free-page-reporting
>>> * virtio-mem
>>>
>>> So at least warn that there is something possibly dangerous is going on
>>> when using ram_block_discard_range() in these cases.
>>>
>>> Acked-by: Peter Xu <peterx@redhat.com>
>>> Tested-by: Mario Casquero <mcasquer@redhat.com>
>>> Signed-off-by: David Hildenbrand <david@redhat.com>
>> Reviewed-by: Juan Quintela <quintela@redhat.com>
>> (at least we give a warning)
>> But I wonder if we can do better and test that:
>> * Postcopy live migration
>> We can check if we are on postcopy, or put a marker so we know
>> that
>> postcopy can have problems when started.
>> * virtio-balloon inflation/deflation or free-page-reporting
>> We can check if we have ever used virtio-balloon.
>> * virtio-mem
>> We can check if we have used virtio-men
>> I am just wondering if that is even possible?
>
> Now we warn when any of these features actually tries discarding RAM
> (calling ram_block_discard_range()).
>
> As these features trigger discarding of RAM, once we reach this point
> we know that they are getting used. (in comparison to default libvirt
> attaching a virtio-balloon device without anybody ever using it)
>
>
> The alternative would be checking the RAM for compatibility when
> configuring each features. I decided to warn at a central place for
> now, which covers any users.
I think this is the right thing to do.
Patient: It hurts when I do this.
Doctor: Don't do that.
O:-)
Now more seriously, at this point we are very late to do anything
sensible. I think that the normal thing when we are configuring
incompatible things just flag it.
We are following that approach with migration for some time now, and
everybody is happier.
Later, Juan.
next prev parent reply other threads:[~2023-07-06 13:21 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-06 7:56 [PATCH v2 0/4] virtio-mem: Support "x-ignore-shared" migration David Hildenbrand
2023-07-06 7:56 ` [PATCH v2 1/4] softmmu/physmem: Warn with ram_block_discard_range() on MAP_PRIVATE file mapping David Hildenbrand
2023-07-06 8:10 ` Juan Quintela
2023-07-06 8:31 ` David Hildenbrand
2023-07-06 13:20 ` Juan Quintela [this message]
2023-07-06 13:23 ` David Hildenbrand
2023-07-06 8:49 ` David Hildenbrand
2023-10-18 3:02 ` Xiaoyao Li
2023-10-18 7:42 ` David Hildenbrand
2023-10-18 9:02 ` Xiaoyao Li
2023-10-18 9:26 ` David Hildenbrand
2023-10-18 16:27 ` Xiaoyao Li
2023-10-19 8:26 ` David Hildenbrand
2023-10-19 9:26 ` Xiaoyao Li
2023-10-19 9:43 ` David Hildenbrand
2023-07-06 7:56 ` [PATCH v2 2/4] virtio-mem: Skip most of virtio_mem_unplug_all() without plugged memory David Hildenbrand
2023-07-06 8:15 ` Juan Quintela
2023-07-06 8:38 ` David Hildenbrand
2023-07-06 13:27 ` Juan Quintela
2023-07-06 7:56 ` [PATCH v2 3/4] migration/ram: Expose ramblock_is_ignored() as migrate_ram_is_ignored() David Hildenbrand
2023-07-06 8:16 ` Juan Quintela
2023-07-06 7:56 ` [PATCH v2 4/4] virtio-mem: Support "x-ignore-shared" migration David Hildenbrand
2023-07-06 11:06 ` Juan Quintela
2023-07-06 11:27 ` David Hildenbrand
2023-07-06 11:59 ` Juan Quintela
2023-07-06 14:03 ` [PATCH v2 0/4] " Michael S. Tsirkin
2023-07-07 12:21 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zg496uss.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=david@redhat.com \
--cc=leobras@redhat.com \
--cc=mcasquer@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=tao.peng@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).