Messages in this thread | | | Date | Wed, 13 Sep 2017 14:38:20 -0700 | From | Tejun Heo <> | Subject | Re: [PATCH V2 1/4] kthread: add a mechanism to store cgroup info |
| |
Hello,
On Wed, Sep 13, 2017 at 02:01:26PM -0700, Shaohua Li wrote: > diff --git a/kernel/kthread.c b/kernel/kthread.c > index 26db528..3107eee 100644 > --- a/kernel/kthread.c > +++ b/kernel/kthread.c > @@ -20,7 +20,6 @@ > #include <linux/freezer.h> > #include <linux/ptrace.h> > #include <linux/uaccess.h> > -#include <linux/cgroup.h> > #include <trace/events/sched.h> > > static DEFINE_SPINLOCK(kthread_create_lock); > @@ -47,6 +46,7 @@ struct kthread { > void *data; > struct completion parked; > struct completion exited;
maybe #ifdef CONFIG_CGROUPS?
> + struct cgroup_subsys_state *blkcg_css; > }; ... > +void kthread_associate_blkcg(struct cgroup_subsys_state *css) > +{ > + struct kthread *kthread; > + > + if (!(current->flags & PF_KTHREAD) || !current->set_child_tid) > + return; > + kthread = to_kthread(current); > + if (css) { > + css_get(css); > + kthread->blkcg_css = css; > + } else if (kthread->blkcg_css) { > + css_put(kthread->blkcg_css); > + kthread->blkcg_css = NULL; > + } > +} > +EXPORT_SYMBOL(kthread_associate_blkcg);
Maybe doing sth like the following is less error-prone?
kthread_associate_blkcg(@css) { if (current's kthread->blkcg_css) put kthread->blkcg_css and set it to NULL; if (@css) get @css and set kthread->blkcg; }
Thanks.
-- tejun
| |