}
if (validTIDs)
- VIR_DEBUG("vCPU[%zu] PID %llu is valid",
- i, (unsigned long long)info[i].tid);
+ VIR_DEBUG("vCPU[%zu] PID %llu is valid "
+ "(node=%d socket=%d die=%d core=%d thread=%d)",
+ i, (unsigned long long)info[i].tid,
+ info[i].node_id,
+ info[i].socket_id,
+ info[i].die_id,
+ info[i].core_id,
+ info[i].thread_id);
}
VIR_DEBUG("Extracting vCPU information validTIDs=%d", validTIDs);
cpus[i].id = 0;
cpus[i].qemu_id = -1;
cpus[i].socket_id = -1;
+ cpus[i].die_id = -1;
cpus[i].core_id = -1;
cpus[i].thread_id = -1;
cpus[i].node_id = -1;
vcpus[mastervcpu].hotpluggable = !!hotplugvcpus[i].alias ||
!vcpus[mastervcpu].online;
vcpus[mastervcpu].socket_id = hotplugvcpus[i].socket_id;
+ vcpus[mastervcpu].die_id = hotplugvcpus[i].die_id;
vcpus[mastervcpu].core_id = hotplugvcpus[i].core_id;
vcpus[mastervcpu].thread_id = hotplugvcpus[i].thread_id;
vcpus[mastervcpu].node_id = hotplugvcpus[i].node_id;
/* topology information -1 if qemu didn't report given parameter */
int node_id;
int socket_id;
+ int die_id;
int core_id;
int thread_id;
/* topology info for hotplug purposes. Hotplug of given vcpu impossible if
* all entries are -1 */
int socket_id;
+ int die_id;
int core_id;
int thread_id;
int node_id;
entry->node_id = -1;
entry->socket_id = -1;
+ entry->die_id = -1;
entry->core_id = -1;
entry->thread_id = -1;
ignore_value(virJSONValueObjectGetNumberInt(props, "node-id", &entry->node_id));
ignore_value(virJSONValueObjectGetNumberInt(props, "socket-id", &entry->socket_id));
+ ignore_value(virJSONValueObjectGetNumberInt(props, "die-id", &entry->die_id));
ignore_value(virJSONValueObjectGetNumberInt(props, "core-id", &entry->core_id));
ignore_value(virJSONValueObjectGetNumberInt(props, "thread-id", &entry->thread_id));
if (a->socket_id != b->socket_id)
return a->socket_id - b->socket_id;
+ if (a->die_id != b->die_id)
+ return a->die_id - b->die_id;
+
if (a->core_id != b->core_id)
return a->core_id - b->core_id;