Messages in this thread | | | Date | Fri, 21 Oct 2022 08:04:13 -1000 | From | Tejun Heo <> | Subject | Re: [RESEND] sched/fair: Add min_ratio for cfs bandwidth_control |
| |
Hello,
On Thu, Oct 20, 2022 at 07:08:13PM +0200, Peter Zijlstra wrote: > > This is a bit of a bandaid. I think what we really need to do is only > > throttling when running in userspace. In kernel space, it should just keep > > accumulating used cycles as debt which should be paid back before userspace > > code can run again so that we don't throttle at random places in the kernel. > > That's just moving the problem. But yeah; perhaps. Starving random > userspace is less of a problem I suppose.
Given that our primary mean of guaranteeing forward progress is the fact that the system runs out of other things to do when there are severe priority inversions, I don't think we can safely give control of throttling something running in the kernel to userspace.
IO control takes a similar approach with shared IOs which can have system-wide impacts and it's been working out pretty well. While some may go over the limit briefly, it's not that difficult to remain true to the intended configuration over time.
The only problem is the cases where userspace can cause a large amount of forced consumptions (e.g. for IOs, creating a lot of metadata updates without doing anything else), but even in the unlikely case similar problem exists for CPU, it's pretty easy to add specific control mechanisms around those (e.g. sth along the style of might_resched()).
So, yeah, I think this is the actual solution.
Thanks.
-- tejun
| |