virBitmapFree(def->cputune.iothreadsched[i].ids);
VIR_FREE(def->cputune.iothreadsched);
- virDomainNumatuneFree(def->numatune);
+ virDomainNumaFree(def->numa);
virSysinfoDefFree(def->sysinfo);
goto error;
}
- if (virDomainNumatuneParseXML(&def->numatune,
+ if (virDomainNumatuneParseXML(&def->numa,
def->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
def->cpu ? def->cpu->ncells : 0,
ctxt) < 0)
goto error;
- if (virDomainNumatuneHasPlacementAuto(def->numatune) &&
+ if (virDomainNumatuneHasPlacementAuto(def->numa) &&
!def->cpumask && !def->cputune.vcpupin &&
!def->cputune.emulatorpin && !def->cputune.iothreadspin)
def->placement_mode = VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO;
if (cputune)
virBufferAddLit(buf, "</cputune>\n");
- if (virDomainNumatuneFormatXML(buf, def->numatune) < 0)
+ if (virDomainNumatuneFormatXML(buf, def->numa) < 0)
goto error;
if (def->resource)
if (def->placement_mode == VIR_DOMAIN_CPU_PLACEMENT_MODE_AUTO)
return true;
- if (virDomainNumatuneHasPlacementAuto(def->numatune))
+ if (virDomainNumatuneHasPlacementAuto(def->numa))
return true;
return false;
virDomainCputune cputune;
- virDomainNumatunePtr numatune;
+ virDomainNumaPtr numa;
virDomainResourceDefPtr resource;
virDomainIdMapDef idmap;
"static",
"auto");
-typedef struct _virDomainNumatuneNode virDomainNumatuneNode;
-typedef virDomainNumatuneNode *virDomainNumatuneNodePtr;
+typedef struct _virDomainNumaNode virDomainNumaNode;
+typedef virDomainNumaNode *virDomainNumaNodePtr;
-struct _virDomainNumatune {
+struct _virDomainNuma {
struct {
bool specified;
virBitmapPtr nodeset;
virDomainNumatunePlacement placement;
} memory; /* pinning for all the memory */
- struct _virDomainNumatuneNode {
+ struct _virDomainNumaNode {
virBitmapPtr nodeset;
virDomainNumatuneMemMode mode;
} *mem_nodes; /* fine tuning per guest node */
inline bool
-virDomainNumatuneNodeSpecified(virDomainNumatunePtr numatune,
+virDomainNumatuneNodeSpecified(virDomainNumaPtr numatune,
int cellid)
{
if (numatune &&
}
static int
-virDomainNumatuneNodeParseXML(virDomainNumatunePtr *numatunePtr,
+virDomainNumatuneNodeParseXML(virDomainNumaPtr *numatunePtr,
size_t ncells,
xmlXPathContextPtr ctxt)
{
int n = 0;
int ret = -1;
size_t i = 0;
- virDomainNumatunePtr numatune = *numatunePtr;
+ virDomainNumaPtr numatune = *numatunePtr;
xmlNodePtr *nodes = NULL;
if ((n = virXPathNodeSet("./numatune/memnode", ctxt, &nodes)) < 0) {
for (i = 0; i < n; i++) {
int mode = 0;
unsigned int cellid = 0;
- virDomainNumatuneNodePtr mem_node = NULL;
+ virDomainNumaNodePtr mem_node = NULL;
xmlNodePtr cur_node = nodes[i];
tmp = virXMLPropString(cur_node, "cellid");
}
int
-virDomainNumatuneParseXML(virDomainNumatunePtr *numatunePtr,
+virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr,
bool placement_static,
size_t ncells,
xmlXPathContextPtr ctxt)
node = virXPathNode("./numatune/memory[1]", ctxt);
if (*numatunePtr) {
- virDomainNumatuneFree(*numatunePtr);
+ virDomainNumaFree(*numatunePtr);
*numatunePtr = NULL;
}
int
virDomainNumatuneFormatXML(virBufferPtr buf,
- virDomainNumatunePtr numatune)
+ virDomainNumaPtr numatune)
{
const char *tmp = NULL;
char *nodeset = NULL;
}
for (i = 0; i < numatune->nmem_nodes; i++) {
- virDomainNumatuneNodePtr mem_node = &numatune->mem_nodes[i];
+ virDomainNumaNodePtr mem_node = &numatune->mem_nodes[i];
if (!mem_node->nodeset)
continue;
}
void
-virDomainNumatuneFree(virDomainNumatunePtr numatune)
+virDomainNumaFree(virDomainNumaPtr numa)
{
size_t i = 0;
- if (!numatune)
+ if (!numa)
return;
- virBitmapFree(numatune->memory.nodeset);
- for (i = 0; i < numatune->nmem_nodes; i++)
- virBitmapFree(numatune->mem_nodes[i].nodeset);
- VIR_FREE(numatune->mem_nodes);
+ virBitmapFree(numa->memory.nodeset);
+ for (i = 0; i < numa->nmem_nodes; i++)
+ virBitmapFree(numa->mem_nodes[i].nodeset);
+ VIR_FREE(numa->mem_nodes);
- VIR_FREE(numatune);
+ VIR_FREE(numa);
}
virDomainNumatuneMemMode
-virDomainNumatuneGetMode(virDomainNumatunePtr numatune,
+virDomainNumatuneGetMode(virDomainNumaPtr numatune,
int cellid)
{
if (!numatune)
}
virBitmapPtr
-virDomainNumatuneGetNodeset(virDomainNumatunePtr numatune,
+virDomainNumatuneGetNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
int cellid)
{
}
char *
-virDomainNumatuneFormatNodeset(virDomainNumatunePtr numatune,
+virDomainNumatuneFormatNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
int cellid)
{
int
-virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
virBitmapPtr *retNodeset,
int cellid)
int
-virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
+virDomainNumatuneMaybeFormatNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
char **mask,
int cellid)
}
int
-virDomainNumatuneSet(virDomainNumatunePtr *numatunePtr,
+virDomainNumatuneSet(virDomainNumaPtr *numatunePtr,
bool placement_static,
int placement,
int mode,
{
bool created = false;
int ret = -1;
- virDomainNumatunePtr numatune;
+ virDomainNumaPtr numatune;
/* No need to do anything in this case */
if (mode == -1 && placement == -1 && !nodeset)
cleanup:
if (ret < 0 && created) {
- virDomainNumatuneFree(*numatunePtr);
+ virDomainNumaFree(*numatunePtr);
*numatunePtr = NULL;
}
}
static bool
-virDomainNumatuneNodesEqual(virDomainNumatunePtr n1,
- virDomainNumatunePtr n2)
+virDomainNumaNodesEqual(virDomainNumaPtr n1,
+ virDomainNumaPtr n2)
{
size_t i = 0;
return false;
for (i = 0; i < n1->nmem_nodes; i++) {
- virDomainNumatuneNodePtr nd1 = &n1->mem_nodes[i];
- virDomainNumatuneNodePtr nd2 = &n2->mem_nodes[i];
+ virDomainNumaNodePtr nd1 = &n1->mem_nodes[i];
+ virDomainNumaNodePtr nd2 = &n2->mem_nodes[i];
if (!nd1->nodeset && !nd2->nodeset)
continue;
}
bool
-virDomainNumatuneEquals(virDomainNumatunePtr n1,
- virDomainNumatunePtr n2)
+virDomainNumaEquals(virDomainNumaPtr n1,
+ virDomainNumaPtr n2)
{
if (!n1 && !n2)
return true;
return false;
if (!n1->memory.specified && !n2->memory.specified)
- return virDomainNumatuneNodesEqual(n1, n2);
+ return virDomainNumaNodesEqual(n1, n2);
if (!n1->memory.specified || !n2->memory.specified)
return false;
if (!virBitmapEqual(n1->memory.nodeset, n2->memory.nodeset))
return false;
- return virDomainNumatuneNodesEqual(n1, n2);
+ return virDomainNumaNodesEqual(n1, n2);
}
bool
-virDomainNumatuneHasPlacementAuto(virDomainNumatunePtr numatune)
+virDomainNumatuneHasPlacementAuto(virDomainNumaPtr numatune)
{
if (!numatune)
return false;
}
bool
-virDomainNumatuneHasPerNodeBinding(virDomainNumatunePtr numatune)
+virDomainNumatuneHasPerNodeBinding(virDomainNumaPtr numatune)
{
size_t i = 0;
}
int
-virDomainNumatuneSpecifiedMaxNode(virDomainNumatunePtr numatune)
+virDomainNumatuneSpecifiedMaxNode(virDomainNumaPtr numatune)
{
int ret = -1;
virBitmapPtr nodemask = NULL;
}
bool
-virDomainNumatuneNodesetIsAvailable(virDomainNumatunePtr numatune,
+virDomainNumatuneNodesetIsAvailable(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset)
{
size_t i = 0;
# include "cpu_conf.h"
-typedef struct _virDomainNumatune virDomainNumatune;
-typedef virDomainNumatune *virDomainNumatunePtr;
+typedef struct _virDomainNuma virDomainNuma;
+typedef virDomainNuma *virDomainNumaPtr;
typedef enum {
VIR_DOMAIN_NUMATUNE_PLACEMENT_DEFAULT = 0,
VIR_ENUM_DECL(virDomainNumatuneMemMode)
-void virDomainNumatuneFree(virDomainNumatunePtr numatune);
+void virDomainNumaFree(virDomainNumaPtr numa);
/*
* XML Parse/Format functions
*/
-int virDomainNumatuneParseXML(virDomainNumatunePtr *numatunePtr,
+int virDomainNumatuneParseXML(virDomainNumaPtr *numatunePtr,
bool placement_static,
size_t ncells,
xmlXPathContextPtr ctxt)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
-int virDomainNumatuneFormatXML(virBufferPtr buf, virDomainNumatunePtr numatune)
+int virDomainNumatuneFormatXML(virBufferPtr buf, virDomainNumaPtr numatune)
ATTRIBUTE_NONNULL(1);
/*
* Getters
*/
-virDomainNumatuneMemMode virDomainNumatuneGetMode(virDomainNumatunePtr numatune,
+virDomainNumatuneMemMode virDomainNumatuneGetMode(virDomainNumaPtr numatune,
int cellid);
-virBitmapPtr virDomainNumatuneGetNodeset(virDomainNumatunePtr numatune,
+virBitmapPtr virDomainNumatuneGetNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
int cellid);
-int virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+int virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
virBitmapPtr *retNodeset,
int cellid);
/*
* Formatters
*/
-char *virDomainNumatuneFormatNodeset(virDomainNumatunePtr numatune,
+char *virDomainNumatuneFormatNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
int cellid);
-int virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
+int virDomainNumatuneMaybeFormatNodeset(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset,
char **mask,
int cellid);
/*
* Setters
*/
-int virDomainNumatuneSet(virDomainNumatunePtr *numatunePtr,
+int virDomainNumatuneSet(virDomainNumaPtr *numatunePtr,
bool placement_static,
int placement,
int mode,
/*
* Other accessors
*/
-bool virDomainNumatuneEquals(virDomainNumatunePtr n1,
- virDomainNumatunePtr n2);
+bool virDomainNumaEquals(virDomainNumaPtr n1,
+ virDomainNumaPtr n2);
-bool virDomainNumatuneHasPlacementAuto(virDomainNumatunePtr numatune);
+bool virDomainNumatuneHasPlacementAuto(virDomainNumaPtr numatune);
-bool virDomainNumatuneHasPerNodeBinding(virDomainNumatunePtr numatune);
+bool virDomainNumatuneHasPerNodeBinding(virDomainNumaPtr numatune);
-int virDomainNumatuneSpecifiedMaxNode(virDomainNumatunePtr numatune);
+int virDomainNumatuneSpecifiedMaxNode(virDomainNumaPtr numatune);
-bool virDomainNumatuneNodesetIsAvailable(virDomainNumatunePtr numatune,
+bool virDomainNumatuneNodesetIsAvailable(virDomainNumaPtr numatune,
virBitmapPtr auto_nodeset);
-bool virDomainNumatuneNodeSpecified(virDomainNumatunePtr numatune,
+bool virDomainNumatuneNodeSpecified(virDomainNumaPtr numatune,
int cellid);
int virDomainNumaDefCPUParseXML(virCPUDefPtr def, xmlXPathContextPtr ctxt);
# conf/numa_conf.h
-virDomainNumatuneEquals;
+virDomainNumaEquals;
+virDomainNumaFree;
virDomainNumatuneFormatNodeset;
virDomainNumatuneFormatXML;
-virDomainNumatuneFree;
virDomainNumatuneGetMode;
virDomainNumatuneGetNodeset;
virDomainNumatuneHasPerNodeBinding;
goto cleanup;
}
- if (virDomainNumatuneGetMode(def->numatune, -1) !=
+ if (virDomainNumatuneGetMode(def->numa, -1) !=
VIR_DOMAIN_NUMATUNE_MEM_STRICT)
goto cleanup;
- if (virDomainNumatuneMaybeFormatNodeset(def->numatune, nodemask,
+ if (virDomainNumatuneMaybeFormatNodeset(def->numa, nodemask,
&mask, -1) < 0)
goto cleanup;
if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0)
goto cleanup;
- nodeset = virDomainNumatuneGetNodeset(ctrl->def->numatune, auto_nodeset, -1);
- mode = virDomainNumatuneGetMode(ctrl->def->numatune, -1);
+ nodeset = virDomainNumatuneGetNodeset(ctrl->def->numa, auto_nodeset, -1);
+ mode = virDomainNumatuneGetMode(ctrl->def->numa, -1);
if (virNumaSetupMemoryPolicy(mode, nodeset) < 0)
goto cleanup;
if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0)
goto cleanup;
- nodeset = virDomainNumatuneGetNodeset(ctrl->def->numatune, auto_nodeset, -1);
+ nodeset = virDomainNumatuneGetNodeset(ctrl->def->numa, auto_nodeset, -1);
if (!(ctrl->cgroup = virLXCCgroupCreate(ctrl->def,
ctrl->initpid,
value->str) {
if (virBitmapParse(value->str, 0, &nodeset, VIR_DOMAIN_CPUMASK_LEN) < 0)
return -1;
- if (virDomainNumatuneSet(&def->numatune,
+ if (virDomainNumatuneSet(&def->numa,
def->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
VIR_DOMAIN_NUMATUNE_PLACEMENT_STATIC,
return -1;
}
- if (def->numatune) {
+ if (def->numa) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("numa parameters are not supported "
"by parallels driver"));
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET))
return 0;
- if (virDomainNumatuneGetMode(vm->def->numatune, -1) !=
+ if (virDomainNumatuneGetMode(vm->def->numa, -1) !=
VIR_DOMAIN_NUMATUNE_MEM_STRICT)
return 0;
- if (virDomainNumatuneMaybeFormatNodeset(vm->def->numatune,
+ if (virDomainNumatuneMaybeFormatNodeset(vm->def->numa,
priv->autoNodeset,
&mem_mask, -1) < 0)
goto cleanup;
return 0;
}
- if (virDomainNumatuneGetMode(vm->def->numatune, -1) ==
+ if (virDomainNumatuneGetMode(vm->def->numa, -1) ==
VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
- virDomainNumatuneMaybeFormatNodeset(vm->def->numatune,
+ virDomainNumatuneMaybeFormatNodeset(vm->def->numa,
priv->autoNodeset,
&mem_mask, -1) < 0)
goto cleanup;
return 0;
}
- if (virDomainNumatuneGetMode(vm->def->numatune, -1) ==
+ if (virDomainNumatuneGetMode(vm->def->numa, -1) ==
VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
- virDomainNumatuneMaybeFormatNodeset(vm->def->numatune,
+ virDomainNumatuneMaybeFormatNodeset(vm->def->numa,
priv->autoNodeset,
&mem_mask, -1) < 0)
goto cleanup;
if (!(props = virJSONValueNewObject()))
return -1;
- mode = virDomainNumatuneGetMode(def->numatune, guestNode);
+ mode = virDomainNumatuneGetMode(def->numa, guestNode);
if (pagesize == 0 || pagesize != system_page_size) {
/* Find the huge page size we want to use */
if (userNodeset) {
nodemask = userNodeset;
} else {
- if (virDomainNumatuneMaybeGetNodeset(def->numatune, autoNodeset,
+ if (virDomainNumatuneMaybeGetNodeset(def->numa, autoNodeset,
&nodemask, guestNode) < 0)
goto cleanup;
}
props = NULL;
if (!hugepage) {
- bool nodeSpecified = virDomainNumatuneNodeSpecified(def->numatune, guestNode);
+ bool nodeSpecified = virDomainNumatuneNodeSpecified(def->numa, guestNode);
if ((userNodeset || nodeSpecified || force) &&
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM)) {
int ret = -1;
const long system_page_size = virGetSystemPageSizeKB();
- if (virDomainNumatuneHasPerNodeBinding(def->numatune) &&
+ if (virDomainNumatuneHasPerNodeBinding(def->numa) &&
!(virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_RAM) ||
virQEMUCapsGet(qemuCaps, QEMU_CAPS_OBJECT_MEMORY_FILE))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
goto cleanup;
}
- if (!virDomainNumatuneNodesetIsAvailable(def->numatune, auto_nodeset))
+ if (!virDomainNumatuneNodesetIsAvailable(def->numa, auto_nodeset))
goto cleanup;
for (i = 0; i < def->mem.nhugepages; i++) {
goto cleanup;
}
- if (virDomainNumatuneGetMode(vm->def->numatune, -1) ==
+ if (virDomainNumatuneGetMode(vm->def->numa, -1) ==
VIR_DOMAIN_NUMATUNE_MEM_STRICT &&
- virDomainNumatuneMaybeFormatNodeset(vm->def->numatune,
+ virDomainNumatuneMaybeFormatNodeset(vm->def->numa,
priv->autoNodeset,
&mem_mask, -1) < 0)
goto cleanup;
size_t i = 0;
int ret = -1;
- if (virDomainNumatuneGetMode(vm->def->numatune, -1) !=
+ if (virDomainNumatuneGetMode(vm->def->numa, -1) !=
VIR_DOMAIN_NUMATUNE_MEM_STRICT) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("change of nodeset for running domain "
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
if (mode != -1 &&
- virDomainNumatuneGetMode(vm->def->numatune, -1) != mode) {
+ virDomainNumatuneGetMode(vm->def->numa, -1) != mode) {
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
_("can't change numatune mode for running domain"));
goto endjob;
qemuDomainSetNumaParamsLive(vm, nodeset) < 0)
goto endjob;
- if (virDomainNumatuneSet(&vm->def->numatune,
+ if (virDomainNumatuneSet(&vm->def->numa,
vm->def->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
-1, mode, nodeset) < 0)
}
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- if (virDomainNumatuneSet(&persistentDef->numatune,
+ if (virDomainNumatuneSet(&persistentDef->numa,
persistentDef->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
-1, mode, nodeset) < 0)
goto cleanup;
if (flags & VIR_DOMAIN_AFFECT_CONFIG)
- param->value.i = virDomainNumatuneGetMode(persistentDef->numatune, -1);
+ param->value.i = virDomainNumatuneGetMode(persistentDef->numa, -1);
else
- param->value.i = virDomainNumatuneGetMode(vm->def->numatune, -1);
+ param->value.i = virDomainNumatuneGetMode(vm->def->numa, -1);
break;
case 1: /* fill numa nodeset here */
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
- nodeset = virDomainNumatuneFormatNodeset(persistentDef->numatune,
+ nodeset = virDomainNumatuneFormatNodeset(persistentDef->numa,
NULL, -1);
if (!nodeset)
goto cleanup;
if (!virCgroupHasController(priv->cgroup,
VIR_CGROUP_CONTROLLER_MEMORY) ||
virCgroupGetCpusetMems(priv->cgroup, &nodeset) < 0) {
- nodeset = virDomainNumatuneFormatNodeset(vm->def->numatune,
+ nodeset = virDomainNumatuneFormatNodeset(vm->def->numa,
NULL, -1);
if (!nodeset)
goto cleanup;
if (virSecurityManagerClearSocketLabel(h->driver->securityManager, h->vm->def) < 0)
goto cleanup;
- mode = virDomainNumatuneGetMode(h->vm->def->numatune, -1);
- nodeset = virDomainNumatuneGetNodeset(h->vm->def->numatune,
+ mode = virDomainNumatuneGetMode(h->vm->def->numa, -1);
+ nodeset = virDomainNumatuneGetNodeset(h->vm->def->numa,
priv->autoNodeset, -1);
if (virNumaSetupMemoryPolicy(mode, nodeset) < 0)