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; > + > +

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

2016-09-08 Thread Fenghua Yu
From: Fenghua Yu When a task is forked, it inherites its parent rdtgroup. The task can be moved to other rdtgroup during its run time. When the task exits, it's deleted from it's current rdtgroup's task list. Signed-off-by: Fenghua Yu Reviewed-by: Tony Luck --- arch/x86/kernel/cpu/intel_rdt_