On Mon, Mar 18, 2019 at 02:21:52PM +0000, Patrick Bellasi wrote: > On 18-Mar 14:10, Peter Zijlstra wrote: > > On Mon, Mar 18, 2019 at 12:18:04PM +0000, Patrick Bellasi wrote: > > > On 13-Mar 21:18, Peter Zijlstra wrote: > > > > On Fri, Feb 08, 2019 at 10:05:42AM +0000, Patrick Bellasi wrote: > > > > > +static void uclamp_fork(struct task_struct *p) > > > > > +{ > > > > > + unsigned int clamp_id; > > > > > + > > > > > + if (unlikely(!p->sched_class->uclamp_enabled)) > > > > > + return; > > > > > + > > > > > + for (clamp_id = 0; clamp_id < UCLAMP_CNT; ++clamp_id) > > > > > + p->uclamp[clamp_id].active = false; > > > > > +} > > > > > > > > Because in that case .active == false, and copy_process() will have done > > > > thr right thing? > > > > > > Don't really get what you mean here? :/ > > > > Why don't we have to set .active=false when > > !sched_class->uclamp_enabled? > > Ok, got it. > > In principle because: > - FAIR and RT will have uclamp_enabled > - DL cannot fork > > ... thus, yes, it seems that the check above is not necessary anyway. > > Moreover, as per one of your comments in another message, we still need > to cover the "reset on fork" case for FAIR and RT. Thus, I'm going to > completely remove the support check in uclamp_fork and we always reset > active for all classes. Right, thanks!