On Thu, 8 Sep 2016, Fenghua Yu wrote:
>  
>       cgroup_exit(tsk);
> +     rdtgroup_exit(tsk);

So this actually does:

> +void rdtgroup_exit(struct task_struct *tsk)
> +{
> +
> +       if (!list_empty(&tsk->rg_list)) {
> +               struct rdtgroup *rdtgrp = tsk->rdtgroup;
> +
> +               list_del_init(&tsk->rg_list);
> +               tsk->rdtgroup = NULL;
> +               atomic_dec(&rdtgrp->refcount);
> +       }
> +}

with complete lack of locking .....

Brilliant stuff that.

          tglx

Reply via email to