Lines Matching refs:ag

29 	struct autogroup *ag = container_of(kref, struct autogroup, kref);  in autogroup_destroy()  local
33 ag->tg->rt_se = NULL; in autogroup_destroy()
34 ag->tg->rt_rq = NULL; in autogroup_destroy()
36 sched_offline_group(ag->tg); in autogroup_destroy()
37 sched_destroy_group(ag->tg); in autogroup_destroy()
40 static inline void autogroup_kref_put(struct autogroup *ag) in autogroup_kref_put() argument
42 kref_put(&ag->kref, autogroup_destroy); in autogroup_kref_put()
45 static inline struct autogroup *autogroup_kref_get(struct autogroup *ag) in autogroup_kref_get() argument
47 kref_get(&ag->kref); in autogroup_kref_get()
48 return ag; in autogroup_kref_get()
53 struct autogroup *ag; in autogroup_task_get() local
59 ag = autogroup_kref_get(p->signal->autogroup); in autogroup_task_get()
62 return ag; in autogroup_task_get()
67 struct autogroup *ag = kzalloc(sizeof(*ag), GFP_KERNEL); in autogroup_create() local
70 if (!ag) in autogroup_create()
78 kref_init(&ag->kref); in autogroup_create()
79 init_rwsem(&ag->lock); in autogroup_create()
80 ag->id = atomic_inc_return(&autogroup_seq_nr); in autogroup_create()
81 ag->tg = tg; in autogroup_create()
94 tg->autogroup = ag; in autogroup_create()
97 return ag; in autogroup_create()
100 kfree(ag); in autogroup_create()
104 ag ? "sched_create_group()" : "kmalloc()"); in autogroup_create()
126 autogroup_move_group(struct task_struct *p, struct autogroup *ag) in autogroup_move_group() argument
135 if (prev == ag) { in autogroup_move_group()
140 p->signal->autogroup = autogroup_kref_get(ag); in autogroup_move_group()
155 struct autogroup *ag = autogroup_create(); in sched_autogroup_create_attach() local
157 autogroup_move_group(p, ag); in sched_autogroup_create_attach()
159 autogroup_kref_put(ag); in sched_autogroup_create_attach()
194 struct autogroup *ag; in proc_sched_autogroup_set_nice() local
212 ag = autogroup_task_get(p); in proc_sched_autogroup_set_nice()
214 down_write(&ag->lock); in proc_sched_autogroup_set_nice()
215 err = sched_group_set_shares(ag->tg, prio_to_weight[nice + 20]); in proc_sched_autogroup_set_nice()
217 ag->nice = nice; in proc_sched_autogroup_set_nice()
218 up_write(&ag->lock); in proc_sched_autogroup_set_nice()
220 autogroup_kref_put(ag); in proc_sched_autogroup_set_nice()
227 struct autogroup *ag = autogroup_task_get(p); in proc_sched_autogroup_show_task() local
229 if (!task_group_is_autogroup(ag->tg)) in proc_sched_autogroup_show_task()
232 down_read(&ag->lock); in proc_sched_autogroup_show_task()
233 seq_printf(m, "/autogroup-%ld nice %d\n", ag->id, ag->nice); in proc_sched_autogroup_show_task()
234 up_read(&ag->lock); in proc_sched_autogroup_show_task()
237 autogroup_kref_put(ag); in proc_sched_autogroup_show_task()