Messages in this thread | | | Date | Mon, 23 Jul 2018 14:36:15 +0100 | From | Patrick Bellasi <> | Subject | Re: [PATCH v2 02/12] sched/core: uclamp: map TASK's clamp values into CPU's clamp groups |
| |
On 20-Jul 17:25, Suren Baghdasaryan wrote:
[...]
> > ---8<--- > > > > /* Uclamp flags */ > > #define SCHED_FLAG_UTIL_CLAMP_STRICT 0x11 /* Roll-back on failure */ > > #define SCHED_FLAG_UTIL_CLAMP_MIN 0x12 /* Update util_min */ > > #define SCHED_FLAG_UTIL_CLAMP_MAX 0x14 /* Update util_max */ > > #define SCHED_FLAG_UTIL_CLAMP ( \ > > SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX) > > > > Having ability to update only min or only max this way might be indeed > very useful. > Instead of rolling back on failure I would suggest to check both > inputs first to make sure there won't be any error before updating. > This would remove the need for SCHED_FLAG_UTIL_CLAMP_STRICT (which I > think any user would want to set to 1 anyway). > Looks like uclamp_group_get() can fail only if uclamp_group_find() > fails to find a slot for uclamp_value or a free slot. So one way to do > this search before update is to call uclamp_group_find() for both > UCLAMP_MIN and UCLAMP_MAX beforehand and if they succeed then pass > obtained next_group_ids into uclamp_group_get() to avoid doing the > same search twice. This requires some refactoring of > uclamp_group_get() but I think the end result would be a cleaner and > more predictable solution.
Yes, that sound possible... provided we check all the groups under the same uclamp_mutex, it should be possible to find the group_ids before actually increasing the refcount.
... will look into this for the next reposting.
-- #include <best/regards.h>
Patrick Bellasi
| |