On 2022/7/22 15:14, Abel Wu wrote: > On 7/22/22 2:13 PM, Chengming Zhou Wrote: >> On 2022/7/22 11:30, Abel Wu wrote: >>> Hi Chengming, >>> >>> On 7/21/22 12:04 PM, Chengming Zhou Wrote: >>>> Now PSI already tracked workload pressure stall information for >>>> CPU, memory and IO. Apart from these, IRQ/SOFTIRQ could have >>>> obvious impact on some workload productivity, such as web service >>>> workload. >>>> >>>> When CONFIG_IRQ_TIME_ACCOUNTING, we can get IRQ/SOFTIRQ delta time >>>> from update_rq_clock_task(), in which we can record that delta >>>> to CPU curr task's cgroups as PSI_IRQ_FULL status. >>> >>> The {soft,}irq affection should be equal to all the runnable tasks >>> on that cpu, not only rq->curr. Further I think irqstall is per-cpu >>> rather than per-cgroup. >> >> Although IRQ/SOFTIRQ is per-cpu, it's the rq->curr who own the CPU at the time >> and pay for it, meanwhile other groups would be thought as PSI_CPU_FULL. > > I don't think rq->curr pays for it if you mean consuming quota here. Yes, it makes rq->curr's groups look more productive than it actually is, which are clearly different from other groups. > And it doesn't seem appropriate to let other groups treat it as cpu > stall because the rq->curr is also the victim rather than the one > causes stall (so it's different from rq->curr causing memstall and > observed as cpustall by others). IMHO, we don't care who causes stall, instead we care about what affects workload productivity. > >> >> So I think it's reasonable to account this IRQ/SOFTIRQ delta to rq->curr's groups >> as PSI_IRQ_FULL pressure stall. And per-cpu IRQ stall can also get from psi_system. >> >