Roman Bogorodskiy wrote:
Martin Kletzander wrote:
> There were numerous places where numatune configuration (and thus
> domain config as well) was changed in different ways. On some
> places this even resulted in persistent domain definition not to be
> stable (it would change with daemon's restart).
>
> In order to uniformly change how numatune config is dealt with, all
> the internals are now accessible directly only in numatune_conf.c and
> outside this file accessors must be used.
>
> Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
> ---
> po/POTFILES.in | 1 +
> src/conf/domain_conf.c | 159 ++---------
> src/conf/domain_conf.h | 8 +-
> src/conf/numatune_conf.c | 318 +++++++++++++++++++++
> src/conf/numatune_conf.h | 72 ++++-
> src/libvirt_private.syms | 11 +
> src/lxc/lxc_cgroup.c | 19 +-
> src/lxc/lxc_controller.c | 5 +-
> src/lxc/lxc_native.c | 15 +-
> src/parallels/parallels_driver.c | 7 +-
> src/qemu/qemu_cgroup.c | 23 +-
> src/qemu/qemu_driver.c | 84 +++---
> src/qemu/qemu_process.c | 8 +-
> src/util/virnuma.c | 48 ++--
> src/util/virnuma.h | 2 +-
> .../qemuxml2argv-numatune-auto-prefer.xml | 29 ++
> .../qemuxml2xmlout-numatune-auto-prefer.xml | 29 ++
> tests/qemuxml2xmltest.c | 2 +
> 18 files changed, 555 insertions(+), 285 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-numatune-auto-prefer.xml
> create mode 100644
tests/qemuxml2xmloutdata/qemuxml2xmlout-numatune-auto-prefer.xml
Looks like this breaks build with clang:
gmake[3]: Entering directory `/usr/home/novel/code/libvirt/src'
CC util/libvirt_util_la-virclosecallbacks.lo
In file included from util/virclosecallbacks.c:28:
In file included from ../src/util/virclosecallbacks.h:28:
../src/conf/domain_conf.h:70:35: error: redefinition of typedef
'virDomainNumatune' is a C11 feature [-Werror,-Wtypedef-redefinition]
typedef struct _virDomainNumatune virDomainNumatune;
^
../src/conf/numatune_conf.h:43:35: note: previous definition is here
typedef struct _virDomainNumatune virDomainNumatune;
^
In file included from util/virclosecallbacks.c:28:
In file included from ../src/util/virclosecallbacks.h:28:
../src/conf/domain_conf.h:71:28: error: redefinition of typedef
'virDomainNumatunePtr' is a C11 feature [-Werror,-Wtypedef-redefinition]
typedef virDomainNumatune *virDomainNumatunePtr;
^
../src/conf/numatune_conf.h:44:28: note: previous definition is here
typedef virDomainNumatune *virDomainNumatunePtr;
^
In file included from util/virclosecallbacks.c:28:
In file included from ../src/util/virclosecallbacks.h:28:
../src/conf/domain_conf.h:1857:30: error: redefinition of typedef 'virDomainDef'
is a C11 feature [-Werror,-Wtypedef-redefinition]
typedef struct _virDomainDef virDomainDef;
^
../src/conf/numatune_conf.h:39:30: note: previous definition is here
typedef struct _virDomainDef virDomainDef;
^
In file included from util/virclosecallbacks.c:28:
In file included from ../src/util/virclosecallbacks.h:28:
../src/conf/domain_conf.h:1858:23: error: redefinition of typedef
'virDomainDefPtr' is a C11 feature [-Werror,-Wtypedef-redefinition]
typedef virDomainDef *virDomainDefPtr;
^
../src/conf/numatune_conf.h:40:23: note: previous definition is here
typedef virDomainDef *virDomainDefPtr;
^
4 errors generated.
Should we probably drop the repeating definitions from domain_conf.h as
we're including numatune_conf.h anyway?
I got it fixed by the following diff:
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 4c9b7e8..e4d7988 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -67,9 +67,6 @@ typedef virDomainFSDef *virDomainFSDefPtr;
typedef struct _virDomainNetDef virDomainNetDef;
typedef virDomainNetDef *virDomainNetDefPtr;
-typedef struct _virDomainNumatune virDomainNumatune;
-typedef virDomainNumatune *virDomainNumatunePtr;
-
typedef struct _virDomainInputDef virDomainInputDef;
typedef virDomainInputDef *virDomainInputDefPtr;
@@ -1854,8 +1851,6 @@ struct _virDomainResourceDef {
* NB: if adding to this struct, virDomainDefCheckABIStability
* may well need an update
*/
-typedef struct _virDomainDef virDomainDef;
-typedef virDomainDef *virDomainDefPtr;
struct _virDomainDef {
int virtType;
int id;
I didn't check it beyond build and check/syntax-check though. Anyway, it
doesn't look quite clean to have typedefs in numatune_conf.h for the
struct declared in domain_conf.h.
Roman Bogorodskiy