Re: [PATCH v2] sched: Use BUG_ON

From: Jeremy Kerr
Date: Thu Jul 01 2021 - 21:19:39 EST


Hi Jason,

> The BUG_ON macro simplifies the if condition followed by BUG, so that
> we can use BUG_ON instead of if condition followed by BUG.

[...]

> -       if (spu_acquire(ctx))
> -               BUG();  /* a kernel thread never has signals pending */
> +       /* a kernel thread never has signals pending */
> +       BUG_ON(spu_acquire(ctx));

I'm not convinced that this is an improvement; you've combined the
acquire and the BUG into a single statement, and now it's no longer
clear what the comment applies to.

If you really wanted to use BUG_ON, something like this would be more
clear:

rc = spu_acquire(ctx);
/* a kernel thread never has signals pending */
BUG_ON(rc);

but we don't have a suitable rc variable handy, so we'd need one of
those declared too. You could avoid that with:

if (spu_acquire(ctx))
BUG_ON(1); /* a kernel thread never has signals pending */

but wait: no need for the constant there, so this would be better:

if (spu_acquire(ctx))
BUG(); /* a kernel thread never has signals pending */

wait, what are we doing again?

To me, this is a bit of shuffling code around, for no real benefit.

Regards,


Jeremy