* [PATCH] qapi: clarify that the default is backend dependent
@ 2024-05-23 13:33 Stefano Garzarella
2024-06-03 9:34 ` Markus Armbruster
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Garzarella @ 2024-05-23 13:33 UTC (permalink / raw)
To: qemu-devel
Cc: Eric Blake, Daniel P. Berrangé, Markus Armbruster,
Eduardo Habkost, Paolo Bonzini, Stefano Garzarella
The default value of the @share option of the @MemoryBackendProperties
eally depends on the backend type, so let's document it explicitly and
add the default value where it was missing.
Cc: David Hildenbrand <david@redhat.com>
Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
---
I followed how we document @share in memfd and epc, but I don't like it
very much, I just can't think of a better way, so if you have a suggestion
I can change them in all of them.
Thanks,
Stefano
---
qapi/qom.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/qapi/qom.json b/qapi/qom.json
index 38dde6d785..8463bd32a2 100644
--- a/qapi/qom.json
+++ b/qapi/qom.json
@@ -600,7 +600,7 @@
# preallocation threads (default: none) (since 7.2)
#
# @share: if false, the memory is private to QEMU; if true, it is
-# shared (default: false)
+# shared (default depends on the backend type)
#
# @reserve: if true, reserve swap space (or huge pages) if applicable
# (default: true) (since 6.1)
@@ -639,6 +639,8 @@
#
# Properties for memory-backend-file objects.
#
+# The @share boolean option is false by default with file.
+#
# @align: the base address alignment when QEMU mmap(2)s @mem-path.
# Some backend stores specified by @mem-path require an alignment
# different than the default one used by QEMU, e.g. the device DAX
--
2.45.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] qapi: clarify that the default is backend dependent
2024-05-23 13:33 [PATCH] qapi: clarify that the default is backend dependent Stefano Garzarella
@ 2024-06-03 9:34 ` Markus Armbruster
2024-06-04 13:21 ` Stefano Garzarella
0 siblings, 1 reply; 5+ messages in thread
From: Markus Armbruster @ 2024-06-03 9:34 UTC (permalink / raw)
To: Stefano Garzarella
Cc: qemu-devel, Eric Blake, Daniel P. Berrangé, Eduardo Habkost,
Paolo Bonzini
Stefano Garzarella <sgarzare@redhat.com> writes:
> The default value of the @share option of the @MemoryBackendProperties
> eally depends on the backend type, so let's document it explicitly and
> add the default value where it was missing.
>
> Cc: David Hildenbrand <david@redhat.com>
> Suggested-by: Markus Armbruster <armbru@redhat.com>
> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
> ---
> I followed how we document @share in memfd and epc, but I don't like it
> very much, I just can't think of a better way, so if you have a suggestion
> I can change them in all of them.
>
> Thanks,
> Stefano
> ---
> qapi/qom.json | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/qapi/qom.json b/qapi/qom.json
> index 38dde6d785..8463bd32a2 100644
> --- a/qapi/qom.json
> +++ b/qapi/qom.json
> @@ -600,7 +600,7 @@
##
# @MemoryBackendProperties:
#
# Properties for objects of classes derived from memory-backend.
#
[...]
> # preallocation threads (default: none) (since 7.2)
> #
> # @share: if false, the memory is private to QEMU; if true, it is
> -# shared (default: false)
> +# shared (default depends on the backend type)
Note for later: the backends are the branches of ObjectOptions that use
MemoryBackendProperties as branch type or as base of their branch type.
These are
memory-backend-epc (uses MemoryBackendEpcProperties)
memory-backend-file (uses MemoryBackendFileProperties)
memory-backend-memfd (uses MemoryBackendMemfdProperties)
memory-backend-ram (uses MemoryBackendProperties)
> #
> # @reserve: if true, reserve swap space (or huge pages) if applicable
> # (default: true) (since 6.1)
> @@ -639,6 +639,8 @@
> #
> # Properties for memory-backend-file objects.
> #
> +# The @share boolean option is false by default with file.
> +#
> # @align: the base address alignment when QEMU mmap(2)s @mem-path.
> # Some backend stores specified by @mem-path require an alignment
> # different than the default one used by QEMU, e.g. the device DAX
As stated in the commit message, this matches existing documentation in
memory-backend-epc
# The @share boolean option is true by default with epc
and memory-backend-memfd
# The @share boolean option is true by default with memfd.
I think "with FOO" could be clearer. Perhaps something like "with
backend 'memory-backend-FOO'.
However, even with your patch, we're still missing memory-backend-ram.
I can see two solutions:
1. Create MemoryBackendRamProperties just to have a place for
documenting @share's default.
2. Document @share's default right where it's defined, roughly like
this:
# @share: if false, the memory is private to QEMU; if true, it is
# shared (default false for backends memory-backend-file and
# memory-backend-ram, true for backends memory-backend-epc and
# memory-backend-memfd)
CON: we need to remember to update this whenever we add another backend.
PRO: generated documentation is better, in my opinion.
Thoughts?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] qapi: clarify that the default is backend dependent
2024-06-03 9:34 ` Markus Armbruster
@ 2024-06-04 13:21 ` Stefano Garzarella
2024-06-04 14:58 ` Markus Armbruster
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Garzarella @ 2024-06-04 13:21 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, Eric Blake, Daniel P. Berrangé, Eduardo Habkost,
Paolo Bonzini
On Mon, Jun 03, 2024 at 11:34:10AM GMT, Markus Armbruster wrote:
>Stefano Garzarella <sgarzare@redhat.com> writes:
>
>> The default value of the @share option of the @MemoryBackendProperties
>> eally depends on the backend type, so let's document it explicitly and
>> add the default value where it was missing.
>>
>> Cc: David Hildenbrand <david@redhat.com>
>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
>> ---
>> I followed how we document @share in memfd and epc, but I don't like it
>> very much, I just can't think of a better way, so if you have a suggestion
>> I can change them in all of them.
>>
>> Thanks,
>> Stefano
>> ---
>> qapi/qom.json | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/qapi/qom.json b/qapi/qom.json
>> index 38dde6d785..8463bd32a2 100644
>> --- a/qapi/qom.json
>> +++ b/qapi/qom.json
>> @@ -600,7 +600,7 @@
> ##
> # @MemoryBackendProperties:
> #
> # Properties for objects of classes derived from memory-backend.
> #
>
>[...]
>
>> # preallocation threads (default: none) (since 7.2)
>> #
>> # @share: if false, the memory is private to QEMU; if true, it is
>> -# shared (default: false)
>> +# shared (default depends on the backend type)
>
>Note for later: the backends are the branches of ObjectOptions that use
>MemoryBackendProperties as branch type or as base of their branch type.
>These are
>
> memory-backend-epc (uses MemoryBackendEpcProperties)
> memory-backend-file (uses MemoryBackendFileProperties)
> memory-backend-memfd (uses MemoryBackendMemfdProperties)
> memory-backend-ram (uses MemoryBackendProperties)
>
>> #
>> # @reserve: if true, reserve swap space (or huge pages) if applicable
>> # (default: true) (since 6.1)
>> @@ -639,6 +639,8 @@
>> #
>> # Properties for memory-backend-file objects.
>> #
>> +# The @share boolean option is false by default with file.
>> +#
>> # @align: the base address alignment when QEMU mmap(2)s @mem-path.
>> # Some backend stores specified by @mem-path require an alignment
>> # different than the default one used by QEMU, e.g. the device DAX
>
>As stated in the commit message, this matches existing documentation in
>memory-backend-epc
>
> # The @share boolean option is true by default with epc
>
>and memory-backend-memfd
>
> # The @share boolean option is true by default with memfd.
>
>I think "with FOO" could be clearer. Perhaps something like "with
>backend 'memory-backend-FOO'.
Ack, I'll do.
>
>However, even with your patch, we're still missing memory-backend-ram.
>I can see two solutions:
>
>1. Create MemoryBackendRamProperties just to have a place for
>documenting @share's default.
>
>2. Document @share's default right where it's defined, roughly like
>this:
>
> # @share: if false, the memory is private to QEMU; if true, it is
> # shared (default false for backends memory-backend-file and
> # memory-backend-ram, true for backends memory-backend-epc and
> # memory-backend-memfd)
>
>CON: we need to remember to update this whenever we add another backend.
>
>PRO: generated documentation is better, in my opinion.
>
>Thoughts?
>
Maybe option 2 is slightly better and it's also clearer how to document
the default for other backends.
When I added a new backend, it was not clear to me how to define the
default for an inherited parameter.
I would go with 2 if you agree.
Thanks,
Stefano
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] qapi: clarify that the default is backend dependent
2024-06-04 13:21 ` Stefano Garzarella
@ 2024-06-04 14:58 ` Markus Armbruster
2024-06-06 14:06 ` Stefano Garzarella
0 siblings, 1 reply; 5+ messages in thread
From: Markus Armbruster @ 2024-06-04 14:58 UTC (permalink / raw)
To: Stefano Garzarella
Cc: Markus Armbruster, qemu-devel, Eric Blake,
Daniel P. Berrangé, Eduardo Habkost, Paolo Bonzini
Stefano Garzarella <sgarzare@redhat.com> writes:
> On Mon, Jun 03, 2024 at 11:34:10AM GMT, Markus Armbruster wrote:
>>Stefano Garzarella <sgarzare@redhat.com> writes:
>>
>>> The default value of the @share option of the @MemoryBackendProperties
>>> eally depends on the backend type, so let's document it explicitly and
>>> add the default value where it was missing.
>>>
>>> Cc: David Hildenbrand <david@redhat.com>
>>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>>> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
>>> ---
>>> I followed how we document @share in memfd and epc, but I don't like it
>>> very much, I just can't think of a better way, so if you have a suggestion
>>> I can change them in all of them.
>>>
>>> Thanks,
>>> Stefano
>>> ---
>>> qapi/qom.json | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/qapi/qom.json b/qapi/qom.json
>>> index 38dde6d785..8463bd32a2 100644
>>> --- a/qapi/qom.json
>>> +++ b/qapi/qom.json
>>> @@ -600,7 +600,7 @@
>> ##
>> # @MemoryBackendProperties:
>> #
>> # Properties for objects of classes derived from memory-backend.
>> #
>>
>>[...]
>>
>>> # preallocation threads (default: none) (since 7.2)
>>> #
>>> # @share: if false, the memory is private to QEMU; if true, it is
>>> -# shared (default: false)
>>> +# shared (default depends on the backend type)
>>
>>Note for later: the backends are the branches of ObjectOptions that use
>>MemoryBackendProperties as branch type or as base of their branch type.
>>These are
>>
>> memory-backend-epc (uses MemoryBackendEpcProperties)
>> memory-backend-file (uses MemoryBackendFileProperties)
>> memory-backend-memfd (uses MemoryBackendMemfdProperties)
>> memory-backend-ram (uses MemoryBackendProperties)
>>
>>> #
>>> # @reserve: if true, reserve swap space (or huge pages) if applicable
>>> # (default: true) (since 6.1)
>>> @@ -639,6 +639,8 @@
>>> #
>>> # Properties for memory-backend-file objects.
>>> #
>>> +# The @share boolean option is false by default with file.
>>> +#
>>> # @align: the base address alignment when QEMU mmap(2)s @mem-path.
>>> # Some backend stores specified by @mem-path require an alignment
>>> # different than the default one used by QEMU, e.g. the device DAX
>>
>>As stated in the commit message, this matches existing documentation in
>>memory-backend-epc
>>
>> # The @share boolean option is true by default with epc
>>
>>and memory-backend-memfd
>>
>> # The @share boolean option is true by default with memfd.
>>
>>I think "with FOO" could be clearer. Perhaps something like "with
>>backend 'memory-backend-FOO'.
>
> Ack, I'll do.
>
>>
>>However, even with your patch, we're still missing memory-backend-ram.
>>I can see two solutions:
>>
>>1. Create MemoryBackendRamProperties just to have a place for
>>documenting @share's default.
>>
>>2. Document @share's default right where it's defined, roughly like
>>this:
>>
>> # @share: if false, the memory is private to QEMU; if true, it is
>> # shared (default false for backends memory-backend-file and
>> # memory-backend-ram, true for backends memory-backend-epc and
>> # memory-backend-memfd)
>>
>>CON: we need to remember to update this whenever we add another backend.
>>
>>PRO: generated documentation is better, in my opinion.
>>
>>Thoughts?
>>
>
> Maybe option 2 is slightly better and it's also clearer how to document the default for other backends.
>
> When I added a new backend, it was not clear to me how to define the default for an inherited parameter.
>
> I would go with 2 if you agree.
I actually like 2 better :)
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] qapi: clarify that the default is backend dependent
2024-06-04 14:58 ` Markus Armbruster
@ 2024-06-06 14:06 ` Stefano Garzarella
0 siblings, 0 replies; 5+ messages in thread
From: Stefano Garzarella @ 2024-06-06 14:06 UTC (permalink / raw)
To: Markus Armbruster
Cc: qemu-devel, Eric Blake, Daniel P. Berrangé, Eduardo Habkost,
Paolo Bonzini
On Tue, Jun 04, 2024 at 04:58:49PM GMT, Markus Armbruster wrote:
>Stefano Garzarella <sgarzare@redhat.com> writes:
>
>> On Mon, Jun 03, 2024 at 11:34:10AM GMT, Markus Armbruster wrote:
>>>Stefano Garzarella <sgarzare@redhat.com> writes:
>>>
>>>> The default value of the @share option of the @MemoryBackendProperties
>>>> eally depends on the backend type, so let's document it explicitly and
>>>> add the default value where it was missing.
>>>>
>>>> Cc: David Hildenbrand <david@redhat.com>
>>>> Suggested-by: Markus Armbruster <armbru@redhat.com>
>>>> Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
>>>> ---
>>>> I followed how we document @share in memfd and epc, but I don't like it
>>>> very much, I just can't think of a better way, so if you have a suggestion
>>>> I can change them in all of them.
>>>>
>>>> Thanks,
>>>> Stefano
>>>> ---
>>>> qapi/qom.json | 4 +++-
>>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/qapi/qom.json b/qapi/qom.json
>>>> index 38dde6d785..8463bd32a2 100644
>>>> --- a/qapi/qom.json
>>>> +++ b/qapi/qom.json
>>>> @@ -600,7 +600,7 @@
>>> ##
>>> # @MemoryBackendProperties:
>>> #
>>> # Properties for objects of classes derived from memory-backend.
>>> #
>>>
>>>[...]
>>>
>>>> # preallocation threads (default: none) (since 7.2)
>>>> #
>>>> # @share: if false, the memory is private to QEMU; if true, it is
>>>> -# shared (default: false)
>>>> +# shared (default depends on the backend type)
>>>
>>>Note for later: the backends are the branches of ObjectOptions that use
>>>MemoryBackendProperties as branch type or as base of their branch type.
>>>These are
>>>
>>> memory-backend-epc (uses MemoryBackendEpcProperties)
>>> memory-backend-file (uses MemoryBackendFileProperties)
>>> memory-backend-memfd (uses MemoryBackendMemfdProperties)
>>> memory-backend-ram (uses MemoryBackendProperties)
>>>
>>>> #
>>>> # @reserve: if true, reserve swap space (or huge pages) if applicable
>>>> # (default: true) (since 6.1)
>>>> @@ -639,6 +639,8 @@
>>>> #
>>>> # Properties for memory-backend-file objects.
>>>> #
>>>> +# The @share boolean option is false by default with file.
>>>> +#
>>>> # @align: the base address alignment when QEMU mmap(2)s @mem-path.
>>>> # Some backend stores specified by @mem-path require an alignment
>>>> # different than the default one used by QEMU, e.g. the device DAX
>>>
>>>As stated in the commit message, this matches existing documentation in
>>>memory-backend-epc
>>>
>>> # The @share boolean option is true by default with epc
>>>
>>>and memory-backend-memfd
>>>
>>> # The @share boolean option is true by default with memfd.
>>>
>>>I think "with FOO" could be clearer. Perhaps something like "with
>>>backend 'memory-backend-FOO'.
>>
>> Ack, I'll do.
>>
>>>
>>>However, even with your patch, we're still missing memory-backend-ram.
>>>I can see two solutions:
>>>
>>>1. Create MemoryBackendRamProperties just to have a place for
>>>documenting @share's default.
>>>
>>>2. Document @share's default right where it's defined, roughly like
>>>this:
>>>
>>> # @share: if false, the memory is private to QEMU; if true, it is
>>> # shared (default false for backends memory-backend-file and
>>> # memory-backend-ram, true for backends memory-backend-epc and
>>> # memory-backend-memfd)
>>>
>>>CON: we need to remember to update this whenever we add another backend.
>>>
>>>PRO: generated documentation is better, in my opinion.
>>>
>>>Thoughts?
>>>
>>
>> Maybe option 2 is slightly better and it's also clearer how to document the default for other backends.
>>
>> When I added a new backend, it was not clear to me how to define the default for an inherited parameter.
>>
>> I would go with 2 if you agree.
>
>I actually like 2 better :)
>
Yeah, I'll do it ;-)
Thanks,
Stefano
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-06-06 14:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-23 13:33 [PATCH] qapi: clarify that the default is backend dependent Stefano Garzarella
2024-06-03 9:34 ` Markus Armbruster
2024-06-04 13:21 ` Stefano Garzarella
2024-06-04 14:58 ` Markus Armbruster
2024-06-06 14:06 ` Stefano Garzarella
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).