Re: [PATCH v3 03/14] sched/core: uclamp: add CPU's clamp groups accounting

From: Patrick Bellasi
Date: Thu Aug 16 2018 - 09:33:00 EST


Hi Dietmar!

On 15-Aug 12:59, Dietmar Eggemann wrote:
> On 08/15/2018 12:54 PM, Patrick Bellasi wrote:
> >On 15-Aug 11:37, Dietmar Eggemann wrote:
> >>On 08/14/2018 06:49 PM, Patrick Bellasi wrote:

[...]

> >>If this is only for testing/debugging, I would suggest a simple one line
> >>BUG_ON()
> >
> >These are (eventually) considered as recoverable errors... thus,
> >AFAIK, using BUG_ON is overkilling and discouraged:
> > https://elixir.bootlin.com/linux/latest/source/include/asm-generic/bug.h#L42
>
> Not sure about that. If this refcounting is out of sync, that's indicating a
> serious issue here for me which should be fixed.

Well, refconting seems quite ok to me, we always inc/dec under RQ
locking and it's a per-CPU variable.

The warning is there to report issues on further testing as well as to
be safe with respect to possible future modifications of the code.

> >>You find CONFIG_SCHED_DEBUG=y in production kernels as well.
> >
> >AFAIK, that setting is discouraged for production kernels...
> >Moreover, it's still better to WARN sometimes on a production kernel
> >the crash the device, isnt't it?
>
> IMHO, if this is something which should not happen at all, a BUG_ON() is the
> right thing to do here.

I don't agree on that. I agree it should not happen but since it's a
recoverable error it think we should not panic.

There are really few BUG_ON() in core.c and they are all for much more
serious issues than a (eventually) broken refcount.

IMHO instead an (unlikely) inconsistent refcont for an "optional
optimization" on "frequency selection" is not such a critical
failure worth a device crash.

> And you get the call stack to investigate why it hit.

We can always add a stack dump if we notice the warning.

But, since we do not agree on that point, I would say we should better
wait for what the maintainers prefers.

Best,
Patrick

--
#include <best/regards.h>

Patrick Bellasi