From: Markus Armbruster <armbru@redhat.com>
To: David Hildenbrand <david@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Peter Xu" <peterx@redhat.com>,
"Igor Mammedov" <imammedo@redhat.com>,
"Thiner Logoer" <logoerthiner1@163.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Elena Ufimtseva" <elena.ufimtseva@oracle.com>,
"Jagannathan Raman" <jag.raman@oracle.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Ani Sinha" <anisinha@redhat.com>,
"Xiao Guangrong" <xiaoguangrong.eric@gmail.com>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
"Greg Kurz" <groug@kaod.org>, "Eric Blake" <eblake@redhat.com>,
"Eduardo Habkost" <eduardo@habkost.net>
Subject: Re: [PATCH v3 03/11] backends/hostmem-file: Add "rom" property to support VM templating with R/O files
Date: Fri, 01 Sep 2023 14:50:17 +0200 [thread overview]
Message-ID: <87y1hqxdkm.fsf@pond.sub.org> (raw)
In-Reply-To: <20230823153412.832081-4-david@redhat.com> (David Hildenbrand's message of "Wed, 23 Aug 2023 17:34:03 +0200")
David Hildenbrand <david@redhat.com> writes:
> For now, "share=off,readonly=on" would always result in us opening the
> file R/O and mmap'ing the opened file MAP_PRIVATE R/O -- effectively
> turning it into ROM.
>
> Especially for VM templating, "share=off" is a common use case. However,
> that use case is impossible with files that lack write permissions,
> because "share=off,readonly=on" will not give us writable RAM.
>
> The sole user of ROM via memory-backend-file are R/O NVDIMMs, but as we
> have users (Kata Containers) that rely on the existing behavior --
> malicious VMs should not be able to consume COW memory for R/O NVDIMMs --
> we cannot change the semantics of "share=off,readonly=on"
>
> So let's add a new "rom" property with on/off/auto values. "auto" is
> the default and what most people will use: for historical reasons, to not
> change the old semantics, it defaults to the value of the "readonly"
> property.
>
> For VM templating, one can now use:
> -object memory-backend-file,share=off,readonly=on,rom=off,...
>
> But we'll disallow:
> -object memory-backend-file,share=on,readonly=on,rom=off,...
> because we would otherwise get an error when trying to mmap the R/O file
> shared and writable. An explicit error message is cleaner.
>
> We will also disallow for now:
> -object memory-backend-file,share=off,readonly=off,rom=on,...
> -object memory-backend-file,share=on,readonly=off,rom=on,...
> It's not harmful, but also not really required for now.
>
> Alternatives that were abandoned:
> * Make "unarmed=on" for the NVDIMM set the memory region container
> readonly. We would still see a change of ROM->RAM and possibly run
> into memslot limits with vhost-user. Further, there might be use cases
> for "unarmed=on" that should still allow writing to that memory
> (temporary files, system RAM, ...).
> * Add a new "readonly=on/off/auto" parameter for NVDIMMs. Similar issues
> as with "unarmed=on".
> * Make "readonly" consume "on/off/file" instead of being a 'bool' type.
> This would slightly changes the behavior of the "readonly" parameter:
> values like true/false (as accepted by a 'bool'type) would no longer be
> accepted.
>
> Signed-off-by: David Hildenbrand <david@redhat.com>
QAPI schema
Acked-by: Markus Armbruster <armbru@redhat.com>
next prev parent reply other threads:[~2023-09-01 12:51 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-23 15:34 [PATCH v3 00/11] memory-backend-file related improvements and VM templating support David Hildenbrand
2023-08-23 15:34 ` [PATCH v3 01/11] nvdimm: Reject writing label data to ROM instead of crashing QEMU David Hildenbrand
2023-08-23 15:34 ` [PATCH v3 02/11] softmmu/physmem: Distinguish between file access mode and mmap protection David Hildenbrand
2023-08-23 20:21 ` Peter Xu
2023-08-23 15:34 ` [PATCH v3 03/11] backends/hostmem-file: Add "rom" property to support VM templating with R/O files David Hildenbrand
2023-09-01 12:50 ` Markus Armbruster [this message]
2023-08-23 15:34 ` [PATCH v3 04/11] softmmu/physmem: Remap with proper protection in qemu_ram_remap() David Hildenbrand
2023-08-23 20:21 ` Peter Xu
2023-08-29 11:18 ` Philippe Mathieu-Daudé
2023-08-23 15:34 ` [PATCH v3 05/11] softmmu/physmem: Bail out early in ram_block_discard_range() with readonly files David Hildenbrand
2023-08-23 20:21 ` Peter Xu
2023-08-23 15:34 ` [PATCH v3 06/11] softmmu/physmem: Fail creation of new files in file_ram_open() with readonly=true David Hildenbrand
2023-08-23 20:22 ` Peter Xu
2023-08-23 15:34 ` [PATCH v3 07/11] softmmu/physmem: Never return directories from file_ram_open() David Hildenbrand
2023-08-23 20:22 ` Peter Xu
2023-08-23 15:34 ` [PATCH v3 08/11] docs: Don't mention "-mem-path" in multi-process.rst David Hildenbrand
2023-08-23 15:34 ` [PATCH v3 09/11] docs: Start documenting VM templating David Hildenbrand
2023-08-29 11:25 ` Philippe Mathieu-Daudé
2023-08-23 15:34 ` [PATCH v3 10/11] softmmu/physmem: Hint that "readonly=on, rom=off" exists when opening file R/W for private mapping fails David Hildenbrand
2023-08-23 15:34 ` [PATCH v3 11/11] machine: Improve error message when using default RAM backend id David Hildenbrand
2023-08-25 6:57 ` ThinerLogoer
2023-08-25 7:36 ` [PATCH " David Hildenbrand
2023-08-25 9:10 ` Markus Armbruster
2023-08-25 9:13 ` David Hildenbrand
2023-08-25 9:56 ` Markus Armbruster
2023-08-25 9:59 ` David Hildenbrand
2023-08-25 10:10 ` David Hildenbrand
2023-08-29 11:29 ` Philippe Mathieu-Daudé
2023-09-01 12:52 ` Markus Armbruster
2023-08-29 8:31 ` Mario Casquero
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=87y1hqxdkm.fsf@pond.sub.org \
--to=armbru@redhat.com \
--cc=anisinha@redhat.com \
--cc=berrange@redhat.com \
--cc=danielhb413@gmail.com \
--cc=david@redhat.com \
--cc=eblake@redhat.com \
--cc=eduardo@habkost.net \
--cc=elena.ufimtseva@oracle.com \
--cc=groug@kaod.org \
--cc=imammedo@redhat.com \
--cc=jag.raman@oracle.com \
--cc=logoerthiner1@163.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=stefanha@redhat.com \
--cc=xiaoguangrong.eric@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.