mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 11:31:16 +00:00
numatune: create new module for numatune
There are many places with numatune-related code that should be put into special numatune_conf and this patch creates a basis for that. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
parent
992000e6d8
commit
293d5f21b6
@ -252,7 +252,8 @@ DOMAIN_CONF_SOURCES = \
|
|||||||
conf/domain_conf.c conf/domain_conf.h \
|
conf/domain_conf.c conf/domain_conf.h \
|
||||||
conf/domain_audit.c conf/domain_audit.h \
|
conf/domain_audit.c conf/domain_audit.h \
|
||||||
conf/domain_nwfilter.c conf/domain_nwfilter.h \
|
conf/domain_nwfilter.c conf/domain_nwfilter.h \
|
||||||
conf/snapshot_conf.c conf/snapshot_conf.h
|
conf/snapshot_conf.c conf/snapshot_conf.h \
|
||||||
|
conf/numatune_conf.c conf/numatune_conf.h
|
||||||
|
|
||||||
OBJECT_EVENT_SOURCES = \
|
OBJECT_EVENT_SOURCES = \
|
||||||
conf/object_event.c conf/object_event.h \
|
conf/object_event.c conf/object_event.h \
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
# include "virhash.h"
|
# include "virhash.h"
|
||||||
# include "virsocketaddr.h"
|
# include "virsocketaddr.h"
|
||||||
# include "nwfilter_params.h"
|
# include "nwfilter_params.h"
|
||||||
|
# include "numatune_conf.h"
|
||||||
# include "virnetdevmacvlan.h"
|
# include "virnetdevmacvlan.h"
|
||||||
# include "virsysinfo.h"
|
# include "virsysinfo.h"
|
||||||
# include "virnetdevvportprofile.h"
|
# include "virnetdevvportprofile.h"
|
||||||
@ -46,7 +47,6 @@
|
|||||||
# include "device_conf.h"
|
# include "device_conf.h"
|
||||||
# include "virbitmap.h"
|
# include "virbitmap.h"
|
||||||
# include "virstoragefile.h"
|
# include "virstoragefile.h"
|
||||||
# include "virnuma.h"
|
|
||||||
# include "virseclabel.h"
|
# include "virseclabel.h"
|
||||||
|
|
||||||
/* forward declarations of all device types, required by
|
/* forward declarations of all device types, required by
|
||||||
|
37
src/conf/numatune_conf.c
Normal file
37
src/conf/numatune_conf.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* numatune_conf.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 2014 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include "numatune_conf.h"
|
||||||
|
|
||||||
|
VIR_ENUM_IMPL(virDomainNumatuneMemMode,
|
||||||
|
VIR_DOMAIN_NUMATUNE_MEM_LAST,
|
||||||
|
"strict",
|
||||||
|
"preferred",
|
||||||
|
"interleave");
|
||||||
|
|
||||||
|
VIR_ENUM_IMPL(virNumaTuneMemPlacementMode,
|
||||||
|
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_LAST,
|
||||||
|
"default",
|
||||||
|
"static",
|
||||||
|
"auto");
|
54
src/conf/numatune_conf.h
Normal file
54
src/conf/numatune_conf.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* numatune_conf.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 2014 Red Hat, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library. If not, see
|
||||||
|
* <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* Author: Martin Kletzander <mkletzan@redhat.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __NUMATUNE_CONF_H__
|
||||||
|
# define __NUMATUNE_CONF_H__
|
||||||
|
|
||||||
|
# include "internal.h"
|
||||||
|
# include "virutil.h"
|
||||||
|
# include "virbitmap.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_DEFAULT = 0,
|
||||||
|
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_STATIC,
|
||||||
|
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_AUTO,
|
||||||
|
|
||||||
|
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_LAST
|
||||||
|
} virDomainNumaTuneMemPlacementMode;
|
||||||
|
|
||||||
|
VIR_ENUM_DECL(virNumaTuneMemPlacementMode)
|
||||||
|
|
||||||
|
VIR_ENUM_DECL(virDomainNumatuneMemMode)
|
||||||
|
|
||||||
|
typedef struct _virNumaTuneDef virNumaTuneDef;
|
||||||
|
typedef virNumaTuneDef *virNumaTuneDefPtr;
|
||||||
|
struct _virNumaTuneDef {
|
||||||
|
struct {
|
||||||
|
virBitmapPtr nodemask;
|
||||||
|
int mode; /* enum virDomainNumatuneMemMode */
|
||||||
|
int placement_mode; /* enum virNumaTuneMemPlacementMode */
|
||||||
|
} memory; /* pinning for all the memory */
|
||||||
|
|
||||||
|
/* Future NUMA tuning related stuff should go here. */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __NUMATUNE_CONF_H__ */
|
@ -606,6 +606,13 @@ virNodeDeviceObjRemove;
|
|||||||
virNodeDeviceObjUnlock;
|
virNodeDeviceObjUnlock;
|
||||||
|
|
||||||
|
|
||||||
|
# conf/numatune_conf.h
|
||||||
|
virDomainNumatuneMemModeTypeFromString;
|
||||||
|
virDomainNumatuneMemModeTypeToString;
|
||||||
|
virNumaTuneMemPlacementModeTypeFromString;
|
||||||
|
virNumaTuneMemPlacementModeTypeToString;
|
||||||
|
|
||||||
|
|
||||||
# conf/nwfilter_conf.h
|
# conf/nwfilter_conf.h
|
||||||
virNWFilterCallbackDriversLock;
|
virNWFilterCallbackDriversLock;
|
||||||
virNWFilterCallbackDriversUnlock;
|
virNWFilterCallbackDriversUnlock;
|
||||||
@ -1680,8 +1687,6 @@ virNodeSuspendGetTargetMask;
|
|||||||
|
|
||||||
|
|
||||||
# util/virnuma.h
|
# util/virnuma.h
|
||||||
virDomainNumatuneMemModeTypeFromString;
|
|
||||||
virDomainNumatuneMemModeTypeToString;
|
|
||||||
virNumaGetAutoPlacementAdvice;
|
virNumaGetAutoPlacementAdvice;
|
||||||
virNumaGetDistances;
|
virNumaGetDistances;
|
||||||
virNumaGetMaxNode;
|
virNumaGetMaxNode;
|
||||||
@ -1691,8 +1696,7 @@ virNumaGetPages;
|
|||||||
virNumaIsAvailable;
|
virNumaIsAvailable;
|
||||||
virNumaNodeIsAvailable;
|
virNumaNodeIsAvailable;
|
||||||
virNumaSetupMemoryPolicy;
|
virNumaSetupMemoryPolicy;
|
||||||
virNumaTuneMemPlacementModeTypeFromString;
|
|
||||||
virNumaTuneMemPlacementModeTypeToString;
|
|
||||||
|
|
||||||
# util/virobject.h
|
# util/virobject.h
|
||||||
virClassForObject;
|
virClassForObject;
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
#include "vircommand.h"
|
#include "vircommand.h"
|
||||||
#include "virbitmap.h"
|
#include "virbitmap.h"
|
||||||
#include "virnodesuspend.h"
|
#include "virnodesuspend.h"
|
||||||
|
#include "virnuma.h"
|
||||||
#include "qemu_monitor.h"
|
#include "qemu_monitor.h"
|
||||||
#include "virstring.h"
|
#include "virstring.h"
|
||||||
#include "qemu_hostdev.h"
|
#include "qemu_hostdev.h"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* virnuma.c: helper APIs for managing numa
|
* virnuma.c: helper APIs for managing numa
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2013 Red Hat, Inc.
|
* Copyright (C) 2011-2014 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -51,17 +51,6 @@
|
|||||||
|
|
||||||
VIR_LOG_INIT("util.numa");
|
VIR_LOG_INIT("util.numa");
|
||||||
|
|
||||||
VIR_ENUM_IMPL(virDomainNumatuneMemMode,
|
|
||||||
VIR_DOMAIN_NUMATUNE_MEM_LAST,
|
|
||||||
"strict",
|
|
||||||
"preferred",
|
|
||||||
"interleave");
|
|
||||||
|
|
||||||
VIR_ENUM_IMPL(virNumaTuneMemPlacementMode,
|
|
||||||
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_LAST,
|
|
||||||
"default",
|
|
||||||
"static",
|
|
||||||
"auto");
|
|
||||||
|
|
||||||
#if HAVE_NUMAD
|
#if HAVE_NUMAD
|
||||||
char *
|
char *
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* virnuma.h: helper APIs for managing numa
|
* virnuma.h: helper APIs for managing numa
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2013 Red Hat, Inc.
|
* Copyright (C) 2011-2014 Red Hat, Inc.
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -23,32 +23,10 @@
|
|||||||
# define __VIR_NUMA_H__
|
# define __VIR_NUMA_H__
|
||||||
|
|
||||||
# include "internal.h"
|
# include "internal.h"
|
||||||
|
# include "numatune_conf.h"
|
||||||
# include "virbitmap.h"
|
# include "virbitmap.h"
|
||||||
# include "virutil.h"
|
# include "virutil.h"
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_DEFAULT = 0,
|
|
||||||
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_STATIC,
|
|
||||||
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_AUTO,
|
|
||||||
|
|
||||||
VIR_NUMA_TUNE_MEM_PLACEMENT_MODE_LAST
|
|
||||||
} virNumaTuneMemPlacementMode;
|
|
||||||
|
|
||||||
VIR_ENUM_DECL(virNumaTuneMemPlacementMode)
|
|
||||||
|
|
||||||
VIR_ENUM_DECL(virDomainNumatuneMemMode)
|
|
||||||
|
|
||||||
typedef struct _virNumaTuneDef virNumaTuneDef;
|
|
||||||
typedef virNumaTuneDef *virNumaTuneDefPtr;
|
|
||||||
struct _virNumaTuneDef {
|
|
||||||
struct {
|
|
||||||
virBitmapPtr nodemask;
|
|
||||||
int mode;
|
|
||||||
int placement_mode; /* enum virNumaTuneMemPlacementMode */
|
|
||||||
} memory;
|
|
||||||
|
|
||||||
/* Future NUMA tuning related stuff should go here. */
|
|
||||||
};
|
|
||||||
|
|
||||||
char *virNumaGetAutoPlacementAdvice(unsigned short vcups,
|
char *virNumaGetAutoPlacementAdvice(unsigned short vcups,
|
||||||
unsigned long long balloon);
|
unsigned long long balloon);
|
||||||
|
Loading…
Reference in New Issue
Block a user