diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2021-08-20 12:33:05 +0200 | 
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2021-08-20 12:33:05 +0200 | 
| commit | c94d89fafa49ba70fedbb01cb52dfbbdd7dc0986 (patch) | |
| tree | ca4af4efcc3ac38dcb26ccf99acf62f7d30ebcc3 /kernel/sched/deadline.c | |
| parent | 7c60610d476766e128cc4284bb6349732cbd6606 (diff) | |
| parent | 234b8ab6476c5edd5262e2ff563de9498d60044a (diff) | |
Merge branch 'sched/core'
Diffstat (limited to 'kernel/sched/deadline.c')
| -rw-r--r-- | kernel/sched/deadline.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c index aaacd6cfd42f..e94314633b39 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1733,6 +1733,7 @@ static void migrate_task_rq_dl(struct task_struct *p, int new_cpu __maybe_unused  	 */  	raw_spin_rq_lock(rq);  	if (p->dl.dl_non_contending) { +		update_rq_clock(rq);  		sub_running_bw(&p->dl, &rq->dl);  		p->dl.dl_non_contending = 0;  		/* @@ -2741,7 +2742,7 @@ void __setparam_dl(struct task_struct *p, const struct sched_attr *attr)  	dl_se->dl_runtime = attr->sched_runtime;  	dl_se->dl_deadline = attr->sched_deadline;  	dl_se->dl_period = attr->sched_period ?: dl_se->dl_deadline; -	dl_se->flags = attr->sched_flags; +	dl_se->flags = attr->sched_flags & SCHED_DL_FLAGS;  	dl_se->dl_bw = to_ratio(dl_se->dl_period, dl_se->dl_runtime);  	dl_se->dl_density = to_ratio(dl_se->dl_deadline, dl_se->dl_runtime);  } @@ -2754,7 +2755,8 @@ void __getparam_dl(struct task_struct *p, struct sched_attr *attr)  	attr->sched_runtime = dl_se->dl_runtime;  	attr->sched_deadline = dl_se->dl_deadline;  	attr->sched_period = dl_se->dl_period; -	attr->sched_flags = dl_se->flags; +	attr->sched_flags &= ~SCHED_DL_FLAGS; +	attr->sched_flags |= dl_se->flags;  }  /* @@ -2851,7 +2853,7 @@ bool dl_param_changed(struct task_struct *p, const struct sched_attr *attr)  	if (dl_se->dl_runtime != attr->sched_runtime ||  	    dl_se->dl_deadline != attr->sched_deadline ||  	    dl_se->dl_period != attr->sched_period || -	    dl_se->flags != attr->sched_flags) +	    dl_se->flags != (attr->sched_flags & SCHED_DL_FLAGS))  		return true;  	return false;  | 
