On Thu, 2011-01-20 at 15:30 +0200, Stephane Eranian wrote: > @@ -4259,8 +4261,20 @@ void cgroup_exit(struct task_struct *tsk, int > run_callbacks) > > /* Reassign the task to the init_css_set. */ > task_lock(tsk); > + /* > + * we mask interrupts to prevent: > + * - timer tick to cause event rotation which > + * could schedule back in cgroup events after > + * they were switched out by perf_cgroup_sched_out() > + * > + * - preemption which could schedule back in cgroup events > + */ > + local_irq_save(flags); > + perf_cgroup_sched_out(tsk); > cg = tsk->cgroups; > tsk->cgroups = &init_css_set; > + perf_cgroup_sched_in(tsk); > + local_irq_restore(flags); > task_unlock(tsk); > if (cg) > put_css_set_taskexit(cg);
So you too need a callback on cgroup change there.. Li, Paul, any chance we can fix this cgroup_subsys::exit callback? The scheduler code needs to do funny thing because its in the wrong place as well. ------------------------------------------------------------------------------ Protect Your Site and Customers from Malware Attacks Learn about various malware tactics and how to avoid them. Understand malware threats, the impact they can have on your business, and how you can protect your company and customers by using code signing. http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel