Re: [PATCH v2 26/33] Task fork and exit for rdtgroup

2016-09-14 Thread Dave Hansen
On 09/13/2016 04:35 PM, Luck, Tony wrote: > On Tue, Sep 13, 2016 at 04:13:04PM -0700, Dave Hansen wrote: >> Yikes, is this a new global lock and possible atomic_inc() on a shared >> variable in the fork() path? Has there been any performance or >> scalability testing done on this code? >> >> That

Re: [PATCH v2 26/33] Task fork and exit for rdtgroup

2016-09-13 Thread Luck, Tony
On Tue, Sep 13, 2016 at 04:13:04PM -0700, Dave Hansen wrote: > Yikes, is this a new global lock and possible atomic_inc() on a shared > variable in the fork() path? Has there been any performance or > scalability testing done on this code? > > That mutex could be a disaster for fork() once the fi

Re: [PATCH v2 26/33] Task fork and exit for rdtgroup

2016-09-13 Thread Dave Hansen
On 09/08/2016 02:57 AM, Fenghua Yu wrote: > +void rdtgroup_fork(struct task_struct *child) > +{ > + struct rdtgroup *rdtgrp; > + > + INIT_LIST_HEAD(&child->rg_list); > + if (!rdtgroup_mounted) > + return; > + > + mutex_lock(&rdtgroup_mutex); > + > + rdtgrp = current-

Re: [PATCH v2 26/33] Task fork and exit for rdtgroup

2016-09-08 Thread Thomas Gleixner
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; > + > +