[libvirt] [PATCH RESEND] cpu: Add support for pku and ospke Intel features for Memory Protection Keys
by Lin Ma
qemu commit: f74eefe0
https://lwn.net/Articles/667156/
Signed-off-by: Lin Ma <lma(a)suse.com>
---
src/cpu/cpu_map.xml | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml
index 6da8321..dca5720 100644
--- a/src/cpu/cpu_map.xml
+++ b/src/cpu/cpu_map.xml
@@ -255,6 +255,13 @@
<cpuid eax_in='0x07' ebx='0x10000000'/>
</feature>
+ <feature name='pku'>
+ <cpuid eax_in='0x07' ecx='0x00000008'/>
+ </feature>
+ <feature name='ospke'>
+ <cpuid eax_in='0x07' ecx='0x00000010'/>
+ </feature>
+
<!-- Processor Extended State Enumeration sub leaf 1 -->
<feature name='xsaveopt'>
<cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000001'/>
--
2.9.2
7 years, 11 months
[libvirt] [PATCH RESEND] cpu: Add support for more AVX512 Intel features
by Lin Ma
These features are included:
AVX512DQ, AVX512IFMA, AVX512BW, AVX512VL, AVX512VBMI, AVX512_4VNNIW and
AVX512_4FMAPS.
qemu commits: cc728d14 and 95ea69fb
Signed-off-by: Lin Ma <lma(a)suse.com>
---
src/cpu/cpu_map.xml | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml
index 6da8321..e9292e1 100644
--- a/src/cpu/cpu_map.xml
+++ b/src/cpu/cpu_map.xml
@@ -233,6 +233,9 @@
<feature name='avx512f'> <!-- AVX-512 Foundation -->
<cpuid eax_in='0x07' ebx='0x00010000'/>
</feature>
+ <feature name='avx512dq'> <!-- AVX-512 Doubleword & Quadword Instrs -->
+ <cpuid eax_in='0x07' ebx='0x00020000'/>
+ </feature>
<feature name='rdseed'>
<cpuid eax_in='0x07' ebx='0x00040000'/>
</feature>
@@ -242,6 +245,9 @@
<feature name='smap'>
<cpuid eax_in='0x07' ebx='0x00100000'/>
</feature>
+ <feature name='avx512ifma'> <!-- AVX-512 Integer Fused Multiply Add -->
+ <cpuid eax_in='0x07' ebx='0x00200000'/>
+ </feature>
<feature name='clflushopt'>
<cpuid eax_in='0x07' ebx='0x00800000'/>
</feature>
@@ -254,6 +260,24 @@
<feature name='avx512cd'> <!-- AVX-512 Conflict Detection -->
<cpuid eax_in='0x07' ebx='0x10000000'/>
</feature>
+ <feature name='avx512bw'> <!-- AVX-512 Byte and Word Instructions -->
+ <cpuid eax_in='0x07' ebx='0x40000000'/>
+ </feature>
+ <feature name='avx512vl'> <!-- AVX-512 Vector Length Extensions -->
+ <cpuid eax_in='0x07' ebx='0x80000000'/>
+ </feature>
+
+ <feature name='avx512vbmi'> <!-- AVX-512 Vector Byte Manipulation Instrs -->
+ <cpuid eax_in='0x07' ecx='0x00000002'/>
+ </feature>
+
+ <feature name='avx512-4vnniw'> <!-- AVX-512 Neural Network Instructions -->
+ <cpuid eax_in='0x07' edx='0x00000004'/>
+ </feature>
+ <!-- AVX-512 Multiply Accumulation Single Precision -->
+ <feature name='avx512-4fmaps'>
+ <cpuid eax_in='0x07' edx='0x00000008'/>
+ </feature>
<!-- Processor Extended State Enumeration sub leaf 1 -->
<feature name='xsaveopt'>
--
2.9.2
7 years, 11 months
[libvirt] [PATCH 0/7] Adjustments for storage/qemu volume/file backing size settings
by John Ferlan
A bit of a mix between fixing some bugs and merging some code between
the block info/stats fetching of backing store data and storage backend
data for volume allocation, capacity, and physical sizes.
Patch 1 just adjusts some comments
Patches 2-3 are code motion
Patch 4 alters how domain/qemu will open the backing store from an open
to a qemuFileOpen and it allows for fetching of more physical sizes (the
code only gets the block backing stores now)
Patch 5 shares the setting of the various size values between storage driver
and domain/qemu
Patch 6 shares the recalculation of the capacity value (it may not be necessary
for patch 5, but I left it there since there's multiple other paths to the
VolTargetInfoFD API).
Patch 7 fixes an issue with displaying the allocation value of a qcow2 backed
file for the GetBlockInfo API (the results will match volume code now).
John Ferlan (7):
qemu: Clean up description for qemuStorageLimitsRefresh
qemu: Add helpers to handle stat data for qemuStorageLimitsRefresh
qemu: Introduce helper qemuDomainStorageUpdatePhysical
util: Introduce virStorageSourceUpdatePhysicalSize
util: Introduce virStorageSourceUpdateBackingSizes
util: Introduce virStorageSourceUpdateCapacity
qemu: Fix GetBlockInfo setting allocation from wr_highest_offset
src/libvirt_private.syms | 5 +-
src/qemu/qemu_driver.c | 237 ++++++++++++++++++++++++------------------
src/storage/storage_backend.c | 41 +-------
src/util/virstoragefile.c | 173 ++++++++++++++++++++++++++----
src/util/virstoragefile.h | 15 ++-
5 files changed, 304 insertions(+), 167 deletions(-)
--
2.7.4
7 years, 11 months
[libvirt] [PATCH] docs: Format text in <p/> into a block
by Michal Privoznik
With the rework of our webpage I've also noticed that we can make
our <p/> block look more uniform: stretch the lines so that each
has the equal width. Just like if you hit "align to block" in
your favourite text editor.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
docs/generic.css | 1 +
1 file changed, 1 insertion(+)
diff --git a/docs/generic.css b/docs/generic.css
index a6b2354df..4c8887d6d 100644
--- a/docs/generic.css
+++ b/docs/generic.css
@@ -14,6 +14,7 @@ p, ul, ol, dl {
p {
margin-top: 1em;
margin-bottom: 1em;
+ text-align: justify;
}
ul, ol {
--
2.11.0
7 years, 11 months
[libvirt] bug, libvirt, internal error
by CESAR DAVID VASQUEZ ROMERO
Hi, I'm having a problem with libvirt.
Since a few days, when I try to create a virtual machine I get the
following error and I could not solve it
" Imposible completar la instalación: 'internal error: Cannot find suitable
CPU model for given data' "
-------------------------------------------------------------------------------------------------------------
Detalles:
imposible completar la instalación: 'internal error: Cannot find suitable
CPU model for given data'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 90, in
cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 2277, in
_do_async_install
guest.start_install(meter=meter)
File "/usr/share/virt-manager/virtinst/guest.py", line 501, in
start_install
noboot)
File "/usr/share/virt-manager/virtinst/guest.py", line 416, in
_create_guest
dom = self.conn.createLinux(start_xml or final_xml, 0)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3606, in
createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed',
conn=self)
libvirtError: internal error: Cannot find suitable CPU model for given data
-------------------------------------------------------------------------------------------------------------
I tried deleting the / var / cache / libvirt / qemu / capabilities /
directory, and restarting libvirt but it did not work.
I have other virtual machines on the physical server and they work fine,
but I can not create new ones.
How can i fix this
Thank you
7 years, 11 months
[libvirt] [PATCH] Fix minor typos
by Yuri Chornoivan
Hi,
Attached is a minor fix for the typos found while translating libvirt.
Best regards,
Yuri
P. S. Sorry for the lame format. My mail provider rejects direct sending
emails from git send.
7 years, 11 months
[libvirt] [PATCH python] libvirt-override: fix setBlockIoTune failure with flags 3
by xieyingtai@huawei.com
From: Yingtai Xie <xieyingtai(a)huawei.com>
virDomainGetBlockIoTune() will be called before setBlockIoTune, as a result,
it leads to a failure if set flags with VIR_DOMAIN_AFFECT_LIVE |
VIR_DOMAIN_AFFECT_CONFIG which is an reasonable option.
Signed-off-by: Yingtai Xie <xieyingtai(a)huawei.com>
---
libvirt-override.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libvirt-override.c b/libvirt-override.c
index 2de95ce..caa52fb 100644
--- a/libvirt-override.c
+++ b/libvirt-override.c
@@ -4805,6 +4805,7 @@ libvirt_virDomainSetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
Py_ssize_t size = 0;
const char *disk;
unsigned int flags;
+ unsigned int flags1 = VIR_DOMAIN_AFFECT_LIVE;
virTypedParameterPtr params = NULL, new_params = NULL;
if (!PyArg_ParseTuple(args, (char *)"OzOI:virDomainSetBlockIoTune",
@@ -4822,7 +4823,7 @@ libvirt_virDomainSetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
}
LIBVIRT_BEGIN_ALLOW_THREADS;
- i_retval = virDomainGetBlockIoTune(domain, disk, NULL, &nparams, flags);
+ i_retval = virDomainGetBlockIoTune(domain, disk, NULL, &nparams, flags1);
LIBVIRT_END_ALLOW_THREADS;
if (i_retval < 0)
@@ -4838,7 +4839,7 @@ libvirt_virDomainSetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
return PyErr_NoMemory();
LIBVIRT_BEGIN_ALLOW_THREADS;
- i_retval = virDomainGetBlockIoTune(domain, disk, params, &nparams, flags);
+ i_retval = virDomainGetBlockIoTune(domain, disk, params, &nparams, flags1);
LIBVIRT_END_ALLOW_THREADS;
if (i_retval < 0) {
--
1.8.3.1
7 years, 11 months
[libvirt] [PATCH] qemuDomainAttachNetDevice: pass mq and vectors for vhost-user with multiqueue
by gaohaifeng
Two reasons:
1.in none hotplug, we will pass it. We can see from libvirt function
qemuBuildVhostuserCommandLine
2.qemu will use this vetcor num to init msix table. If we don't pass, qemu
will use default value, this will cause VM can only use default value
interrupts at most.
Signed-off-by: gaohaifeng <gaohaifeng.gao(a)huawei.com>
---
src/qemu/qemu_hotplug.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 7c3f32d..55af888 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -946,6 +946,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
char **vhostfdName = NULL;
int *vhostfd = NULL;
size_t vhostfdSize = 0;
+ size_t queueSize = 0;
char *nicstr = NULL;
char *netstr = NULL;
virNetDevVPortProfilePtr vport = NULL;
@@ -1010,6 +1011,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
tapfdSize = vhostfdSize = net->driver.virtio.queues;
if (!tapfdSize)
tapfdSize = vhostfdSize = 1;
+ queueSize = tapfdSize;
if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
goto cleanup;
memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
@@ -1029,6 +1031,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
tapfdSize = vhostfdSize = net->driver.virtio.queues;
if (!tapfdSize)
tapfdSize = vhostfdSize = 1;
+ queueSize = tapfdSize;
if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
goto cleanup;
memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
@@ -1049,6 +1052,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
tapfdSize = vhostfdSize = net->driver.virtio.queues;
if (!tapfdSize)
tapfdSize = vhostfdSize = 1;
+ queueSize = tapfdSize;
if (VIR_ALLOC_N(tapfd, tapfdSize) < 0)
goto cleanup;
memset(tapfd, -1, sizeof(*tapfd) * tapfdSize);
@@ -1079,6 +1083,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
break;
case VIR_DOMAIN_NET_TYPE_VHOSTUSER:
+ queueSize = net->driver.virtio.queues;
+ if (!queueSize)
+ queueSize = 1;
if (!qemuDomainSupportsNetdev(vm->def, priv->qemuCaps, net)) {
virReportError(VIR_ERR_INTERNAL_ERROR,
"%s", _("Netdev support unavailable"));
@@ -1223,7 +1230,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
VIR_FORCE_CLOSE(vhostfd[i]);
if (!(nicstr = qemuBuildNicDevStr(vm->def, net, vlan, 0,
- vhostfdSize, priv->qemuCaps)))
+ queueSize, priv->qemuCaps)))
goto try_remove;
qemuDomainObjEnterMonitor(driver, vm);
--
2.6.4
7 years, 11 months