mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
Fix nodeinfo compat with Xen 3.2.0
This commit is contained in:
parent
1be1fe69f5
commit
d575a83f81
@ -1,3 +1,8 @@
|
||||
Mon Dec 17 18:03:00 UTC 2007 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/xend_internal.c: Compatability with Xen 3.2.0 changed
|
||||
fields for physinfo data used by virNodeInfoPtr.
|
||||
|
||||
Mon Dec 17 17:38:00 UTC 2007 Richard W.M. Jones <rjones@redhat.com>
|
||||
|
||||
Fix remote_internal.c error handling of qparam_get_query
|
||||
|
@ -1288,6 +1288,8 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
||||
if (hvm) {
|
||||
virBufferVSprintf(buf, " <type>hvm</type>\n");
|
||||
tmp = sexpr_node(node, "domain/image/hvm/kernel");
|
||||
if (tmp == NULL)
|
||||
tmp = sexpr_node(node, "domain/image/hvm/loader");
|
||||
if (tmp == NULL && !bootloader) {
|
||||
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
|
||||
_("domain information incomplete, missing kernel & bootloader"));
|
||||
@ -1893,11 +1895,11 @@ sexpr_to_xend_node_info(struct sexpr *root, virNodeInfoPtr info)
|
||||
return (-1);
|
||||
|
||||
machine = sexpr_node(root, "node/machine");
|
||||
if (machine == NULL)
|
||||
if (machine == NULL) {
|
||||
info->model[0] = 0;
|
||||
else {
|
||||
} else {
|
||||
snprintf(&info->model[0], sizeof(info->model) - 1, "%s", machine);
|
||||
info->model[sizeof(info->model) - 1] = 0;
|
||||
info->model[sizeof(info->model) - 1] = 0;
|
||||
}
|
||||
info->memory = (unsigned long) sexpr_u64(root, "node/total_memory") << 10;
|
||||
|
||||
@ -1905,6 +1907,20 @@ sexpr_to_xend_node_info(struct sexpr *root, virNodeInfoPtr info)
|
||||
info->mhz = sexpr_int(root, "node/cpu_mhz");
|
||||
info->nodes = sexpr_int(root, "node/nr_nodes");
|
||||
info->sockets = sexpr_int(root, "node/sockets_per_node");
|
||||
/* Xen 3.2.0 replaces sockets_per_node with 'nr_cpus'.
|
||||
* Old Xen calculated sockets_per_node using its internal
|
||||
* nr_cpus / (nodes*cores*threads), so fake it ourselves
|
||||
* in the same way
|
||||
*/
|
||||
if (info->sockets == 0) {
|
||||
int nr_cpus = sexpr_int(root, "node/nr_cpus");
|
||||
info->sockets = nr_cpus / (info->nodes * info->cores * info->threads);
|
||||
/* Should already be fine, but for sanity make
|
||||
* sure we have at least one socket
|
||||
*/
|
||||
if (info->sockets == 0)
|
||||
info->sockets = 1;
|
||||
}
|
||||
info->cores = sexpr_int(root, "node/cores_per_socket");
|
||||
info->threads = sexpr_int(root, "node/threads_per_core");
|
||||
return (0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user