mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	sched_ext: Start schedulers with consistent p->scx.slice values
The disable path caps p->scx.slice to SCX_SLICE_DFL. As the field is already being ignored at this stage during disable, the only effect this has is that when the next BPF scheduler is loaded, it won't see unreasonable left-over slices. Ultimately, this shouldn't matter but it's better to start in a known state. Drop p->scx.slice capping from the disable path and instead reset it to SCX_SLICE_DFL in the enable path. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: David Vernet <void@manifault.com>
This commit is contained in:
		
							parent
							
								
									54baa7ac0c
								
							
						
					
					
						commit
						3fdb9ebcec
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -4473,7 +4473,6 @@ static void scx_ops_disable_workfn(struct kthread_work *work) | |||
| 
 | ||||
| 		sched_deq_and_put_task(p, DEQUEUE_SAVE | DEQUEUE_MOVE, &ctx); | ||||
| 
 | ||||
| 		p->scx.slice = min_t(u64, p->scx.slice, SCX_SLICE_DFL); | ||||
| 		__setscheduler_prio(p, p->prio); | ||||
| 		check_class_changing(task_rq(p), p, old_class); | ||||
| 
 | ||||
|  | @ -5190,6 +5189,7 @@ static int scx_ops_enable(struct sched_ext_ops *ops, struct bpf_link *link) | |||
| 
 | ||||
| 		sched_deq_and_put_task(p, DEQUEUE_SAVE | DEQUEUE_MOVE, &ctx); | ||||
| 
 | ||||
| 		p->scx.slice = SCX_SLICE_DFL; | ||||
| 		__setscheduler_prio(p, p->prio); | ||||
| 		check_class_changing(task_rq(p), p, old_class); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Tejun Heo
						Tejun Heo