<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libvirt.git/src, branch master</title>
<subtitle>libvirt.org: git/libvirt.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/'/>
<entry>
<title>conf: numa: Allow formatting 'none' values for 'associativity' and 'policy' of cache</title>
<updated>2023-05-17T08:07:18+00:00</updated>
<author>
<name>Peter Krempa</name>
<email>pkrempa@redhat.com</email>
</author>
<published>2023-05-16T08:22:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=af621caa6bd479ca7666bcc6254e0043466b7b00'/>
<id>af621caa6bd479ca7666bcc6254e0043466b7b00</id>
<content type='text'>
The parser makes the values mandatory and also the qemu code implements
actions for those values. The formatter skips them though. Since
format+parse is used to copy the XML at startup a definition with those
values can't be started.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2203709
Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The parser makes the values mandatory and also the qemu code implements
actions for those values. The formatter skips them though. Since
format+parse is used to copy the XML at startup a definition with those
values can't be started.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2203709
Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>virDomainNumaDefNodeCacheParseXML: Refactor parsing of cache XML</title>
<updated>2023-05-17T08:07:18+00:00</updated>
<author>
<name>Peter Krempa</name>
<email>pkrempa@redhat.com</email>
</author>
<published>2023-05-16T08:19:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=0d5fc7219ae605959e14d877865793f48c729f5e'/>
<id>0d5fc7219ae605959e14d877865793f48c729f5e</id>
<content type='text'>
Use virXMLProp* helpers to simplify the code.

Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use virXMLProp* helpers to simplify the code.

Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu: Generate command line for MTE feature</title>
<updated>2023-05-16T15:43:05+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-15T12:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=b10bc8f7ab6f9986ccc54ba04fc5b3bad7576be6'/>
<id>b10bc8f7ab6f9986ccc54ba04fc5b3bad7576be6</id>
<content type='text'>
This is pretty trivial, just append "mte=on/off" to -machine
arguments.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is pretty trivial, just append "mte=on/off" to -machine
arguments.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu: Validate MTE feature</title>
<updated>2023-05-16T15:43:03+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-15T12:06:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=c6c9b5d251de215ed378aa0bc31daa2e1170409e'/>
<id>c6c9b5d251de215ed378aa0bc31daa2e1170409e</id>
<content type='text'>
The MTE feature is not supported by all QEMUs, only those with
QEMU_CAPS_MACHINE_VIRT_MTE capability.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The MTE feature is not supported by all QEMUs, only those with
QEMU_CAPS_MACHINE_VIRT_MTE capability.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu:: Introduce QEMU_CAPS_MACHINE_VIRT_MTE capability</title>
<updated>2023-05-16T15:43:00+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-15T12:00:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=1347a19f75a23b4d92e6a7b549fcde52b23f0258'/>
<id>1347a19f75a23b4d92e6a7b549fcde52b23f0258</id>
<content type='text'>
The MTE feature (introduced in QEMU commit of v5.1.0-rc1~8^2~11)
is detectable via 'qom-list-properties' for 'virt' machine type.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The MTE feature (introduced in QEMU commit of v5.1.0-rc1~8^2~11)
is detectable via 'qom-list-properties' for 'virt' machine type.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>conf: Introduce MTE domain feature</title>
<updated>2023-05-16T15:42:58+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-15T11:55:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=720e8f13ff71377580cd37b118cee8a1f982d1d8'/>
<id>720e8f13ff71377580cd37b118cee8a1f982d1d8</id>
<content type='text'>
The Memory Tagging Extensions are hardware acceleration present
in some ARM processors that allow memory error detection [1].
Introduce a domain XML knob that turns them on or off.

1: https://www.arm.com/blogs/blueprint/memory-safety-arm-memory-tagging-extension
Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Memory Tagging Extensions are hardware acceleration present
in some ARM processors that allow memory error detection [1].
Introduce a domain XML knob that turns them on or off.

1: https://www.arm.com/blogs/blueprint/memory-safety-arm-memory-tagging-extension
Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu: Drop @forceVFIO argument of qemuDomainGetMemLockLimitBytes()</title>
<updated>2023-05-16T12:43:43+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-09T14:16:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=37e41b7f160f7ca05ec290ef9c1def5088c9cbaa'/>
<id>37e41b7f160f7ca05ec290ef9c1def5088c9cbaa</id>
<content type='text'>
After previous cleanup, there's not a single caller that would
call qemuDomainGetMemLockLimitBytes() with @forceVFIO set. All
callers pass false.

Drop the unneeded argument from the function.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After previous cleanup, there's not a single caller that would
call qemuDomainGetMemLockLimitBytes() with @forceVFIO set. All
callers pass false.

Drop the unneeded argument from the function.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu: Drop @forceVFIO argument of qemuDomainAdjustMaxMemLock()</title>
<updated>2023-05-16T12:43:43+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-10T06:55:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=4f355fa5b714b90d2aaf0dbf2c7d1c7080ff729d'/>
<id>4f355fa5b714b90d2aaf0dbf2c7d1c7080ff729d</id>
<content type='text'>
After previous cleanup, there's not a single caller that would
call qemuDomainAdjustMaxMemLock() with @forceVFIO set. All callers
pass false.

Drop the unneeded argument from the function.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After previous cleanup, there's not a single caller that would
call qemuDomainAdjustMaxMemLock() with @forceVFIO set. All callers
pass false.

Drop the unneeded argument from the function.

Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>qemu_domin: Account for NVMe disks when calculating memlock limit on hotplug</title>
<updated>2023-05-16T12:43:42+00:00</updated>
<author>
<name>Michal Privoznik</name>
<email>mprivozn@redhat.com</email>
</author>
<published>2023-05-09T10:19:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=c925bb927327c6f23864348286d931a25fbd13a3'/>
<id>c925bb927327c6f23864348286d931a25fbd13a3</id>
<content type='text'>
During hotplug of a NVMe disk we need to adjust the memlock
limit. The computation of the limit is handled by
qemuDomainGetMemLockLimitBytes() which looks at given domain
definition and accounts for various device types (as different
types require different amounts). But during disk hotplug the
disk is not added to domain definition until the very last
moment. Therefore, qemuDomainGetMemLockLimitBytes() has this
@forceVFIO argument which tells it to assume VFIO even if there
are no signs of VFIO in domain definition. And this kind of
works, until the amount needed for NVMe disks changed (in
v9.3.0-rc1~52). What's missing in the commit is making @forceVFIO
behave the same as if there was an NVMe disk present in the
domain definition.

But, we can do even better - just mimic whatever we're doing for
hostdevs. IOW - introduce qemuDomainAdjustMaxMemLockNVMe() that
behaves the same as qemuDomainAdjustMaxMemLockHostdev().

There are subtle differences though:

1) qemuDomainAdjustMaxMemLockHostdev() can afford placing hostdev
   right at the end of vm-&gt;def-&gt;hostdevs, because the array was
   already reallocated (at the beginning of
   qemuDomainAttachHostPCIDevice()). But
   qemuDomainAdjustMaxMemLockNVMe() doesn't have that luxury.

2) qemuDomainAdjustMaxMemLockHostdev() places a
   virDomainHostdevDef pointer into domain definition, while
   qemuDomainStorageSourceAccessModifyNVMe() (which calls
   qemuDomainAdjustMaxMemLock()) sees a virStorageSource pointer
   but domain definition contains virDomainDiskDef. But that's
   okay, we can create a dummy disk definition and append it into
   the domain definition.

After this, qemuDomainAdjustMaxMemLock() can be called with
@forceVFIO = false, as the disk is now part of domain definition
(when computing the new limit).

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2014030#c28
Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
During hotplug of a NVMe disk we need to adjust the memlock
limit. The computation of the limit is handled by
qemuDomainGetMemLockLimitBytes() which looks at given domain
definition and accounts for various device types (as different
types require different amounts). But during disk hotplug the
disk is not added to domain definition until the very last
moment. Therefore, qemuDomainGetMemLockLimitBytes() has this
@forceVFIO argument which tells it to assume VFIO even if there
are no signs of VFIO in domain definition. And this kind of
works, until the amount needed for NVMe disks changed (in
v9.3.0-rc1~52). What's missing in the commit is making @forceVFIO
behave the same as if there was an NVMe disk present in the
domain definition.

But, we can do even better - just mimic whatever we're doing for
hostdevs. IOW - introduce qemuDomainAdjustMaxMemLockNVMe() that
behaves the same as qemuDomainAdjustMaxMemLockHostdev().

There are subtle differences though:

1) qemuDomainAdjustMaxMemLockHostdev() can afford placing hostdev
   right at the end of vm-&gt;def-&gt;hostdevs, because the array was
   already reallocated (at the beginning of
   qemuDomainAttachHostPCIDevice()). But
   qemuDomainAdjustMaxMemLockNVMe() doesn't have that luxury.

2) qemuDomainAdjustMaxMemLockHostdev() places a
   virDomainHostdevDef pointer into domain definition, while
   qemuDomainStorageSourceAccessModifyNVMe() (which calls
   qemuDomainAdjustMaxMemLock()) sees a virStorageSource pointer
   but domain definition contains virDomainDiskDef. But that's
   okay, we can create a dummy disk definition and append it into
   the domain definition.

After this, qemuDomainAdjustMaxMemLock() can be called with
@forceVFIO = false, as the disk is now part of domain definition
(when computing the new limit).

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2014030#c28
Signed-off-by: Michal Privoznik &lt;mprivozn@redhat.com&gt;
Reviewed-by: Martin Kletzander &lt;mkletzan@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>schemas: backup: Allow missing 'type' attribute for backup disk</title>
<updated>2023-05-16T08:26:33+00:00</updated>
<author>
<name>Peter Krempa</name>
<email>pkrempa@redhat.com</email>
</author>
<published>2023-05-15T12:28:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libvirt.git/commit/?id=9884e89236374a4f94382d99451dbc9208d78a29'/>
<id>9884e89236374a4f94382d99451dbc9208d78a29</id>
<content type='text'>
One of our examples in the 'formatbackup.rst' page shows following
config:

  &lt;disk name='vda' backup='yes'/&gt;

The schema didn't allow it though. Fix the schema as the internals were
supposed to support it (except for the bug fixed in previous patches).

Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Ján Tomko &lt;jtomko@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
One of our examples in the 'formatbackup.rst' page shows following
config:

  &lt;disk name='vda' backup='yes'/&gt;

The schema didn't allow it though. Fix the schema as the internals were
supposed to support it (except for the bug fixed in previous patches).

Signed-off-by: Peter Krempa &lt;pkrempa@redhat.com&gt;
Reviewed-by: Ján Tomko &lt;jtomko@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
