> On Aug 19, 2020, at 7:55 PM, Dietmar Eggemann <dietmar.eggem...@arm.com> > wrote: > > On 19/08/2020 13:05, Vincent Guittot wrote: >> On Wed, 19 Aug 2020 at 12:46, Dietmar Eggemann <dietmar.eggem...@arm.com> >> wrote: >>> >>> On 17/08/2020 14:05, benbjiang(蒋彪) wrote: >>>> >>>> >>>>> On Aug 17, 2020, at 4:57 PM, Dietmar Eggemann <dietmar.eggem...@arm.com> >>>>> wrote: >>>>> >>>>> On 14/08/2020 01:55, benbjiang(蒋彪) wrote: >>>>>> Hi, >>>>>> >>>>>>> On Aug 13, 2020, at 2:39 AM, Dietmar Eggemann >>>>>>> <dietmar.eggem...@arm.com> wrote: >>>>>>> >>>>>>> On 12/08/2020 05:19, benbjiang(蒋彪) wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>>> On Aug 11, 2020, at 11:54 PM, Dietmar Eggemann >>>>>>>>> <dietmar.eggem...@arm.com> wrote: >>>>>>>>> >>>>>>>>> On 11/08/2020 02:41, benbjiang(蒋彪) wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>>> On Aug 10, 2020, at 9:24 PM, Dietmar Eggemann >>>>>>>>>>> <dietmar.eggem...@arm.com> wrote: >>>>>>>>>>> >>>>>>>>>>> On 06/08/2020 17:52, benbjiang(蒋彪) wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>>> On Aug 6, 2020, at 9:29 PM, Dietmar Eggemann >>>>>>>>>>>>> <dietmar.eggem...@arm.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> On 03/08/2020 13:26, benbjiang(蒋彪) wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Aug 3, 2020, at 4:16 PM, Dietmar Eggemann >>>>>>>>>>>>>>> <dietmar.eggem...@arm.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 01/08/2020 04:32, Jiang Biao wrote: >>>>>>>>>>>>>>>> From: Jiang Biao <benbji...@tencent.com> >>> >>> [...] >>> >>>>> Are you sure about this? >>>> Yes. :) >>>>> >>>>> The math is telling me for the: >>>>> >>>>> idle task: (3 / (1024 + 1024 + 3))^(-1) * 4ms = 2735ms >>>>> >>>>> normal task: (1024 / (1024 + 1024 + 3))^(-1) * 4ms = 8ms >>>>> >>>>> (4ms - 250 Hz) >>>> My tick is 1ms - 1000HZ, which seems reasonable for 600ms? :) >>> >>> OK, I see. >>> >>> But here the different sched slices (check_preempt_tick()-> >>> sched_slice()) between normal tasks and the idle task play a role to. >>> >>> Normal tasks get ~3ms whereas the idle task gets <0.01ms. >> >> In fact that depends on the number of CPUs on the system >> :sysctl_sched_latency = 6ms * (1 + ilog(ncpus)) . On a 8 cores system, >> normal task will run around 12ms in one shoot and the idle task still >> one tick period > > True. This is on a single CPU. Agree. :)
> >> Also, you can increase even more the period between 2 runs of idle >> task by using cgroups and min shares value : 2 > > Ah yes, maybe this is what Jiang wants to do then? If his runtime does > not have other requirements preventing this. That could work for increasing the period between 2 runs. But could not reduce the single runtime of idle task I guess, which means normal task could have 1-tick schedule latency because of idle task. OTOH, cgroups(shares) could introduce extra complexity. :) I wonder if there’s any possibility to make SCHED_IDLEs’ priorities absolutely lower than SCHED_NORMAL(OTHER), which means no weights/shares for them, and they run only when no other task’s runnable. I guess there may be priority inversion issue if we do that. But maybe we could avoid it by load-balance more aggressively, or it(priority inversion) could be ignored in some special case. Thx. Regard, Jiang > > [...]