]> Pileus Git - ~andy/linux/blobdiff - kernel/sched/auto_group.h
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[~andy/linux] / kernel / sched / auto_group.h
index 4552c6bf79d2e1720054d2f5abe417ea22a9f49a..8bd047142816dea81894bb27ccc3c78a38ac3d61 100644 (file)
@@ -4,6 +4,11 @@
 #include <linux/rwsem.h>
 
 struct autogroup {
+       /*
+        * reference doesn't mean how many thread attach to this
+        * autogroup now. It just stands for the number of task
+        * could use this autogroup.
+        */
        struct kref             kref;
        struct task_group       *tg;
        struct rw_semaphore     lock;
@@ -24,7 +29,9 @@ extern bool task_wants_autogroup(struct task_struct *p, struct task_group *tg);
 static inline struct task_group *
 autogroup_task_group(struct task_struct *p, struct task_group *tg)
 {
-       if (task_wants_autogroup(p, tg))
+       int enabled = ACCESS_ONCE(sysctl_sched_autogroup_enabled);
+
+       if (enabled && task_wants_autogroup(p, tg))
                return p->signal->autogroup->tg;
 
        return tg;