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. Cheers! -- #include <best/regards.h> Patrick Bellasi