lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 22 Apr 2020 17:09:15 +0200 From: Vincent Guittot <vincent.guittot@...aro.org> To: Peter Zijlstra <peterz@...radead.org> Cc: Ingo Molnar <mingo@...nel.org>, linux-kernel <linux-kernel@...r.kernel.org>, Thomas Gleixner <tglx@...utronix.de>, Steven Rostedt <rostedt@...dmis.org>, Qais Yousef <qais.yousef@....com>, Juri Lelli <juri.lelli@...hat.com>, Dietmar Eggemann <dietmar.eggemann@....com>, Ben Segall <bsegall@...gle.com>, Mel Gorman <mgorman@...e.de>, John Stultz <john.stultz@...aro.org> Subject: Re: [PATCH 13/23] sched,ion: Convert to sched_set_normal() On Wed, 22 Apr 2020 at 15:59, Peter Zijlstra <peterz@...radead.org> wrote: > > On Wed, Apr 22, 2020 at 03:36:22PM +0200, Vincent Guittot wrote: > > On Wed, 22 Apr 2020 at 15:29, Peter Zijlstra <peterz@...radead.org> wrote: > > > > > > On Wed, Apr 22, 2020 at 03:21:45PM +0200, Vincent Guittot wrote: > > > > On Wed, 22 Apr 2020 at 13:29, Peter Zijlstra <peterz@...radead.org> wrote: > > > > > > > > > > In an attempt to take away sched_setscheduler() from modules, change > > > > > this into sched_set_normal(.nice = 19). > > > > > > > > > > Cc: john.stultz@...aro.org > > > > > Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org> > > > > > Reviewed-by: Ingo Molnar <mingo@...nel.org> > > > > > --- > > > > > drivers/staging/android/ion/ion_heap.c | 3 --- > > > > > 1 file changed, 3 deletions(-) > > > > > > > > > > --- a/drivers/staging/android/ion/ion_heap.c > > > > > +++ b/drivers/staging/android/ion/ion_heap.c > > > > > @@ -244,8 +244,6 @@ static int ion_heap_deferred_free(void * > > > > > > > > > > int ion_heap_init_deferred_free(struct ion_heap *heap) > > > > > { > > > > > - struct sched_param param = { .sched_priority = 0 }; > > > > > - > > > > > INIT_LIST_HEAD(&heap->free_list); > > > > > init_waitqueue_head(&heap->waitqueue); > > > > > heap->task = kthread_run(ion_heap_deferred_free, heap, > > > > > @@ -255,7 +253,7 @@ int ion_heap_init_deferred_free(struct i > > > > > __func__); > > > > > return PTR_ERR_OR_ZERO(heap->task); > > > > > } > > > > > - sched_setscheduler(heap->task, SCHED_IDLE, ¶m); > > > > > + sched_set_normal(heap->task, 19); > > > > > > > > Would it make sense to have a sched_set_idle(task) to enable kernel > > > > setting SCHED_IDLE task ? > > > > > > > > SCHED_NORMAL w/ nice 19 and SCHED_IDLE tasks are not treated in the > > > > same way when checking for preemption at wakeup > > > > > > Yeah, but does it really matter? I did indeed consider it, but got > > > lazy. Is there a definite need for IDLE? > > > > John is the best to answer this for this driver but SCHED_IDLE will > > let other tasks which might be involved in end user interaction like > > on Android to run first > > So I don't much like SCHED_IDLE because it introduces some pretty > horrible tail latencies. Consider the IDLE task holding a lock, then the > lock waiter will have to wait until the task gets around to running. Yes one must be careful when using it > > It's not unbounded, like a true idle-time scheduler would be, but it can > still be pretty horrible. nice19 has some of that too of course, but > idle has it worse, esp. also because it begs others to preempt it. Yeah... you have to pay the benefit of letting other tasks to preempt faster. But both sched_idle and nice19 have the same weight and as a result they will have the same amount of running time. So I'm not sure that sched-idle will have bigger problems than nice 19 but may be more often > > I should get back to proxy execution I suppose...
Powered by blists - more mailing lists