mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
vircgroup: Introduce virCgroupNewIOThread
Add virCgroupNewIOThread() to mimic virCgroupNewVcpu() except the naming scheme with use "iothread" rather than "vcpu".
This commit is contained in:
parent
4cf6bfab4c
commit
3abb95cad4
@ -1089,6 +1089,7 @@ virCgroupNewDetectMachine;
|
|||||||
virCgroupNewDomainPartition;
|
virCgroupNewDomainPartition;
|
||||||
virCgroupNewEmulator;
|
virCgroupNewEmulator;
|
||||||
virCgroupNewIgnoreError;
|
virCgroupNewIgnoreError;
|
||||||
|
virCgroupNewIOThread;
|
||||||
virCgroupNewMachine;
|
virCgroupNewMachine;
|
||||||
virCgroupNewPartition;
|
virCgroupNewPartition;
|
||||||
virCgroupNewSelf;
|
virCgroupNewSelf;
|
||||||
|
@ -1492,6 +1492,49 @@ virCgroupNewEmulator(virCgroupPtr domain,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virCgroupNewIOThread:
|
||||||
|
*
|
||||||
|
* @domain: group for the domain
|
||||||
|
* @iothreadid: id of the iothread
|
||||||
|
* @create: true to create if not already existing
|
||||||
|
* @group: Pointer to returned virCgroupPtr
|
||||||
|
*
|
||||||
|
* Returns 0 on success, or -1 on error
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
virCgroupNewIOThread(virCgroupPtr domain,
|
||||||
|
int iothreadid,
|
||||||
|
bool create,
|
||||||
|
virCgroupPtr *group)
|
||||||
|
{
|
||||||
|
int ret = -1;
|
||||||
|
char *name = NULL;
|
||||||
|
int controllers;
|
||||||
|
|
||||||
|
if (virAsprintf(&name, "iothread%d", iothreadid) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
controllers = ((1 << VIR_CGROUP_CONTROLLER_CPU) |
|
||||||
|
(1 << VIR_CGROUP_CONTROLLER_CPUACCT) |
|
||||||
|
(1 << VIR_CGROUP_CONTROLLER_CPUSET));
|
||||||
|
|
||||||
|
if (virCgroupNew(-1, name, domain, controllers, group) < 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
if (virCgroupMakeGroup(domain, *group, create, VIR_CGROUP_NONE) < 0) {
|
||||||
|
virCgroupRemove(*group);
|
||||||
|
virCgroupFree(group);
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
cleanup:
|
||||||
|
VIR_FREE(name);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virCgroupNewDetect(pid_t pid,
|
virCgroupNewDetect(pid_t pid,
|
||||||
int controllers,
|
int controllers,
|
||||||
|
@ -76,6 +76,12 @@ int virCgroupNewEmulator(virCgroupPtr domain,
|
|||||||
virCgroupPtr *group)
|
virCgroupPtr *group)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
|
||||||
|
|
||||||
|
int virCgroupNewIOThread(virCgroupPtr domain,
|
||||||
|
int iothreadid,
|
||||||
|
bool create,
|
||||||
|
virCgroupPtr *group)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(4);
|
||||||
|
|
||||||
int virCgroupNewDetect(pid_t pid,
|
int virCgroupNewDetect(pid_t pid,
|
||||||
int controllers,
|
int controllers,
|
||||||
virCgroupPtr *group);
|
virCgroupPtr *group);
|
||||||
|
Loading…
Reference in New Issue
Block a user