On Tue, Oct 11, 2022 at 11:20 PM Hillf Danton <hdanton@xxxxxxxx> wrote: > > On 11 Oct 2022 10:11:58 -0700 Suren Baghdasaryan <surenb@xxxxxxxxxx> > >On Tue, Oct 11, 2022 at 4:38 AM Hillf Danton <hdanton@xxxxxxxx> wrote: > >> > >> Given activities on remote CPUs, can you specify what prevents psi_avgs_work > >> from being scheduled on remote CPUs if for example the local CPU has been > >> idle for a second? > > > > I'm not a scheduler expert but I can imagine some work that finished > > running on a big core A and generated some activity since the last > > time psi_avgs_work executed. With no other activity the next > > psi_avgs_work could be scheduled on a small core B to conserve power. > > Given core A and B, nothing prevents. > > > There might be other cases involving cpuset limitation changes or cpu > > offlining but I didn't think too hard about these. The bottom line, I > > don't think we should be designing mechanisms which rely on > > assumptions about how tasks will be scheduled. Even if these > > The tasks here makes me guess that we are on different pages - scheduling > work has little to do with how tasks are scheduled, and is no more than > queuing work on the system_wq in the case of psi_avgs_work, I must have misunderstood your question then. My original concern was that in the above example your suggested patch would not reschedule psi_avgs_work to aggregate the activity recorded from core A. Easily fixable but looks like a simpler approach is possible. > > > assumptions are correct today they might change in the future and > > things will break in unexpected places. > > with nothing assumed. >