* [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
@ 2010-05-19 0:04 Sridhar Samudrala
2010-05-20 22:22 ` Paul Menage
0 siblings, 1 reply; 7+ messages in thread
From: Sridhar Samudrala @ 2010-05-19 0:04 UTC (permalink / raw
To: Michael S. Tsirkin, netdev, kvm@vger.kernel.org, lkml
Add a new kernel API to attach a task to current task's cgroup
in all the active hierarchies.
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -570,6 +570,7 @@ struct task_struct *cgroup_iter_next(struct cgroup *cgrp,
void cgroup_iter_end(struct cgroup *cgrp, struct cgroup_iter *it);
int cgroup_scan_tasks(struct cgroup_scanner *scan);
int cgroup_attach_task(struct cgroup *, struct task_struct *);
+int cgroup_attach_task_current_cg(struct task_struct *);
/*
* CSS ID is ID for cgroup_subsys_state structs under subsys. This only works
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 6d870f2..6cfeb06 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1788,6 +1788,29 @@ out:
return retval;
}
+/**
+ * cgroup_attach_task_current_cg - attach task 'tsk' to current task's cgroup
+ * @tsk: the task to be attached
+ */
+int cgroup_attach_task_current_cg(struct task_struct *tsk)
+{
+ struct cgroupfs_root *root;
+ struct cgroup *cur_cg;
+ int retval = 0;
+
+ cgroup_lock();
+ for_each_active_root(root) {
+ cur_cg = task_cgroup_from_root(current, root);
+ retval = cgroup_attach_task(cur_cg, tsk);
+ if (retval)
+ break;
+ }
+ cgroup_unlock();
+
+ return retval;
+}
+EXPORT_SYMBOL_GPL(cgroup_attach_task_current_cg);
+
/*
* Attach task with pid 'pid' to cgroup 'cgrp'. Call with cgroup_mutex
* held. May take task_lock of task
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-19 0:04 [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup Sridhar Samudrala
@ 2010-05-20 22:22 ` Paul Menage
2010-05-20 22:26 ` Paul Menage
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Paul Menage @ 2010-05-20 22:22 UTC (permalink / raw
To: Sridhar Samudrala; +Cc: Michael S. Tsirkin, netdev, kvm@vger.kernel.org, lkml
On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
<samudrala.sridhar@gmail.com> wrote:
> Add a new kernel API to attach a task to current task's cgroup
> in all the active hierarchies.
>
> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
Reviewed-by: Paul Menage <menage@google.com>
It would be more efficient to just attach directly to current->cgroups
rather than potentially creating/destroying one css_set for each
hierarchy until we've completely converged on current->cgroups - but
that would require a bunch of refactoring of the guts of
cgroup_attach_task() to ensure that the right can_attach()/attach()
callbacks are made. That doesn't really seem worthwhile right now for
the initial use, that I imagine isn't going to be
performance-sensitive.
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-20 22:22 ` Paul Menage
@ 2010-05-20 22:26 ` Paul Menage
2010-05-21 15:09 ` Sridhar Samudrala
2010-05-25 16:53 ` Michael S. Tsirkin
2 siblings, 0 replies; 7+ messages in thread
From: Paul Menage @ 2010-05-20 22:26 UTC (permalink / raw
To: Sridhar Samudrala; +Cc: Michael S. Tsirkin, netdev, kvm@vger.kernel.org, lkml
On Thu, May 20, 2010 at 3:22 PM, Paul Menage <menage@google.com> wrote:
> On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
> <samudrala.sridhar@gmail.com> wrote:
>> Add a new kernel API to attach a task to current task's cgroup
>> in all the active hierarchies.
>>
>> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
>
> Reviewed-by: Paul Menage <menage@google.com>
>
One other thought on this - this would be the first piece of code
that's attaching a task to a cgroup without holding the cgroup
directory inode i_mutex. I believe that this is probably OK.
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-20 22:22 ` Paul Menage
2010-05-20 22:26 ` Paul Menage
@ 2010-05-21 15:09 ` Sridhar Samudrala
2010-05-25 16:53 ` Michael S. Tsirkin
2 siblings, 0 replies; 7+ messages in thread
From: Sridhar Samudrala @ 2010-05-21 15:09 UTC (permalink / raw
To: Paul Menage
Cc: Sridhar Samudrala, Michael S. Tsirkin, netdev,
kvm@vger.kernel.org, lkml
On 5/20/2010 3:22 PM, Paul Menage wrote:
> On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
> <samudrala.sridhar@gmail.com> wrote:
>
>> Add a new kernel API to attach a task to current task's cgroup
>> in all the active hierarchies.
>>
>> Signed-off-by: Sridhar Samudrala<sri@us.ibm.com>
>>
> Reviewed-by: Paul Menage<menage@google.com>
>
> It would be more efficient to just attach directly to current->cgroups
> rather than potentially creating/destroying one css_set for each
> hierarchy until we've completely converged on current->cgroups - but
> that would require a bunch of refactoring of the guts of
> cgroup_attach_task() to ensure that the right can_attach()/attach()
> callbacks are made. That doesn't really seem worthwhile right now for
> the initial use, that I imagine isn't going to be
> performance-sensitive.
>
Yes. In our use-case, this will be called only once per guest interface
when the guest comes up.
Hope you or someone more familiar with cgroups subsystem can optimize
this function later.
Thanks
Sridhar
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-20 22:22 ` Paul Menage
2010-05-20 22:26 ` Paul Menage
2010-05-21 15:09 ` Sridhar Samudrala
@ 2010-05-25 16:53 ` Michael S. Tsirkin
2010-05-25 18:34 ` Paul Menage
2 siblings, 1 reply; 7+ messages in thread
From: Michael S. Tsirkin @ 2010-05-25 16:53 UTC (permalink / raw
To: Paul Menage
Cc: Sridhar Samudrala, netdev, kvm@vger.kernel.org, lkml, containers,
lizf
On Thu, May 20, 2010 at 03:22:15PM -0700, Paul Menage wrote:
> On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
> <samudrala.sridhar@gmail.com> wrote:
> > Add a new kernel API to attach a task to current task's cgroup
> > in all the active hierarchies.
> >
> > Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
>
> Reviewed-by: Paul Menage <menage@google.com>
>
> It would be more efficient to just attach directly to current->cgroups
> rather than potentially creating/destroying one css_set for each
> hierarchy until we've completely converged on current->cgroups - but
> that would require a bunch of refactoring of the guts of
> cgroup_attach_task() to ensure that the right can_attach()/attach()
> callbacks are made. That doesn't really seem worthwhile right now for
> the initial use, that I imagine isn't going to be
> performance-sensitive.
>
> Paul
Is this patch suitable for 2.6.35?
It is needed to fix the case where vhost user might cause a kernel thread
to consume more CPU than allowed by the cgroup.
Should I just merge it through the vhost tree?
Ack for this?
Thanks,
--
MST
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-25 16:53 ` Michael S. Tsirkin
@ 2010-05-25 18:34 ` Paul Menage
2010-05-27 9:16 ` Michael S. Tsirkin
0 siblings, 1 reply; 7+ messages in thread
From: Paul Menage @ 2010-05-25 18:34 UTC (permalink / raw
To: Michael S. Tsirkin
Cc: Sridhar Samudrala, netdev, kvm@vger.kernel.org, lkml, containers,
lizf
On Tue, May 25, 2010 at 9:53 AM, Michael S. Tsirkin <mst@redhat.com> wrote:
> On Thu, May 20, 2010 at 03:22:15PM -0700, Paul Menage wrote:
>> On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
>> <samudrala.sridhar@gmail.com> wrote:
>> > Add a new kernel API to attach a task to current task's cgroup
>> > in all the active hierarchies.
>> >
>> > Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
>>
>> Reviewed-by: Paul Menage <menage@google.com>
>>
>> It would be more efficient to just attach directly to current->cgroups
>> rather than potentially creating/destroying one css_set for each
>> hierarchy until we've completely converged on current->cgroups - but
>> that would require a bunch of refactoring of the guts of
>> cgroup_attach_task() to ensure that the right can_attach()/attach()
>> callbacks are made. That doesn't really seem worthwhile right now for
>> the initial use, that I imagine isn't going to be
>> performance-sensitive.
>>
>> Paul
>
> Is this patch suitable for 2.6.35?
Should be OK, yes.
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup
2010-05-25 18:34 ` Paul Menage
@ 2010-05-27 9:16 ` Michael S. Tsirkin
0 siblings, 0 replies; 7+ messages in thread
From: Michael S. Tsirkin @ 2010-05-27 9:16 UTC (permalink / raw
To: Paul Menage
Cc: Sridhar Samudrala, netdev, kvm@vger.kernel.org, lkml, containers,
lizf, Andrew Morton, Ben Blum, KAMEZAWA Hiroyuki
On Tue, May 25, 2010 at 11:34:12AM -0700, Paul Menage wrote:
> On Tue, May 25, 2010 at 9:53 AM, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Thu, May 20, 2010 at 03:22:15PM -0700, Paul Menage wrote:
> >> On Tue, May 18, 2010 at 5:04 PM, Sridhar Samudrala
> >> <samudrala.sridhar@gmail.com> wrote:
> >> > Add a new kernel API to attach a task to current task's cgroup
> >> > in all the active hierarchies.
> >> >
> >> > Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
> >>
> >> Reviewed-by: Paul Menage <menage@google.com>
> >>
> >> It would be more efficient to just attach directly to current->cgroups
> >> rather than potentially creating/destroying one css_set for each
> >> hierarchy until we've completely converged on current->cgroups - but
> >> that would require a bunch of refactoring of the guts of
> >> cgroup_attach_task() to ensure that the right can_attach()/attach()
> >> callbacks are made. That doesn't really seem worthwhile right now for
> >> the initial use, that I imagine isn't going to be
> >> performance-sensitive.
> >>
> >> Paul
> >
> > Is this patch suitable for 2.6.35?
>
> Should be OK, yes.
>
> Paul
So I'll add your Acked-by tag then, and merge through the vhost tree
together with the patch that uses this.
--
MST
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-05-27 9:21 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-19 0:04 [PATCH 1/3] cgroups: Add an API to attach a task to current task's cgroup Sridhar Samudrala
2010-05-20 22:22 ` Paul Menage
2010-05-20 22:26 ` Paul Menage
2010-05-21 15:09 ` Sridhar Samudrala
2010-05-25 16:53 ` Michael S. Tsirkin
2010-05-25 18:34 ` Paul Menage
2010-05-27 9:16 ` Michael S. Tsirkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).