On Sat, Jan 19, 2013 at 12:06:41AM +0100, Peter Krempa wrote:
This will allow storing additional topology data in the NUMA
topology
definition.
This patch changes the storage type and fixes fallback of the change
s/fallback/fallout/
across the drivers using it.
This patch also changes semantics of adding new NUMA cell information.
Until now the data were re-allocated and copied to the topology
definition. This patch changes the addition function to steal the
pointer to a pre-allocated structure to simplify the code.
---
src/conf/capabilities.c | 29 ++++++++++++++++++-----------
src/conf/capabilities.h | 14 ++++++++++++--
src/nodeinfo.c | 22 ++++++++++++----------
src/qemu/qemu_process.c | 2 +-
src/test/test_driver.c | 15 ++++++++++++---
src/xen/xend_internal.c | 24 +++++++++++++-----------
6 files changed, 68 insertions(+), 38 deletions(-)
diff --git a/src/conf/capabilities.c b/src/conf/capabilities.c
index 0d2512e..814c4d6 100644
--- a/src/conf/capabilities.c
+++ b/src/conf/capabilities.c
@@ -65,12 +65,26 @@ virCapabilitiesNew(virArch hostarch,
return caps;
}
+void
+virCapabilitiesFreeHostNUMACellCPU(virCapsHostNUMACellCPUPtr cpu)
+{
+ if (!cpu)
+ return;
+
+ VIR_FREE(cpu->siblings_list);
+}
+
static void
virCapabilitiesFreeHostNUMACell(virCapsHostNUMACellPtr cell)
{
+ int i;
s/int/size_t/
+
if (cell == NULL)
return;
+ for (i = 0; i < cell->ncpus; i++)
+ virCapabilitiesFreeHostNUMACellCPU(cell->cpus + i);
+
VIR_FREE(cell->cpus);
VIR_FREE(cell);
}
diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
index 19b99c6..124d8c1 100644
--- a/src/conf/capabilities.h
+++ b/src/conf/capabilities.h
@@ -84,12 +84,21 @@ struct _virCapsGuest {
virCapsGuestFeaturePtr *features;
};
+typedef struct _virCapsHostNUMACellCPU virCapsHostNUMACellCPU;
+typedef virCapsHostNUMACellCPU *virCapsHostNUMACellCPUPtr;
+struct _virCapsHostNUMACellCPU {
+ int id;
+ int socket_id;
+ int core_id;
s/int/unsigned/ since we don't need to store -ve numbers
+ char *siblings_list;
Agree that this would be nicer as a virBitmap
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 477104f..dffe7d1 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -79,9 +79,11 @@ freebsdNodeGetCPUCount(void)
#ifdef __linux__
# define CPUINFO_PATH "/proc/cpuinfo"
# define SYSFS_SYSTEM_PATH "/sys/devices/system"
+# define SYSFS_CPU_PATH SYSFS_SYSTEM_PATH"/cpu"
# define PROCSTAT_PATH "/proc/stat"
# define MEMINFO_PATH "/proc/meminfo"
# define SYSFS_MEMORY_SHARED_PATH "/sys/kernel/mm/ksm"
+# define SYSFS_THREAD_SIBLINGS_LIST_LENGHT_MAX 1024
I think these two additions were meant for the next patch
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|