[libvirt] [PATCH 1/3 V7] add nodeGetCPUmap() for getting available CPU IDs in a cpumap.
Eric Blake
eblake at redhat.com
Wed Mar 7 00:55:15 UTC 2012
On 03/01/2012 07:54 PM, Lai Jiangshan wrote:
> From: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
>
> Changelog:
> - fixed typos.
> - fixed string scan routine.
While useful for reviews, information like this doesn't help the
permanent libvirt.git log, so it is best to place it after the --- divider.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
> Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
> ---
> src/libvirt_private.syms | 1 +
> src/nodeinfo.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++
> src/nodeinfo.h | 3 ++
> 3 files changed, 70 insertions(+), 0 deletions(-)
>
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index a104e70..0f4e64c 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -793,6 +793,7 @@ virNodeDeviceObjUnlock;
>
> # nodeinfo.h
> nodeCapsInitNUMA;
> +nodeGetCPUmap;
> nodeGetCPUStats;
> nodeGetCellsFreeMemory;
> nodeGetFreeMemory;
> diff --git a/src/nodeinfo.c b/src/nodeinfo.c
> index e0b66f7..2950306 100644
> --- a/src/nodeinfo.c
> +++ b/src/nodeinfo.c
> @@ -31,6 +31,7 @@
> #include <dirent.h>
> #include <sys/utsname.h>
> #include <sched.h>
> +#include "conf/domain_conf.h"
I'm not convinced that this cross-directory include is safe, but my
recent syntax check doesn't flag it (which may point to a weakness in
the syntax check). But if it needs fixing, we can do that later.
> +const char *
> +nodeGetCPUmap(virConnectPtr conn ATTRIBUTE_UNUSED,
> + int *max_id ATTRIBUTE_UNUSED,
> + const char *mapname ATTRIBUTE_UNUSED)
This function is returning malloc'd memory; our convention is to type it
'char *', not 'const char *', to make it obvious that the caller is
responsible to free the data ('const char *' should be reserved for
static data that the caller need not free).
> + return cpumap;
> +#else
> + nodeReportError(VIR_ERR_NO_SUPPORT, "%s",
Indentation.
ACK with this squashed in:
diff --git i/src/nodeinfo.c w/src/nodeinfo.c
index 9b19440..709e94a 100644
--- i/src/nodeinfo.c
+++ w/src/nodeinfo.c
@@ -1,7 +1,7 @@
/*
* nodeinfo.c: Helper routines for OS specific node information
*
- * Copyright (C) 2006-2008, 2010-2011 Red Hat, Inc.
+ * Copyright (C) 2006-2008, 2010-2012 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -576,7 +576,7 @@ cleanup:
* and max cpu is 7. The map file shows 0-4,6-7. This function parses
* it and returns cpumap.
*/
-static const char *
+static char *
linuxParseCPUmap(int *max_cpuid, const char *path)
{
char *map = NULL;
@@ -754,14 +754,14 @@ int nodeGetMemoryStats(virConnectPtr conn
ATTRIBUTE_UNUSED,
#endif
}
-const char *
+char *
nodeGetCPUmap(virConnectPtr conn ATTRIBUTE_UNUSED,
int *max_id ATTRIBUTE_UNUSED,
const char *mapname ATTRIBUTE_UNUSED)
{
#ifdef __linux__
char *path;
- const char *cpumap;
+ char *cpumap;
if (virAsprintf(&path, CPU_SYS_PATH "/%s", mapname) < 0) {
virReportOOMError();
@@ -772,9 +772,9 @@ nodeGetCPUmap(virConnectPtr conn ATTRIBUTE_UNUSED,
VIR_FREE(path);
return cpumap;
#else
- nodeReportError(VIR_ERR_NO_SUPPORT, "%s",
- _("node cpumap not implemented on this platform"));
- return NULL;
+ nodeReportError(VIR_ERR_NO_SUPPORT, "%s",
+ _("node cpumap not implemented on this platform"));
+ return NULL;
#endif
}
diff --git i/src/nodeinfo.h w/src/nodeinfo.h
index 852e19d..7d2ef1d 100644
--- i/src/nodeinfo.h
+++ w/src/nodeinfo.h
@@ -1,7 +1,7 @@
/*
* nodeinfo.c: Helper routines for OS specific node information
*
- * Copyright (C) 2006-2008, 2011 Red Hat, Inc.
+ * Copyright (C) 2006-2008, 2011-2012 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange
*
* This library is free software; you can redistribute it and/or
@@ -46,7 +46,7 @@ int nodeGetCellsFreeMemory(virConnectPtr conn,
int maxCells);
unsigned long long nodeGetFreeMemory(virConnectPtr conn);
-const char *nodeGetCPUmap(virConnectPtr conn,
- int *max_id,
- const char *mapname);
+char *nodeGetCPUmap(virConnectPtr conn,
+ int *max_id,
+ const char *mapname);
#endif /* __VIR_NODEINFO_H__*/
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120306/87e10866/attachment-0001.sig>
More information about the libvir-list
mailing list