[libvirt] [PATCH v1 7/7] qemu: Enable memory-backend-file.discard-data whenever possible

Michal Privoznik mprivozn at redhat.com
Tue Apr 17 08:49:39 UTC 2018


On 04/17/2018 10:05 AM, Peter Krempa wrote:
> On Thu, Apr 12, 2018 at 18:39:52 +0200, Michal Privoznik wrote:
>> https://bugzilla.redhat.com/show_bug.cgi?id=1480668
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>  src/qemu/qemu_command.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index f864350bd5..67350719aa 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -3148,6 +3148,12 @@ qemuBuildMemoryBackendStr(virJSONValuePtr *backendProps,
>>                                    NULL) < 0)
>>              goto cleanup;
>>  
>> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE_DISCARD) &&
>> +            virJSONValueObjectAdd(props,
>> +                                  "B:discard-data", true,
> 
> This code path is used also for NVDIMMs, and since the documentaion for
> the option states that:
> 
>     The new option can be used to indicate that the file contents can
>     be destroyed and don't need to be flushed to disk when QEMU exits
>     or when the memory backend object is removed.
> 
> I'm not sure whether this is right.
> 

Okay, I'll make it configurable via domain XML. However, I'm struggling
to come up with useful design. Perhaps we can have <discardData/>
element under <memoryBacking/>?

  <memoryBacking>
    <discardData/>
  </memoryBacking>

and in order to be able to fine tune this per nvdimm/RAM modules we can
have:

  <memory model='nvdimm'>
    <source ../>
    <target ../>
    <discardData/>
  </memory>

However, this would allow the element even for cases when
memory-backing-ram is used (or the old way of configuration without any
memory-backend-* at all).

Michal




More information about the libvir-list mailing list