mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-10-06 11:34:01 +03:00
Compare commits
16 Commits
v5.10.0-rc
...
v5.1-maint
Author | SHA1 | Date | |
---|---|---|---|
|
2a3f95a407 | ||
|
c5085b7a90 | ||
|
58c7c3fc4a | ||
|
111bb6555c | ||
|
4aa6ce7dad | ||
|
771a7f2fa8 | ||
|
44a0bcdb10 | ||
|
2686c9e10d | ||
|
54fb85c213 | ||
|
b735dde844 | ||
|
1442aa99be | ||
|
3e02ee9b5d | ||
|
095c450366 | ||
|
b990740b12 | ||
|
e8ec259220 | ||
|
092320f10b |
@@ -33,6 +33,7 @@ AC_DEFUN([LIBVIRT_STORAGE_CHECK_RBD], [
|
|||||||
old_LIBS="$LIBS"
|
old_LIBS="$LIBS"
|
||||||
LIBS="$LIBS $LIBRBD_LIBS"
|
LIBS="$LIBS $LIBRBD_LIBS"
|
||||||
AC_CHECK_FUNCS([rbd_get_features],[],[LIBRBD_FOUND=no])
|
AC_CHECK_FUNCS([rbd_get_features],[],[LIBRBD_FOUND=no])
|
||||||
|
AC_CHECK_FUNCS([rbd_list2])
|
||||||
LIBS="$old_LIBS"
|
LIBS="$old_LIBS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@@ -64,6 +64,28 @@ remoteAdmClientNew(virNetServerClientPtr client ATTRIBUTE_UNUSED,
|
|||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
struct daemonAdmClientPrivate *priv;
|
struct daemonAdmClientPrivate *priv;
|
||||||
|
uid_t clientuid;
|
||||||
|
gid_t clientgid;
|
||||||
|
pid_t clientpid;
|
||||||
|
unsigned long long timestamp;
|
||||||
|
|
||||||
|
if (virNetServerClientGetUNIXIdentity(client,
|
||||||
|
&clientuid,
|
||||||
|
&clientgid,
|
||||||
|
&clientpid,
|
||||||
|
×tamp) < 0)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
VIR_DEBUG("New client pid %lld uid %lld",
|
||||||
|
(long long)clientpid,
|
||||||
|
(long long)clientuid);
|
||||||
|
|
||||||
|
if (geteuid() != clientuid) {
|
||||||
|
virReportRestrictedError(_("Disallowing client %lld with uid %lld"),
|
||||||
|
(long long)clientpid,
|
||||||
|
(long long)clientuid);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (VIR_ALLOC(priv) < 0)
|
if (VIR_ALLOC(priv) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -165,7 +165,6 @@ struct _virCPUx86Map {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static virCPUx86MapPtr cpuMap;
|
static virCPUx86MapPtr cpuMap;
|
||||||
static unsigned int microcodeVersion;
|
|
||||||
|
|
||||||
int virCPUx86DriverOnceInit(void);
|
int virCPUx86DriverOnceInit(void);
|
||||||
VIR_ONCE_GLOBAL_INIT(virCPUx86Driver);
|
VIR_ONCE_GLOBAL_INIT(virCPUx86Driver);
|
||||||
@@ -1332,8 +1331,6 @@ virCPUx86DriverOnceInit(void)
|
|||||||
if (!(cpuMap = virCPUx86LoadMap()))
|
if (!(cpuMap = virCPUx86LoadMap()))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
microcodeVersion = virHostCPUGetMicrocodeVersion();
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2373,7 +2370,7 @@ virCPUx86GetHost(virCPUDefPtr cpu,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = x86DecodeCPUData(cpu, cpuData, models);
|
ret = x86DecodeCPUData(cpu, cpuData, models);
|
||||||
cpu->microcodeVersion = microcodeVersion;
|
cpu->microcodeVersion = virHostCPUGetMicrocodeVersion();
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCPUx86DataFree(cpuData);
|
virCPUx86DataFree(cpuData);
|
||||||
|
@@ -317,6 +317,9 @@
|
|||||||
<feature name='avx512-4fmaps'>
|
<feature name='avx512-4fmaps'>
|
||||||
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000008'/>
|
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000008'/>
|
||||||
</feature>
|
</feature>
|
||||||
|
<feature name='md-clear'> <!-- md_clear -->
|
||||||
|
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/>
|
||||||
|
</feature>
|
||||||
<feature name='pconfig'>
|
<feature name='pconfig'>
|
||||||
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
|
<cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/>
|
||||||
</feature>
|
</feature>
|
||||||
|
@@ -1073,8 +1073,7 @@ virDomainRestoreFlags(virConnectPtr conn, const char *from, const char *dxml,
|
|||||||
* previously by virDomainSave() or virDomainSaveFlags().
|
* previously by virDomainSave() or virDomainSaveFlags().
|
||||||
*
|
*
|
||||||
* No security-sensitive data will be included unless @flags contains
|
* No security-sensitive data will be included unless @flags contains
|
||||||
* VIR_DOMAIN_SAVE_IMAGE_XML_SECURE; this flag is rejected on read-only
|
* VIR_DOMAIN_SAVE_IMAGE_XML_SECURE.
|
||||||
* connections.
|
|
||||||
*
|
*
|
||||||
* Returns a 0 terminated UTF-8 encoded XML instance, or NULL in case of
|
* Returns a 0 terminated UTF-8 encoded XML instance, or NULL in case of
|
||||||
* error. The caller must free() the returned value.
|
* error. The caller must free() the returned value.
|
||||||
@@ -1090,13 +1089,7 @@ virDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *file,
|
|||||||
|
|
||||||
virCheckConnectReturn(conn, NULL);
|
virCheckConnectReturn(conn, NULL);
|
||||||
virCheckNonNullArgGoto(file, error);
|
virCheckNonNullArgGoto(file, error);
|
||||||
|
virCheckReadOnlyGoto(conn->flags, error);
|
||||||
if ((conn->flags & VIR_CONNECT_RO) &&
|
|
||||||
(flags & VIR_DOMAIN_SAVE_IMAGE_XML_SECURE)) {
|
|
||||||
virReportError(VIR_ERR_OPERATION_DENIED, "%s",
|
|
||||||
_("virDomainSaveImageGetXMLDesc with secure flag"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (conn->driver->domainSaveImageGetXMLDesc) {
|
if (conn->driver->domainSaveImageGetXMLDesc) {
|
||||||
char *ret;
|
char *ret;
|
||||||
@@ -9572,6 +9565,7 @@ virDomainManagedSaveDefineXML(virDomainPtr domain, const char *dxml,
|
|||||||
|
|
||||||
virCheckDomainReturn(domain, -1);
|
virCheckDomainReturn(domain, -1);
|
||||||
conn = domain->conn;
|
conn = domain->conn;
|
||||||
|
virCheckReadOnlyGoto(conn->flags, error);
|
||||||
|
|
||||||
if (conn->driver->domainManagedSaveDefineXML) {
|
if (conn->driver->domainManagedSaveDefineXML) {
|
||||||
int ret;
|
int ret;
|
||||||
@@ -11366,6 +11360,7 @@ virConnectGetDomainCapabilities(virConnectPtr conn,
|
|||||||
virResetLastError();
|
virResetLastError();
|
||||||
|
|
||||||
virCheckConnectReturn(conn, NULL);
|
virCheckConnectReturn(conn, NULL);
|
||||||
|
virCheckReadOnlyGoto(conn->flags, error);
|
||||||
|
|
||||||
if (conn->driver->connectGetDomainCapabilities) {
|
if (conn->driver->connectGetDomainCapabilities) {
|
||||||
char *ret;
|
char *ret;
|
||||||
|
@@ -1041,6 +1041,7 @@ virConnectCompareHypervisorCPU(virConnectPtr conn,
|
|||||||
|
|
||||||
virCheckConnectReturn(conn, VIR_CPU_COMPARE_ERROR);
|
virCheckConnectReturn(conn, VIR_CPU_COMPARE_ERROR);
|
||||||
virCheckNonNullArgGoto(xmlCPU, error);
|
virCheckNonNullArgGoto(xmlCPU, error);
|
||||||
|
virCheckReadOnlyGoto(conn->flags, error);
|
||||||
|
|
||||||
if (conn->driver->connectCompareHypervisorCPU) {
|
if (conn->driver->connectCompareHypervisorCPU) {
|
||||||
int ret;
|
int ret;
|
||||||
@@ -1234,6 +1235,7 @@ virConnectBaselineHypervisorCPU(virConnectPtr conn,
|
|||||||
|
|
||||||
virCheckConnectReturn(conn, NULL);
|
virCheckConnectReturn(conn, NULL);
|
||||||
virCheckNonNullArgGoto(xmlCPUs, error);
|
virCheckNonNullArgGoto(xmlCPUs, error);
|
||||||
|
virCheckReadOnlyGoto(conn->flags, error);
|
||||||
|
|
||||||
if (conn->driver->connectBaselineHypervisorCPU) {
|
if (conn->driver->connectBaselineHypervisorCPU) {
|
||||||
char *cpu;
|
char *cpu;
|
||||||
|
@@ -5,6 +5,7 @@ Before=libvirtd.service
|
|||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=@localstatedir@/run/libvirt/virtlockd-admin-sock
|
ListenStream=@localstatedir@/run/libvirt/virtlockd-admin-sock
|
||||||
Service=virtlockd.service
|
Service=virtlockd.service
|
||||||
|
SocketMode=0600
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=sockets.target
|
WantedBy=sockets.target
|
||||||
|
@@ -4,6 +4,7 @@ Before=libvirtd.service
|
|||||||
|
|
||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=@localstatedir@/run/libvirt/virtlockd-sock
|
ListenStream=@localstatedir@/run/libvirt/virtlockd-sock
|
||||||
|
SocketMode=0600
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=sockets.target
|
WantedBy=sockets.target
|
||||||
|
@@ -5,6 +5,7 @@ Before=libvirtd.service
|
|||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=@localstatedir@/run/libvirt/virtlogd-admin-sock
|
ListenStream=@localstatedir@/run/libvirt/virtlogd-admin-sock
|
||||||
Service=virtlogd.service
|
Service=virtlogd.service
|
||||||
|
SocketMode=0600
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=sockets.target
|
WantedBy=sockets.target
|
||||||
|
@@ -4,6 +4,7 @@ Before=libvirtd.service
|
|||||||
|
|
||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=@localstatedir@/run/libvirt/virtlogd-sock
|
ListenStream=@localstatedir@/run/libvirt/virtlogd-sock
|
||||||
|
SocketMode=0600
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=sockets.target
|
WantedBy=sockets.target
|
||||||
|
@@ -2108,8 +2108,11 @@ static void
|
|||||||
networkReloadFirewallRules(virNetworkDriverStatePtr driver, bool startup)
|
networkReloadFirewallRules(virNetworkDriverStatePtr driver, bool startup)
|
||||||
{
|
{
|
||||||
VIR_INFO("Reloading iptables rules");
|
VIR_INFO("Reloading iptables rules");
|
||||||
if (networkPreReloadFirewallRules(startup) < 0)
|
/* Ideally we'd not even register the driver when unprivilegd
|
||||||
|
* but until we untangle the virt driver that's not viable */
|
||||||
|
if (!driver->privileged)
|
||||||
return;
|
return;
|
||||||
|
networkPreReloadFirewallRules(startup);
|
||||||
virNetworkObjListForEach(driver->networks,
|
virNetworkObjListForEach(driver->networks,
|
||||||
networkReloadFirewallRulesHelper,
|
networkReloadFirewallRulesHelper,
|
||||||
NULL);
|
NULL);
|
||||||
|
@@ -35,11 +35,37 @@ VIR_LOG_INIT("network.bridge_driver_linux");
|
|||||||
|
|
||||||
#define PROC_NET_ROUTE "/proc/net/route"
|
#define PROC_NET_ROUTE "/proc/net/route"
|
||||||
|
|
||||||
int networkPreReloadFirewallRules(bool startup)
|
static virErrorPtr errInitV4;
|
||||||
|
static virErrorPtr errInitV6;
|
||||||
|
|
||||||
|
void networkPreReloadFirewallRules(bool startup)
|
||||||
{
|
{
|
||||||
int ret = iptablesSetupPrivateChains();
|
bool created = false;
|
||||||
if (ret < 0)
|
int rc;
|
||||||
return -1;
|
|
||||||
|
/* We create global rules upfront as we don't want
|
||||||
|
* the perf hit of conditionally figuring out whether
|
||||||
|
* to create them each time a network is started.
|
||||||
|
*
|
||||||
|
* Any errors here are saved to be reported at time
|
||||||
|
* of starting the network though as that makes them
|
||||||
|
* more likely to be seen by a human
|
||||||
|
*/
|
||||||
|
rc = iptablesSetupPrivateChains(VIR_FIREWALL_LAYER_IPV4);
|
||||||
|
if (rc < 0) {
|
||||||
|
errInitV4 = virSaveLastError();
|
||||||
|
virResetLastError();
|
||||||
|
}
|
||||||
|
if (rc)
|
||||||
|
created = true;
|
||||||
|
|
||||||
|
rc = iptablesSetupPrivateChains(VIR_FIREWALL_LAYER_IPV6);
|
||||||
|
if (rc < 0) {
|
||||||
|
errInitV6 = virSaveLastError();
|
||||||
|
virResetLastError();
|
||||||
|
}
|
||||||
|
if (rc)
|
||||||
|
created = true;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If this is initial startup, and we just created the
|
* If this is initial startup, and we just created the
|
||||||
@@ -54,10 +80,8 @@ int networkPreReloadFirewallRules(bool startup)
|
|||||||
* rules will be present. Thus we can safely just tell it
|
* rules will be present. Thus we can safely just tell it
|
||||||
* to always delete from the builin chain
|
* to always delete from the builin chain
|
||||||
*/
|
*/
|
||||||
if (startup && ret == 1)
|
if (startup && created)
|
||||||
iptablesSetDeletePrivate(false);
|
iptablesSetDeletePrivate(false);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -671,6 +695,21 @@ int networkAddFirewallRules(virNetworkDefPtr def)
|
|||||||
virFirewallPtr fw = NULL;
|
virFirewallPtr fw = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
|
if (errInitV4 &&
|
||||||
|
(virNetworkDefGetIPByIndex(def, AF_INET, 0) ||
|
||||||
|
virNetworkDefGetRouteByIndex(def, AF_INET, 0))) {
|
||||||
|
virSetError(errInitV4);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (errInitV6 &&
|
||||||
|
(virNetworkDefGetIPByIndex(def, AF_INET6, 0) ||
|
||||||
|
virNetworkDefGetRouteByIndex(def, AF_INET6, 0) ||
|
||||||
|
def->ipv6nogw)) {
|
||||||
|
virSetError(errInitV6);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
if (def->bridgeZone) {
|
if (def->bridgeZone) {
|
||||||
|
|
||||||
/* if a firewalld zone has been specified, fail/log an error
|
/* if a firewalld zone has been specified, fail/log an error
|
||||||
|
@@ -19,9 +19,8 @@
|
|||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
int networkPreReloadFirewallRules(bool startup ATTRIBUTE_UNUSED)
|
void networkPreReloadFirewallRules(bool startup ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ struct _virNetworkDriverState {
|
|||||||
typedef struct _virNetworkDriverState virNetworkDriverState;
|
typedef struct _virNetworkDriverState virNetworkDriverState;
|
||||||
typedef virNetworkDriverState *virNetworkDriverStatePtr;
|
typedef virNetworkDriverState *virNetworkDriverStatePtr;
|
||||||
|
|
||||||
int networkPreReloadFirewallRules(bool startup);
|
void networkPreReloadFirewallRules(bool startup);
|
||||||
void networkPostReloadFirewallRules(bool startup);
|
void networkPostReloadFirewallRules(bool startup);
|
||||||
|
|
||||||
int networkCheckRouteCollision(virNetworkDefPtr def);
|
int networkCheckRouteCollision(virNetworkDefPtr def);
|
||||||
|
@@ -4487,7 +4487,7 @@ virQEMUCapsNewData(const char *binary,
|
|||||||
priv->libDir,
|
priv->libDir,
|
||||||
priv->runUid,
|
priv->runUid,
|
||||||
priv->runGid,
|
priv->runGid,
|
||||||
priv->microcodeVersion,
|
virHostCPUGetMicrocodeVersion(),
|
||||||
priv->kernelVersion);
|
priv->kernelVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4570,8 +4570,7 @@ virFileCachePtr
|
|||||||
virQEMUCapsCacheNew(const char *libDir,
|
virQEMUCapsCacheNew(const char *libDir,
|
||||||
const char *cacheDir,
|
const char *cacheDir,
|
||||||
uid_t runUid,
|
uid_t runUid,
|
||||||
gid_t runGid,
|
gid_t runGid)
|
||||||
unsigned int microcodeVersion)
|
|
||||||
{
|
{
|
||||||
char *capsCacheDir = NULL;
|
char *capsCacheDir = NULL;
|
||||||
virFileCachePtr cache = NULL;
|
virFileCachePtr cache = NULL;
|
||||||
@@ -4595,7 +4594,6 @@ virQEMUCapsCacheNew(const char *libDir,
|
|||||||
|
|
||||||
priv->runUid = runUid;
|
priv->runUid = runUid;
|
||||||
priv->runGid = runGid;
|
priv->runGid = runGid;
|
||||||
priv->microcodeVersion = microcodeVersion;
|
|
||||||
priv->kvmUsable = VIR_TRISTATE_BOOL_ABSENT;
|
priv->kvmUsable = VIR_TRISTATE_BOOL_ABSENT;
|
||||||
|
|
||||||
if (uname(&uts) == 0 &&
|
if (uname(&uts) == 0 &&
|
||||||
@@ -4617,8 +4615,11 @@ virQEMUCapsPtr
|
|||||||
virQEMUCapsCacheLookup(virFileCachePtr cache,
|
virQEMUCapsCacheLookup(virFileCachePtr cache,
|
||||||
const char *binary)
|
const char *binary)
|
||||||
{
|
{
|
||||||
|
virQEMUCapsCachePrivPtr priv = virFileCacheGetPriv(cache);
|
||||||
virQEMUCapsPtr ret = NULL;
|
virQEMUCapsPtr ret = NULL;
|
||||||
|
|
||||||
|
priv->microcodeVersion = virHostCPUGetMicrocodeVersion();
|
||||||
|
|
||||||
ret = virFileCacheLookup(cache, binary);
|
ret = virFileCacheLookup(cache, binary);
|
||||||
|
|
||||||
VIR_DEBUG("Returning caps %p for %s", ret, binary);
|
VIR_DEBUG("Returning caps %p for %s", ret, binary);
|
||||||
@@ -4672,6 +4673,7 @@ virQEMUCapsPtr
|
|||||||
virQEMUCapsCacheLookupByArch(virFileCachePtr cache,
|
virQEMUCapsCacheLookupByArch(virFileCachePtr cache,
|
||||||
virArch arch)
|
virArch arch)
|
||||||
{
|
{
|
||||||
|
virQEMUCapsCachePrivPtr priv = virFileCacheGetPriv(cache);
|
||||||
virQEMUCapsPtr ret = NULL;
|
virQEMUCapsPtr ret = NULL;
|
||||||
const char *binaryFilters[] = {
|
const char *binaryFilters[] = {
|
||||||
"qemu-system-",
|
"qemu-system-",
|
||||||
@@ -4684,6 +4686,8 @@ virQEMUCapsCacheLookupByArch(virFileCachePtr cache,
|
|||||||
size_t i;
|
size_t i;
|
||||||
size_t j;
|
size_t j;
|
||||||
|
|
||||||
|
priv->microcodeVersion = virHostCPUGetMicrocodeVersion();
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_CARDINALITY(binaryFilters); i++) {
|
for (i = 0; i < ARRAY_CARDINALITY(binaryFilters); i++) {
|
||||||
for (j = 0; j < ARRAY_CARDINALITY(archs); j++) {
|
for (j = 0; j < ARRAY_CARDINALITY(archs); j++) {
|
||||||
struct virQEMUCapsSearchData data = {
|
struct virQEMUCapsSearchData data = {
|
||||||
|
@@ -587,8 +587,7 @@ void virQEMUCapsFilterByMachineType(virQEMUCapsPtr qemuCaps,
|
|||||||
virFileCachePtr virQEMUCapsCacheNew(const char *libDir,
|
virFileCachePtr virQEMUCapsCacheNew(const char *libDir,
|
||||||
const char *cacheDir,
|
const char *cacheDir,
|
||||||
uid_t uid,
|
uid_t uid,
|
||||||
gid_t gid,
|
gid_t gid);
|
||||||
unsigned int microcodeVersion);
|
|
||||||
virQEMUCapsPtr virQEMUCapsCacheLookup(virFileCachePtr cache,
|
virQEMUCapsPtr virQEMUCapsCacheLookup(virFileCachePtr cache,
|
||||||
const char *binary);
|
const char *binary);
|
||||||
virQEMUCapsPtr virQEMUCapsCacheLookupCopy(virFileCachePtr cache,
|
virQEMUCapsPtr virQEMUCapsCacheLookupCopy(virFileCachePtr cache,
|
||||||
|
@@ -585,8 +585,6 @@ qemuStateInitialize(bool privileged,
|
|||||||
char *hugepagePath = NULL;
|
char *hugepagePath = NULL;
|
||||||
char *memoryBackingPath = NULL;
|
char *memoryBackingPath = NULL;
|
||||||
size_t i;
|
size_t i;
|
||||||
virCPUDefPtr hostCPU = NULL;
|
|
||||||
unsigned int microcodeVersion = 0;
|
|
||||||
|
|
||||||
if (VIR_ALLOC(qemu_driver) < 0)
|
if (VIR_ALLOC(qemu_driver) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@@ -809,15 +807,10 @@ qemuStateInitialize(bool privileged,
|
|||||||
run_gid = cfg->group;
|
run_gid = cfg->group;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hostCPU = virCPUProbeHost(virArchFromHost())))
|
|
||||||
microcodeVersion = hostCPU->microcodeVersion;
|
|
||||||
virCPUDefFree(hostCPU);
|
|
||||||
|
|
||||||
qemu_driver->qemuCapsCache = virQEMUCapsCacheNew(cfg->libDir,
|
qemu_driver->qemuCapsCache = virQEMUCapsCacheNew(cfg->libDir,
|
||||||
cfg->cacheDir,
|
cfg->cacheDir,
|
||||||
run_uid,
|
run_uid,
|
||||||
run_gid,
|
run_gid);
|
||||||
microcodeVersion);
|
|
||||||
if (!qemu_driver->qemuCapsCache)
|
if (!qemu_driver->qemuCapsCache)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
@@ -7090,7 +7083,7 @@ qemuDomainSaveImageGetXMLDesc(virConnectPtr conn, const char *path,
|
|||||||
if (fd < 0)
|
if (fd < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (virDomainSaveImageGetXMLDescEnsureACL(conn, def, flags) < 0)
|
if (virDomainSaveImageGetXMLDescEnsureACL(conn, def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
ret = qemuDomainDefFormatXML(driver, def, flags);
|
ret = qemuDomainDefFormatXML(driver, def, flags);
|
||||||
|
@@ -5234,8 +5234,7 @@ enum remote_procedure {
|
|||||||
/**
|
/**
|
||||||
* @generate: both
|
* @generate: both
|
||||||
* @priority: high
|
* @priority: high
|
||||||
* @acl: domain:read
|
* @acl: domain:write
|
||||||
* @acl: domain:read_secure:VIR_DOMAIN_SAVE_IMAGE_XML_SECURE
|
|
||||||
*/
|
*/
|
||||||
REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC = 235,
|
REMOTE_PROC_DOMAIN_SAVE_IMAGE_GET_XML_DESC = 235,
|
||||||
|
|
||||||
|
@@ -565,19 +565,111 @@ volStorageBackendRBDRefreshVolInfo(virStorageVolDefPtr vol,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_RBD_LIST2
|
||||||
|
static char **
|
||||||
|
virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
|
||||||
|
{
|
||||||
|
char **names = NULL;
|
||||||
|
size_t nnames = 0;
|
||||||
|
int rc;
|
||||||
|
rbd_image_spec_t *images = NULL;
|
||||||
|
size_t nimages = 16;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (VIR_ALLOC_N(images, nimages) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
rc = rbd_list2(ptr->ioctx, images, &nimages);
|
||||||
|
if (rc >= 0)
|
||||||
|
break;
|
||||||
|
if (rc != -ERANGE) {
|
||||||
|
virReportSystemError(-rc, "%s", _("Unable to list RBD images"));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (VIR_ALLOC_N(names, nimages + 1) < 0)
|
||||||
|
goto error;
|
||||||
|
nnames = nimages;
|
||||||
|
|
||||||
|
for (i = 0; i < nimages; i++)
|
||||||
|
VIR_STEAL_PTR(names[i], images->name);
|
||||||
|
|
||||||
|
return names;
|
||||||
|
|
||||||
|
error:
|
||||||
|
virStringListFreeCount(names, nnames);
|
||||||
|
rbd_image_spec_list_cleanup(images, nimages);
|
||||||
|
VIR_FREE(images);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* ! HAVE_RBD_LIST2 */
|
||||||
|
|
||||||
|
static char **
|
||||||
|
virStorageBackendRBDGetVolNames(virStorageBackendRBDStatePtr ptr)
|
||||||
|
{
|
||||||
|
char **names = NULL;
|
||||||
|
size_t nnames = 0;
|
||||||
|
int rc;
|
||||||
|
size_t max_size = 1024;
|
||||||
|
VIR_AUTOFREE(char *) namebuf = NULL;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
if (VIR_ALLOC_N(namebuf, max_size) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
rc = rbd_list(ptr->ioctx, namebuf, &max_size);
|
||||||
|
if (rc >= 0)
|
||||||
|
break;
|
||||||
|
if (rc != -ERANGE) {
|
||||||
|
virReportSystemError(-rc, "%s", _("Unable to list RBD images"));
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
VIR_FREE(namebuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (name = namebuf; name < namebuf + max_size;) {
|
||||||
|
VIR_AUTOFREE(char *) namedup = NULL;
|
||||||
|
|
||||||
|
if (STREQ(name, ""))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (VIR_STRDUP(namedup, name) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (VIR_APPEND_ELEMENT(names, nnames, namedup) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
name += strlen(name) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (VIR_EXPAND_N(names, nnames, 1) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
return names;
|
||||||
|
|
||||||
|
error:
|
||||||
|
virStringListFreeCount(names, nnames);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif /* ! HAVE_RBD_LIST2 */
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
||||||
{
|
{
|
||||||
size_t max_size = 1024;
|
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
int len = -1;
|
|
||||||
int r = 0;
|
int r = 0;
|
||||||
char *name;
|
|
||||||
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
virStoragePoolDefPtr def = virStoragePoolObjGetDef(pool);
|
||||||
virStorageBackendRBDStatePtr ptr = NULL;
|
virStorageBackendRBDStatePtr ptr = NULL;
|
||||||
struct rados_cluster_stat_t clusterstat;
|
struct rados_cluster_stat_t clusterstat;
|
||||||
struct rados_pool_stat_t poolstat;
|
struct rados_pool_stat_t poolstat;
|
||||||
VIR_AUTOFREE(char *) names = NULL;
|
char **names = NULL;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
if (!(ptr = virStorageBackendRBDNewState(pool)))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@@ -602,33 +694,16 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
def->source.name, clusterstat.kb, clusterstat.kb_avail,
|
def->source.name, clusterstat.kb, clusterstat.kb_avail,
|
||||||
poolstat.num_bytes);
|
poolstat.num_bytes);
|
||||||
|
|
||||||
while (true) {
|
if (!(names = virStorageBackendRBDGetVolNames(ptr)))
|
||||||
if (VIR_ALLOC_N(names, max_size) < 0)
|
goto cleanup;
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
len = rbd_list(ptr->ioctx, names, &max_size);
|
for (i = 0; names[i] != NULL; i++) {
|
||||||
if (len >= 0)
|
|
||||||
break;
|
|
||||||
if (len != -ERANGE) {
|
|
||||||
VIR_WARN("%s", "A problem occurred while listing RBD images");
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
VIR_FREE(names);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (name = names; name < names + max_size;) {
|
|
||||||
VIR_AUTOPTR(virStorageVolDef) vol = NULL;
|
VIR_AUTOPTR(virStorageVolDef) vol = NULL;
|
||||||
|
|
||||||
if (STREQ(name, ""))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (VIR_ALLOC(vol) < 0)
|
if (VIR_ALLOC(vol) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (VIR_STRDUP(vol->name, name) < 0)
|
VIR_STEAL_PTR(vol->name, names[i]);
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
name += strlen(name) + 1;
|
|
||||||
|
|
||||||
r = volStorageBackendRBDRefreshVolInfo(vol, pool, ptr);
|
r = volStorageBackendRBDRefreshVolInfo(vol, pool, ptr);
|
||||||
|
|
||||||
@@ -661,6 +736,7 @@ virStorageBackendRBDRefreshPool(virStoragePoolObjPtr pool)
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
virStringListFree(names);
|
||||||
virStorageBackendRBDFreeState(&ptr);
|
virStorageBackendRBDFreeState(&ptr);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@@ -127,7 +127,7 @@ iptablesPrivateChainCreate(virFirewallPtr fw,
|
|||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
iptablesSetupPrivateChains(void)
|
iptablesSetupPrivateChains(virFirewallLayer layer)
|
||||||
{
|
{
|
||||||
virFirewallPtr fw = NULL;
|
virFirewallPtr fw = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@@ -143,17 +143,11 @@ iptablesSetupPrivateChains(void)
|
|||||||
};
|
};
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
iptablesGlobalChainData data[] = {
|
iptablesGlobalChainData data[] = {
|
||||||
{ VIR_FIREWALL_LAYER_IPV4, "filter",
|
{ layer, "filter",
|
||||||
filter_chains, ARRAY_CARDINALITY(filter_chains), &changed },
|
filter_chains, ARRAY_CARDINALITY(filter_chains), &changed },
|
||||||
{ VIR_FIREWALL_LAYER_IPV4, "nat",
|
{ layer, "nat",
|
||||||
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
||||||
{ VIR_FIREWALL_LAYER_IPV4, "mangle",
|
{ layer, "mangle",
|
||||||
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
|
||||||
{ VIR_FIREWALL_LAYER_IPV6, "filter",
|
|
||||||
filter_chains, ARRAY_CARDINALITY(filter_chains), &changed },
|
|
||||||
{ VIR_FIREWALL_LAYER_IPV6, "nat",
|
|
||||||
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
|
||||||
{ VIR_FIREWALL_LAYER_IPV6, "mangle",
|
|
||||||
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
natmangle_chains, ARRAY_CARDINALITY(natmangle_chains), &changed },
|
||||||
};
|
};
|
||||||
size_t i;
|
size_t i;
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
# include "virsocketaddr.h"
|
# include "virsocketaddr.h"
|
||||||
# include "virfirewall.h"
|
# include "virfirewall.h"
|
||||||
|
|
||||||
int iptablesSetupPrivateChains (void);
|
int iptablesSetupPrivateChains (virFirewallLayer layer);
|
||||||
|
|
||||||
void iptablesSetDeletePrivate (bool pvt);
|
void iptablesSetDeletePrivate (bool pvt);
|
||||||
|
|
||||||
|
@@ -1184,6 +1184,7 @@ mymain(void)
|
|||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Phenom-B95", JSON_HOST);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Phenom-B95", JSON_HOST);
|
||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-7-1800X-Eight-Core", JSON_HOST);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-7-1800X-Eight-Core", JSON_HOST);
|
||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-5110", JSON_NONE);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-5110", JSON_NONE);
|
||||||
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1225-v5", JSON_MODELS);
|
||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1245-v5", JSON_MODELS);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1245-v5", JSON_MODELS);
|
||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2609-v3", JSON_MODELS);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2609-v3", JSON_MODELS);
|
||||||
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2623-v4", JSON_MODELS);
|
DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2623-v4", JSON_MODELS);
|
||||||
|
@@ -0,0 +1,7 @@
|
|||||||
|
<!-- Features disabled by QEMU -->
|
||||||
|
<cpudata arch='x86'>
|
||||||
|
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/>
|
||||||
|
<cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
|
||||||
|
</cpudata>
|
@@ -0,0 +1,8 @@
|
|||||||
|
<!-- Features enabled by QEMU -->
|
||||||
|
<cpudata arch='x86'>
|
||||||
|
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0xf7fa3203' edx='0x0f8bfbff'/>
|
||||||
|
<cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x009c4fbb' ecx='0x00000000' edx='0x8c000400'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
|
||||||
|
</cpudata>
|
29
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
Normal file
29
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature policy='require' name='ds'/>
|
||||||
|
<feature policy='require' name='acpi'/>
|
||||||
|
<feature policy='require' name='ss'/>
|
||||||
|
<feature policy='require' name='ht'/>
|
||||||
|
<feature policy='require' name='tm'/>
|
||||||
|
<feature policy='require' name='pbe'/>
|
||||||
|
<feature policy='require' name='dtes64'/>
|
||||||
|
<feature policy='require' name='monitor'/>
|
||||||
|
<feature policy='require' name='ds_cpl'/>
|
||||||
|
<feature policy='require' name='vmx'/>
|
||||||
|
<feature policy='require' name='smx'/>
|
||||||
|
<feature policy='require' name='est'/>
|
||||||
|
<feature policy='require' name='tm2'/>
|
||||||
|
<feature policy='require' name='xtpr'/>
|
||||||
|
<feature policy='require' name='pdcm'/>
|
||||||
|
<feature policy='require' name='osxsave'/>
|
||||||
|
<feature policy='require' name='tsc_adjust'/>
|
||||||
|
<feature policy='require' name='clflushopt'/>
|
||||||
|
<feature policy='require' name='intel-pt'/>
|
||||||
|
<feature policy='require' name='md-clear'/>
|
||||||
|
<feature policy='require' name='stibp'/>
|
||||||
|
<feature policy='require' name='ssbd'/>
|
||||||
|
<feature policy='require' name='xsaves'/>
|
||||||
|
<feature policy='require' name='pdpe1gb'/>
|
||||||
|
<feature policy='require' name='invtsc'/>
|
||||||
|
</cpu>
|
30
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
Normal file
30
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<cpu>
|
||||||
|
<arch>x86_64</arch>
|
||||||
|
<model>Skylake-Client-IBRS</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature name='ds'/>
|
||||||
|
<feature name='acpi'/>
|
||||||
|
<feature name='ss'/>
|
||||||
|
<feature name='ht'/>
|
||||||
|
<feature name='tm'/>
|
||||||
|
<feature name='pbe'/>
|
||||||
|
<feature name='dtes64'/>
|
||||||
|
<feature name='monitor'/>
|
||||||
|
<feature name='ds_cpl'/>
|
||||||
|
<feature name='vmx'/>
|
||||||
|
<feature name='smx'/>
|
||||||
|
<feature name='est'/>
|
||||||
|
<feature name='tm2'/>
|
||||||
|
<feature name='xtpr'/>
|
||||||
|
<feature name='pdcm'/>
|
||||||
|
<feature name='osxsave'/>
|
||||||
|
<feature name='tsc_adjust'/>
|
||||||
|
<feature name='clflushopt'/>
|
||||||
|
<feature name='intel-pt'/>
|
||||||
|
<feature name='md-clear'/>
|
||||||
|
<feature name='stibp'/>
|
||||||
|
<feature name='ssbd'/>
|
||||||
|
<feature name='xsaves'/>
|
||||||
|
<feature name='pdpe1gb'/>
|
||||||
|
<feature name='invtsc'/>
|
||||||
|
</cpu>
|
12
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml
Normal file
12
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-json.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<cpu mode='custom' match='exact'>
|
||||||
|
<model fallback='forbid'>Skylake-Client-IBRS</model>
|
||||||
|
<vendor>Intel</vendor>
|
||||||
|
<feature policy='require' name='ss'/>
|
||||||
|
<feature policy='require' name='hypervisor'/>
|
||||||
|
<feature policy='require' name='tsc_adjust'/>
|
||||||
|
<feature policy='require' name='clflushopt'/>
|
||||||
|
<feature policy='require' name='md-clear'/>
|
||||||
|
<feature policy='require' name='stibp'/>
|
||||||
|
<feature policy='require' name='ssbd'/>
|
||||||
|
<feature policy='require' name='pdpe1gb'/>
|
||||||
|
</cpu>
|
652
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.json
Normal file
652
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.json
Normal file
@@ -0,0 +1,652 @@
|
|||||||
|
{
|
||||||
|
"return": {
|
||||||
|
"model": {
|
||||||
|
"name": "base",
|
||||||
|
"props": {
|
||||||
|
"phys-bits": 0,
|
||||||
|
"core-id": -1,
|
||||||
|
"xlevel": 2147483656,
|
||||||
|
"cmov": true,
|
||||||
|
"ia64": false,
|
||||||
|
"aes": true,
|
||||||
|
"mmx": true,
|
||||||
|
"rdpid": false,
|
||||||
|
"arat": true,
|
||||||
|
"gfni": false,
|
||||||
|
"pause-filter": false,
|
||||||
|
"xsavec": true,
|
||||||
|
"intel-pt": false,
|
||||||
|
"osxsave": false,
|
||||||
|
"hv-frequencies": false,
|
||||||
|
"tsc-frequency": 0,
|
||||||
|
"xd": true,
|
||||||
|
"hv-vendor-id": "",
|
||||||
|
"kvm-asyncpf": true,
|
||||||
|
"kvm_asyncpf": true,
|
||||||
|
"perfctr_core": false,
|
||||||
|
"perfctr-core": false,
|
||||||
|
"mpx": true,
|
||||||
|
"pbe": false,
|
||||||
|
"decodeassists": false,
|
||||||
|
"avx512cd": false,
|
||||||
|
"sse4_1": true,
|
||||||
|
"sse4.1": true,
|
||||||
|
"sse4-1": true,
|
||||||
|
"family": 6,
|
||||||
|
"legacy-cache": true,
|
||||||
|
"vmware-cpuid-freq": true,
|
||||||
|
"avx512f": false,
|
||||||
|
"msr": true,
|
||||||
|
"mce": true,
|
||||||
|
"mca": true,
|
||||||
|
"hv-runtime": false,
|
||||||
|
"xcrypt": false,
|
||||||
|
"thread-id": -1,
|
||||||
|
"min-level": 13,
|
||||||
|
"xgetbv1": true,
|
||||||
|
"cid": false,
|
||||||
|
"hv-relaxed": false,
|
||||||
|
"hv-crash": false,
|
||||||
|
"ds": false,
|
||||||
|
"fxsr": true,
|
||||||
|
"xsaveopt": true,
|
||||||
|
"xtpr": false,
|
||||||
|
"avx512vl": false,
|
||||||
|
"avx512-vpopcntdq": false,
|
||||||
|
"phe": false,
|
||||||
|
"extapic": false,
|
||||||
|
"3dnowprefetch": true,
|
||||||
|
"avx512vbmi2": false,
|
||||||
|
"cr8legacy": false,
|
||||||
|
"stibp": true,
|
||||||
|
"cpuid-0xb": true,
|
||||||
|
"xcrypt-en": false,
|
||||||
|
"kvm_pv_eoi": true,
|
||||||
|
"apic-id": 4294967295,
|
||||||
|
"pn": false,
|
||||||
|
"dca": false,
|
||||||
|
"vendor": "GenuineIntel",
|
||||||
|
"pku": false,
|
||||||
|
"smx": false,
|
||||||
|
"cmp_legacy": false,
|
||||||
|
"cmp-legacy": false,
|
||||||
|
"node-id": -1,
|
||||||
|
"avx512-4fmaps": false,
|
||||||
|
"vmcb_clean": false,
|
||||||
|
"vmcb-clean": false,
|
||||||
|
"3dnowext": false,
|
||||||
|
"hle": true,
|
||||||
|
"npt": false,
|
||||||
|
"memory": "/machine/unattached/system[0]",
|
||||||
|
"clwb": false,
|
||||||
|
"lbrv": false,
|
||||||
|
"adx": true,
|
||||||
|
"ss": true,
|
||||||
|
"pni": true,
|
||||||
|
"svm_lock": false,
|
||||||
|
"svm-lock": false,
|
||||||
|
"pfthreshold": false,
|
||||||
|
"smep": true,
|
||||||
|
"smap": true,
|
||||||
|
"x2apic": true,
|
||||||
|
"avx512vbmi": false,
|
||||||
|
"avx512vnni": false,
|
||||||
|
"hv-stimer": false,
|
||||||
|
"i64": true,
|
||||||
|
"flushbyasid": false,
|
||||||
|
"f16c": true,
|
||||||
|
"ace2-en": false,
|
||||||
|
"pat": true,
|
||||||
|
"pae": true,
|
||||||
|
"sse": true,
|
||||||
|
"phe-en": false,
|
||||||
|
"kvm_nopiodelay": true,
|
||||||
|
"kvm-nopiodelay": true,
|
||||||
|
"tm": false,
|
||||||
|
"kvmclock-stable-bit": true,
|
||||||
|
"hypervisor": true,
|
||||||
|
"socket-id": -1,
|
||||||
|
"pcommit": false,
|
||||||
|
"syscall": true,
|
||||||
|
"level": 13,
|
||||||
|
"avx512dq": false,
|
||||||
|
"svm": false,
|
||||||
|
"full-cpuid-auto-level": true,
|
||||||
|
"hv-reset": false,
|
||||||
|
"invtsc": false,
|
||||||
|
"sse3": true,
|
||||||
|
"sse2": true,
|
||||||
|
"ssbd": true,
|
||||||
|
"est": false,
|
||||||
|
"avx512ifma": false,
|
||||||
|
"tm2": false,
|
||||||
|
"kvm-pv-eoi": true,
|
||||||
|
"cx8": true,
|
||||||
|
"kvm_mmu": false,
|
||||||
|
"kvm-mmu": false,
|
||||||
|
"sse4_2": true,
|
||||||
|
"sse4.2": true,
|
||||||
|
"sse4-2": true,
|
||||||
|
"pge": true,
|
||||||
|
"fill-mtrr-mask": true,
|
||||||
|
"avx512bitalg": false,
|
||||||
|
"nodeid_msr": false,
|
||||||
|
"pdcm": false,
|
||||||
|
"movbe": true,
|
||||||
|
"model": 94,
|
||||||
|
"nrip_save": false,
|
||||||
|
"nrip-save": false,
|
||||||
|
"kvm_pv_unhalt": true,
|
||||||
|
"ssse3": true,
|
||||||
|
"sse4a": false,
|
||||||
|
"invpcid": true,
|
||||||
|
"pdpe1gb": true,
|
||||||
|
"tsc-deadline": true,
|
||||||
|
"fma": true,
|
||||||
|
"cx16": true,
|
||||||
|
"de": true,
|
||||||
|
"enforce": false,
|
||||||
|
"stepping": 3,
|
||||||
|
"xsave": true,
|
||||||
|
"clflush": true,
|
||||||
|
"skinit": false,
|
||||||
|
"tsc": true,
|
||||||
|
"tce": false,
|
||||||
|
"fpu": true,
|
||||||
|
"ibs": false,
|
||||||
|
"ds_cpl": false,
|
||||||
|
"ds-cpl": false,
|
||||||
|
"host-phys-bits": true,
|
||||||
|
"fma4": false,
|
||||||
|
"la57": false,
|
||||||
|
"osvw": false,
|
||||||
|
"check": true,
|
||||||
|
"hv-spinlocks": -1,
|
||||||
|
"pmu": false,
|
||||||
|
"pmm": false,
|
||||||
|
"apic": true,
|
||||||
|
"spec-ctrl": true,
|
||||||
|
"min-xlevel2": 0,
|
||||||
|
"tsc-adjust": true,
|
||||||
|
"tsc_adjust": true,
|
||||||
|
"kvm-steal-time": true,
|
||||||
|
"kvm_steal_time": true,
|
||||||
|
"kvmclock": true,
|
||||||
|
"l3-cache": true,
|
||||||
|
"lwp": false,
|
||||||
|
"ibpb": false,
|
||||||
|
"xop": false,
|
||||||
|
"avx": true,
|
||||||
|
"ospke": false,
|
||||||
|
"ace2": false,
|
||||||
|
"avx512bw": false,
|
||||||
|
"acpi": false,
|
||||||
|
"hv-vapic": false,
|
||||||
|
"fsgsbase": true,
|
||||||
|
"ht": false,
|
||||||
|
"nx": true,
|
||||||
|
"pclmulqdq": true,
|
||||||
|
"mmxext": false,
|
||||||
|
"vaes": false,
|
||||||
|
"popcnt": true,
|
||||||
|
"xsaves": false,
|
||||||
|
"tcg-cpuid": true,
|
||||||
|
"lm": true,
|
||||||
|
"umip": false,
|
||||||
|
"pse": true,
|
||||||
|
"avx2": true,
|
||||||
|
"sep": true,
|
||||||
|
"pclmuldq": true,
|
||||||
|
"virt-ssbd": false,
|
||||||
|
"x-hv-max-vps": -1,
|
||||||
|
"nodeid-msr": false,
|
||||||
|
"md-clear": true,
|
||||||
|
"kvm": true,
|
||||||
|
"misalignsse": false,
|
||||||
|
"min-xlevel": 2147483656,
|
||||||
|
"kvm-pv-unhalt": true,
|
||||||
|
"bmi2": true,
|
||||||
|
"bmi1": true,
|
||||||
|
"realized": false,
|
||||||
|
"tsc_scale": false,
|
||||||
|
"tsc-scale": false,
|
||||||
|
"topoext": false,
|
||||||
|
"hv-vpindex": false,
|
||||||
|
"xlevel2": 0,
|
||||||
|
"clflushopt": true,
|
||||||
|
"kvm-no-smi-migration": false,
|
||||||
|
"monitor": false,
|
||||||
|
"avx512er": false,
|
||||||
|
"pmm-en": false,
|
||||||
|
"pcid": true,
|
||||||
|
"3dnow": false,
|
||||||
|
"erms": true,
|
||||||
|
"lahf-lm": true,
|
||||||
|
"lahf_lm": true,
|
||||||
|
"vpclmulqdq": false,
|
||||||
|
"fxsr-opt": false,
|
||||||
|
"hv-synic": false,
|
||||||
|
"xstore": false,
|
||||||
|
"fxsr_opt": false,
|
||||||
|
"kvm-hint-dedicated": false,
|
||||||
|
"rtm": true,
|
||||||
|
"lmce": true,
|
||||||
|
"hv-time": false,
|
||||||
|
"perfctr-nb": false,
|
||||||
|
"perfctr_nb": false,
|
||||||
|
"ffxsr": false,
|
||||||
|
"rdrand": true,
|
||||||
|
"rdseed": true,
|
||||||
|
"avx512-4vnniw": false,
|
||||||
|
"vmx": false,
|
||||||
|
"vme": true,
|
||||||
|
"dtes64": false,
|
||||||
|
"mtrr": true,
|
||||||
|
"rdtscp": true,
|
||||||
|
"pse36": true,
|
||||||
|
"kvm-pv-tlb-flush": false,
|
||||||
|
"tbm": false,
|
||||||
|
"wdt": false,
|
||||||
|
"pause_filter": false,
|
||||||
|
"sha-ni": false,
|
||||||
|
"model-id": "Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz",
|
||||||
|
"abm": true,
|
||||||
|
"avx512pf": false,
|
||||||
|
"xstore-en": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"id": "model-expansion"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
"return": [
|
||||||
|
{
|
||||||
|
"name": "max",
|
||||||
|
"typename": "max-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "host",
|
||||||
|
"typename": "host-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "base",
|
||||||
|
"typename": "base-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": true,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "qemu64",
|
||||||
|
"typename": "qemu64-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "qemu32",
|
||||||
|
"typename": "qemu32-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phenom",
|
||||||
|
"typename": "phenom-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"mmxext",
|
||||||
|
"fxsr-opt",
|
||||||
|
"3dnowext",
|
||||||
|
"3dnow",
|
||||||
|
"sse4a",
|
||||||
|
"npt"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pentium3",
|
||||||
|
"typename": "pentium3-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pentium2",
|
||||||
|
"typename": "pentium2-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pentium",
|
||||||
|
"typename": "pentium-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "n270",
|
||||||
|
"typename": "n270-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "kvm64",
|
||||||
|
"typename": "kvm64-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "kvm32",
|
||||||
|
"typename": "kvm32-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cpu64-rhel6",
|
||||||
|
"typename": "cpu64-rhel6-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sse4a"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "coreduo",
|
||||||
|
"typename": "coreduo-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "core2duo",
|
||||||
|
"typename": "core2duo-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "athlon",
|
||||||
|
"typename": "athlon-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"mmxext",
|
||||||
|
"3dnowext",
|
||||||
|
"3dnow"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Westmere",
|
||||||
|
"typename": "Westmere-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Westmere-IBRS",
|
||||||
|
"typename": "Westmere-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Skylake-Server",
|
||||||
|
"typename": "Skylake-Server-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"avx512f",
|
||||||
|
"avx512dq",
|
||||||
|
"clwb",
|
||||||
|
"avx512cd",
|
||||||
|
"avx512bw",
|
||||||
|
"avx512vl",
|
||||||
|
"avx512f",
|
||||||
|
"avx512f",
|
||||||
|
"avx512f"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Skylake-Server-IBRS",
|
||||||
|
"typename": "Skylake-Server-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"avx512f",
|
||||||
|
"avx512dq",
|
||||||
|
"clwb",
|
||||||
|
"avx512cd",
|
||||||
|
"avx512bw",
|
||||||
|
"avx512vl",
|
||||||
|
"avx512f",
|
||||||
|
"avx512f",
|
||||||
|
"avx512f"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Skylake-Client",
|
||||||
|
"typename": "Skylake-Client-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Skylake-Client-IBRS",
|
||||||
|
"typename": "Skylake-Client-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SandyBridge",
|
||||||
|
"typename": "SandyBridge-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SandyBridge-IBRS",
|
||||||
|
"typename": "SandyBridge-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Penryn",
|
||||||
|
"typename": "Penryn-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Opteron_G5",
|
||||||
|
"typename": "Opteron_G5-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sse4a",
|
||||||
|
"misalignsse",
|
||||||
|
"xop",
|
||||||
|
"fma4",
|
||||||
|
"tbm"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Opteron_G4",
|
||||||
|
"typename": "Opteron_G4-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sse4a",
|
||||||
|
"misalignsse",
|
||||||
|
"xop",
|
||||||
|
"fma4"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Opteron_G3",
|
||||||
|
"typename": "Opteron_G3-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sse4a",
|
||||||
|
"misalignsse"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Opteron_G2",
|
||||||
|
"typename": "Opteron_G2-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Opteron_G1",
|
||||||
|
"typename": "Opteron_G1-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nehalem",
|
||||||
|
"typename": "Nehalem-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nehalem-IBRS",
|
||||||
|
"typename": "Nehalem-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "IvyBridge",
|
||||||
|
"typename": "IvyBridge-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "IvyBridge-IBRS",
|
||||||
|
"typename": "IvyBridge-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Haswell",
|
||||||
|
"typename": "Haswell-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Haswell-noTSX",
|
||||||
|
"typename": "Haswell-noTSX-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Haswell-noTSX-IBRS",
|
||||||
|
"typename": "Haswell-noTSX-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Haswell-IBRS",
|
||||||
|
"typename": "Haswell-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EPYC",
|
||||||
|
"typename": "EPYC-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sha-ni",
|
||||||
|
"mmxext",
|
||||||
|
"fxsr-opt",
|
||||||
|
"cr8legacy",
|
||||||
|
"sse4a",
|
||||||
|
"misalignsse",
|
||||||
|
"osvw"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "EPYC-IBPB",
|
||||||
|
"typename": "EPYC-IBPB-x86_64-cpu",
|
||||||
|
"unavailable-features": [
|
||||||
|
"sha-ni",
|
||||||
|
"mmxext",
|
||||||
|
"fxsr-opt",
|
||||||
|
"cr8legacy",
|
||||||
|
"sse4a",
|
||||||
|
"misalignsse",
|
||||||
|
"osvw",
|
||||||
|
"ibpb"
|
||||||
|
],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Conroe",
|
||||||
|
"typename": "Conroe-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Broadwell",
|
||||||
|
"typename": "Broadwell-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Broadwell-noTSX",
|
||||||
|
"typename": "Broadwell-noTSX-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Broadwell-noTSX-IBRS",
|
||||||
|
"typename": "Broadwell-noTSX-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Broadwell-IBRS",
|
||||||
|
"typename": "Broadwell-IBRS-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "486",
|
||||||
|
"typename": "486-x86_64-cpu",
|
||||||
|
"unavailable-features": [],
|
||||||
|
"static": false,
|
||||||
|
"migration-safe": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"id": "definitions"
|
||||||
|
}
|
4
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.sig
Normal file
4
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.sig
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
0506e3
|
||||||
|
family: 6 (0x06)
|
||||||
|
model: 94 (0x5e)
|
||||||
|
stepping: 3 (0x03)
|
47
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.xml
Normal file
47
tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5.xml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<!-- Intel(R) Xeon(R) CPU E3-1225 v5 @ 3.30GHz -->
|
||||||
|
<cpudata arch='x86'>
|
||||||
|
<cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x00000016' ebx='0x756e6547' ecx='0x6c65746e' edx='0x49656e69'/>
|
||||||
|
<cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x000506e3' ebx='0x06100800' ecx='0x7ffafbff' edx='0xbfebfbff'/>
|
||||||
|
<cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76036301' ebx='0x00f0b6ff' ecx='0x00000000' edx='0x00c30000'/>
|
||||||
|
<cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000004' ecx_in='0x00' eax='0x1c004121' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000004' ecx_in='0x01' eax='0x1c004122' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000004' ecx_in='0x02' eax='0x1c004143' ebx='0x00c0003f' ecx='0x000003ff' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000004' ecx_in='0x03' eax='0x1c03c163' ebx='0x03c0003f' ecx='0x00001fff' edx='0x00000006'/>
|
||||||
|
<cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x00142120'/>
|
||||||
|
<cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x000027f7' ebx='0x00000002' ecx='0x00000009' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x029c6fbf' ecx='0x00000000' edx='0x9c002400'/>
|
||||||
|
<cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x07300804' ebx='0x00000000' ecx='0x00000000' edx='0x00000603'/>
|
||||||
|
<cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000001' ecx='0x00000100' edx='0x00000006'/>
|
||||||
|
<cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000004' ebx='0x00000004' ecx='0x00000201' edx='0x00000006'/>
|
||||||
|
<cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x0000001f' ebx='0x00000440' ecx='0x00000440' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x000003c0' ecx='0x00000100' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x02' eax='0x00000100' ebx='0x00000240' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x03' eax='0x00000040' ebx='0x000003c0' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x04' eax='0x00000040' ebx='0x00000400' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000d' ecx_in='0x08' eax='0x00000080' ebx='0x00000000' ecx='0x00000001' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x0000000f' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000010' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000011' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000012' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000013' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000001' ebx='0x0000000f' ecx='0x00000007' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000014' ecx_in='0x01' eax='0x02490002' ebx='0x003f3fff' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000015' ecx_in='0x00' eax='0x00000002' ebx='0x00000114' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x00000016' ecx_in='0x00' eax='0x00000ce4' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x80000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/>
|
||||||
|
<cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x65746e49' ebx='0x2952286c' ecx='0x6f655820' edx='0x2952286e'/>
|
||||||
|
<cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x55504320' ebx='0x2d334520' ecx='0x35323231' edx='0x20357620'/>
|
||||||
|
<cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x2e332040' ebx='0x48473033' ecx='0x0000007a' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000005' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01006040' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
|
||||||
|
<cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00003027' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000ce4' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/>
|
||||||
|
<cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000ce4' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/>
|
||||||
|
</cpudata>
|
@@ -740,7 +740,7 @@ int qemuTestDriverInit(virQEMUDriver *driver)
|
|||||||
|
|
||||||
/* Using /dev/null for libDir and cacheDir automatically produces errors
|
/* Using /dev/null for libDir and cacheDir automatically produces errors
|
||||||
* upon attempt to use any of them */
|
* upon attempt to use any of them */
|
||||||
driver->qemuCapsCache = virQEMUCapsCacheNew("/dev/null", "/dev/null", 0, 0, 0);
|
driver->qemuCapsCache = virQEMUCapsCacheNew("/dev/null", "/dev/null", 0, 0);
|
||||||
if (!driver->qemuCapsCache)
|
if (!driver->qemuCapsCache)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user