[CRIU] [PATCH] Enable manage cgroup modes in criu service (v2)
Hui Kang
hkang.sunysb at gmail.com
Wed Aug 5 10:35:43 PDT 2015
Hi, Pavel and Ruslan,
I will fix these and resubmit the patch. Thanks.
- Hui
On Wed, Aug 5, 2015 at 1:26 PM, Pavel Emelyanov <xemul at parallels.com> wrote:
> On 08/05/2015 08:03 PM, Hui Kang wrote:
> > Hi,
> > Add another rpc option so that manage cgroup can be set in the service
> mode. Please review this one. Thanks.
>
> Thanks for looking into this. Plz, note, that your mailer screwed tabs
> into spaces in the patch.
>
> -- Pavel
>
> > - Hui
> >
> > From 99a8dee55e7874c7089fa3baf1dd2aedc567b47f Mon Sep 17 00:00:00 2001
> > From: Hui Kang <hkang.sunysb at gmail.com <mailto:hkang.sunysb at gmail.com>>
> > Date: Wed, 5 Aug 2015 16:48:23 +0000
> > Subject: [PATCH] Enable manage cgroup modes in criu service
> >
> > Signed-off-by: Hui Kang <hkang.sunysb at gmail.com <mailto:
> hkang.sunysb at gmail.com>>
> > ---
> > cr-service.c | 4 ++++
> > lib/criu.c | 11 +++++++++++
> > lib/criu.h | 2 ++
> > protobuf/rpc.proto | 21 +++++++++++----------
> > 4 files changed, 28 insertions(+), 10 deletions(-)
> >
> > diff --git a/cr-service.c b/cr-service.c
> > index 105787e..9bf15ed 100644
> > --- a/cr-service.c
> > +++ b/cr-service.c
> > @@ -400,6 +400,10 @@ static int setup_opts_from_req(int sk, CriuOpts
> *req)
> > if (req->has_manage_cgroups)
> > opts.manage_cgroups = req->manage_cgroups ? CG_MODE_SOFT :
> CG_MODE_IGNORE;
> >
> > + /* Override the manage_cgroup if mode is set explicitly */
> > + if (req->has_manage_cgroups_mode) {
> > + opts.manage_cgroups = req->manage_cgroups_mode;
> > +
> > if (req->has_auto_ext_mnt)
> > opts.autodetect_ext_mounts = req->auto_ext_mnt;
> >
> > diff --git a/lib/criu.c b/lib/criu.c
> > index 3c194a1..90f909f 100644
> > --- a/lib/criu.c
> > +++ b/lib/criu.c
> > @@ -375,6 +375,17 @@ void criu_set_manage_cgroups(bool manage)
> > criu_local_set_manage_cgroups(global_opts, manage);
> > }
> >
> > +void criu_local_set_manage_cgroups_mode(criu_opts *opts, unsigned int
> mode)
> > +{
> > + opts->rpc->has_manage_cgroups_mode = true;
> > + opts->rpc->manage_cgroups_mode = mode;
> > +}
> > +
> > +void criu_set_manage_cgroups_mode(unsigned int mode)
> > +{
> > + criu_local_set_manage_cgroups_mode(global_opts, mode);
> > +}
> > +
> > void criu_local_set_auto_ext_mnt(criu_opts *opts, bool val)
> > {
> > opts->rpc->has_auto_ext_mnt = true;
> > diff --git a/lib/criu.h b/lib/criu.h
> > index 3cb0322..169b9e3 100644
> > --- a/lib/criu.h
> > +++ b/lib/criu.h
> > @@ -67,6 +67,7 @@ void criu_set_log_file(char *log_file);
> > void criu_set_cpu_cap(unsigned int cap);
> > void criu_set_root(char *root);
> > void criu_set_manage_cgroups(bool manage);
> > +void criu_set_manage_cgroups_mode(unsigned int mode);
> > void criu_set_auto_ext_mnt(bool val);
> > void criu_set_ext_sharing(bool val);
> > void criu_set_ext_masters(bool val);
> > @@ -166,6 +167,7 @@ void criu_local_set_log_file(criu_opts *opts, char
> *log_file);
> > void criu_local_set_cpu_cap(criu_opts *opts, unsigned int cap);
> > void criu_local_set_root(criu_opts *opts, char *root);
> > void criu_local_set_manage_cgroups(criu_opts *opts, bool manage);
> > +void criu_local_set_manage_cgroups_mode(criu_opts *opts, unsigned int
> mode);
> > void criu_local_set_auto_ext_mnt(criu_opts *opts, bool val);
> > void criu_local_set_ext_sharing(criu_opts *opts, bool val);
> > void criu_local_set_ext_masters(criu_opts *opts, bool val);
> > diff --git a/protobuf/rpc.proto b/protobuf/rpc.proto
> > index 2f4d0c0..779898a 100644
> > --- a/protobuf/rpc.proto
> > +++ b/protobuf/rpc.proto
> > @@ -60,20 +60,21 @@ message criu_opts {
> > repeated string exec_cmd = 22;
> >
> > repeated ext_mount_map ext_mnt = 23;
> > - optional bool manage_cgroups = 24;
> > - repeated cgroup_root cg_root = 25;
> > + optional bool manage_cgroups = 24; /* backward
> compatibility */
> > + optional uint32 manage_cgroups_mode = 25;
> > + repeated cgroup_root cg_root = 26;
> >
> > - optional bool rst_sibling = 26; /* swrk only */
> > - repeated inherit_fd inherit_fd = 27; /* swrk only */
> > + optional bool rst_sibling = 27; /* swrk only */
> > + repeated inherit_fd inherit_fd = 28; /* swrk only */
> >
> > - optional bool auto_ext_mnt = 28;
> > - optional bool ext_sharing = 29;
> > - optional bool ext_masters = 30;
> > + optional bool auto_ext_mnt = 29;
> > + optional bool ext_sharing = 30;
> > + optional bool ext_masters = 31;
> >
> > - repeated string skip_mnt = 31;
> > - repeated string enable_fs = 32;
> > + repeated string skip_mnt = 32;
> > + repeated string enable_fs = 33;
> >
> > - repeated unix_sk unix_sk_ino = 33;
> > + repeated unix_sk unix_sk_ino = 34;
> > }
> >
> > message criu_dump_resp {
> > --
> > 1.9.1
> >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20150805/d4fd7a69/attachment-0001.html>
More information about the CRIU
mailing list