[libvirt] [PATCH 02/47] vircgroup: introduce cgroup v1 backend files

Pavel Hrdina posted 47 patches 7 years, 4 months ago
[libvirt] [PATCH 02/47] vircgroup: introduce cgroup v1 backend files
Posted by Pavel Hrdina 7 years, 4 months ago
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
---
 src/Makefile.am             |  1 +
 src/libvirt_private.syms    |  3 ++
 src/util/Makefile.inc.am    |  2 ++
 src/util/vircgroupbackend.c |  2 ++
 src/util/vircgroupv1.c      | 55 +++++++++++++++++++++++++++++++++++++
 src/util/vircgroupv1.h      | 27 ++++++++++++++++++
 6 files changed, 90 insertions(+)
 create mode 100644 src/util/vircgroupv1.c
 create mode 100644 src/util/vircgroupv1.h

diff --git a/src/Makefile.am b/src/Makefile.am
index 3465629005..f515569fd5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -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 \
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index eb302b3559..00598b97de 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1580,6 +1580,9 @@ virCgroupTerminateMachine;
 virCgroupBackendGetAll;
 virCgroupBackendRegister;
 
+# util/vircgroupv1.h
+virCgroupV1Register;
+
 # util/virclosecallbacks.h
 virCloseCallbacksGet;
 virCloseCallbacksGetConn;
diff --git a/src/util/Makefile.inc.am b/src/util/Makefile.inc.am
index 1b236ca62b..ad3be91867 100644
--- a/src/util/Makefile.inc.am
+++ b/src/util/Makefile.inc.am
@@ -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 \
diff --git a/src/util/vircgroupbackend.c b/src/util/vircgroupbackend.c
index e014bfc0e6..d854c9711d 100644
--- a/src/util/vircgroupbackend.c
+++ b/src/util/vircgroupbackend.c
@@ -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
index 0000000000..711ebf1128
--- /dev/null
+++ b/src/util/vircgroupv1.c
@@ -0,0 +1,55 @@
+/*
+ * vircgroupv1.c: methods for cgroups v1 backedn
+ *
+ * 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
index 0000000000..e75b85a50a
--- /dev/null
+++ b/src/util/vircgroupv1.h
@@ -0,0 +1,27 @@
+/*
+ * vircgroupv1.h: methods for cgroups v1 backedn
+ *
+ * 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__ */
-- 
2.17.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 02/47] vircgroup: introduce cgroup v1 backend files
Posted by Fabiano Fidêncio 7 years, 4 months ago
On Tue, Sep 18, 2018 at 5:45 PM, Pavel Hrdina <phrdina@redhat.com> wrote:

> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> ---
>  src/Makefile.am             |  1 +
>  src/libvirt_private.syms    |  3 ++
>  src/util/Makefile.inc.am    |  2 ++
>  src/util/vircgroupbackend.c |  2 ++
>  src/util/vircgroupv1.c      | 55 +++++++++++++++++++++++++++++++++++++
>  src/util/vircgroupv1.h      | 27 ++++++++++++++++++
>  6 files changed, 90 insertions(+)
>  create mode 100644 src/util/vircgroupv1.c
>  create mode 100644 src/util/vircgroupv1.h
>
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 3465629005..f515569fd5 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -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 \
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index eb302b3559..00598b97de 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -1580,6 +1580,9 @@ virCgroupTerminateMachine;
>  virCgroupBackendGetAll;
>  virCgroupBackendRegister;
>
> +# util/vircgroupv1.h
> +virCgroupV1Register;
> +
>  # util/virclosecallbacks.h
>  virCloseCallbacksGet;
>  virCloseCallbacksGetConn;
> diff --git a/src/util/Makefile.inc.am b/src/util/Makefile.inc.am
> index 1b236ca62b..ad3be91867 100644
> --- a/src/util/Makefile.inc.am
> +++ b/src/util/Makefile.inc.am
> @@ -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 \
> diff --git a/src/util/vircgroupbackend.c b/src/util/vircgroupbackend.c
> index e014bfc0e6..d854c9711d 100644
> --- a/src/util/vircgroupbackend.c
> +++ b/src/util/vircgroupbackend.c
> @@ -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
> index 0000000000..711ebf1128
> --- /dev/null
> +++ b/src/util/vircgroupv1.c
> @@ -0,0 +1,55 @@
> +/*
> + * vircgroupv1.c: methods for cgroups v1 backedn
>

typo: backedn -> 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
> index 0000000000..e75b85a50a
> --- /dev/null
> +++ b/src/util/vircgroupv1.h
> @@ -0,0 +1,27 @@
> +/*
> + * vircgroupv1.h: methods for cgroups v1 backedn
>

typo: backedn -> 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__ */
> --
> 2.17.1
>
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>

Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 02/47] vircgroup: introduce cgroup v1 backend files
Posted by Ján Tomko 7 years, 4 months ago
On Tue, Sep 18, 2018 at 05:45:23PM +0200, Pavel Hrdina wrote:
>Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
>---
> src/Makefile.am             |  1 +
> src/libvirt_private.syms    |  3 ++
> src/util/Makefile.inc.am    |  2 ++
> src/util/vircgroupbackend.c |  2 ++
> src/util/vircgroupv1.c      | 55 +++++++++++++++++++++++++++++++++++++
> src/util/vircgroupv1.h      | 27 ++++++++++++++++++
> 6 files changed, 90 insertions(+)
> create mode 100644 src/util/vircgroupv1.c
> create mode 100644 src/util/vircgroupv1.h
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list