]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vircgroup: introduce cgroup v1 backend files
authorPavel Hrdina <phrdina@redhat.com>
Fri, 17 Aug 2018 08:19:59 +0000 (10:19 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Tue, 25 Sep 2018 10:37:51 +0000 (12:37 +0200)
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/Makefile.am
src/libvirt_private.syms
src/util/Makefile.inc.am
src/util/vircgroupbackend.c
src/util/vircgroupv1.c [new file with mode: 0644]
src/util/vircgroupv1.h [new file with mode: 0644]

index 34656290053b9ad0dd957c5f880c399b0d359543..f515569fd544d9b196233ac143e5b6b60afbded8 100644 (file)
@@ -674,6 +674,7 @@ libvirt_setuid_rpc_client_la_SOURCES = \
                util/virbuffer.c \
                util/vircgroup.c \
                util/vircgroupbackend.c \
+               util/vircgroupv1.c \
                util/vircommand.c \
                util/virconf.c \
                util/virdbus.c \
index 33aacd204c7777c3c2b2be98e31f304a4b91d6e9..92363913e3574e36f522205c9824fee32253a69d 100644 (file)
@@ -1580,6 +1580,9 @@ virCgroupTerminateMachine;
 virCgroupBackendGetAll;
 virCgroupBackendRegister;
 
+# util/vircgroupv1.h
+virCgroupV1Register;
+
 # util/virclosecallbacks.h
 virCloseCallbacksGet;
 virCloseCallbacksGetConn;
index 1b236ca62b6a143af59cd4fb065a5721a6225427..ad3be918679d478a341a156108a58a087d1b849f 100644 (file)
@@ -25,6 +25,8 @@ UTIL_SOURCES = \
        util/vircgroup.h util/vircgrouppriv.h \
        util/vircgroupbackend.c \
        util/vircgroupbackend.h \
+       util/vircgroupv1.c \
+       util/vircgroupv1.h \
        util/virclosecallbacks.c \
        util/virclosecallbacks.h \
        util/vircommand.c \
index e014bfc0e6c262826476989749822c1a3371dc5d..d854c9711d869858fd51621fb75d26dc76b36f40 100644 (file)
@@ -20,6 +20,7 @@
 #include <config.h>
 
 #include "vircgroupbackend.h"
+#include "vircgroupv1.h"
 #include "virerror.h"
 #include "virthread.h"
 
@@ -49,6 +50,7 @@ virCgroupBackendRegister(virCgroupBackendPtr backend)
 static void
 virCgroupBackendOnceInit(void)
 {
+    virCgroupV1Register();
 }
 
 
diff --git a/src/util/vircgroupv1.c b/src/util/vircgroupv1.c
new file mode 100644 (file)
index 0000000..4dda786
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * vircgroupv1.c: methods for cgroups v1 backend
+ *
+ * Copyright (C) 2010-2015,2018 Red Hat, Inc.
+ * Copyright IBM Corp. 2008
+ *
+ * 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/>.
+ */
+#include <config.h>
+
+#include "internal.h"
+
+#define __VIR_CGROUP_ALLOW_INCLUDE_PRIV_H__
+#include "vircgrouppriv.h"
+#undef __VIR_CGROUP_ALLOW_INCLUDE_PRIV_H__
+
+#include "vircgroup.h"
+#include "vircgroupbackend.h"
+#include "vircgroupv1.h"
+#include "virlog.h"
+
+VIR_LOG_INIT("util.cgroup");
+
+#define VIR_FROM_THIS VIR_FROM_CGROUP
+
+
+VIR_ENUM_DECL(virCgroupV1Controller);
+VIR_ENUM_IMPL(virCgroupV1Controller, VIR_CGROUP_CONTROLLER_LAST,
+              "cpu", "cpuacct", "cpuset", "memory", "devices",
+              "freezer", "blkio", "net_cls", "perf_event",
+              "name=systemd");
+
+
+virCgroupBackend virCgroupV1Backend = {
+    .type = VIR_CGROUP_BACKEND_TYPE_V1,
+};
+
+
+void
+virCgroupV1Register(void)
+{
+    virCgroupBackendRegister(&virCgroupV1Backend);
+}
diff --git a/src/util/vircgroupv1.h b/src/util/vircgroupv1.h
new file mode 100644 (file)
index 0000000..517517c
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * vircgroupv1.h: methods for cgroups v1 backend
+ *
+ * Copyright (C) 2018 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/>.
+ */
+
+#ifndef __VIR_CGROUP_V1_H__
+# define __VIR_CGROUP_V1_H__
+
+void
+virCgroupV1Register(void);
+
+#endif /* __VIR_CGROUP_V1_H__ */