2019-08-28 21:10:49

by Denis Efremov (Oracle)

[permalink] [raw]
Subject: [PATCH] asm-generic: add unlikely to default BUG_ON(x)

Add unlikely to default BUG_ON(x) in !CONFIG_BUG. It makes
the define consistent with BUG_ON(x) in CONFIG_BUG.

Signed-off-by: Denis Efremov <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: <[email protected]>
---
include/asm-generic/bug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index aa6c093d9ce9..7357a3c942a0 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -185,7 +185,7 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
#endif

#ifndef HAVE_ARCH_BUG_ON
-#define BUG_ON(condition) do { if (condition) BUG(); } while (0)
+#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
#endif

#ifndef HAVE_ARCH_WARN_ON
--
2.21.0


2019-08-28 21:14:59

by Denis Efremov (Oracle)

[permalink] [raw]
Subject: Re: [PATCH] asm-generic: add unlikely to default BUG_ON(x)

Maybe it will be better to move this define out of ifdef, i.e.:

#ifdef CONFIG_BUG
...
-#define BUG_ON()...
...
#else
...
-#define BUG_ON()...
...
#endif

+#define BUG_ON()...

I can prepare a patch if you think it worth it.

Thanks,
Denis

On 29.08.2019 00:09, Denis Efremov wrote:
> Add unlikely to default BUG_ON(x) in !CONFIG_BUG. It makes
> the define consistent with BUG_ON(x) in CONFIG_BUG.
>
> Signed-off-by: Denis Efremov <[email protected]>
> Cc: Arnd Bergmann <[email protected]>
> Cc: <[email protected]>
> ---
> include/asm-generic/bug.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
> index aa6c093d9ce9..7357a3c942a0 100644
> --- a/include/asm-generic/bug.h
> +++ b/include/asm-generic/bug.h
> @@ -185,7 +185,7 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
> #endif
>
> #ifndef HAVE_ARCH_BUG_ON
> -#define BUG_ON(condition) do { if (condition) BUG(); } while (0)
> +#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
> #endif
>
> #ifndef HAVE_ARCH_WARN_ON
>

2019-08-30 20:10:14

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] asm-generic: add unlikely to default BUG_ON(x)

On Wed, Aug 28, 2019 at 11:09 PM Denis Efremov <[email protected]> wrote:
>
> Add unlikely to default BUG_ON(x) in !CONFIG_BUG. It makes
> the define consistent with BUG_ON(x) in CONFIG_BUG.
>
> Signed-off-by: Denis Efremov <[email protected]>
> Cc: Arnd Bergmann <[email protected]>
> Cc: <[email protected]>

This makes sense, I've applied it to the asm-generic tree for now.

Two concerns though:

- adding unlikely() can cause new (usually false-postive) compile time
warnings to show up in random configurations, so we'll have to see what
the build bots think

- Kees Cook has recently sent a series for asm/bug.h that was merged by
Andrew Morton. If there are is a conflict with your patch, it may be better
to merge both through the same tree, either linux-mm or asm-generic.

Arnd

2019-08-30 20:49:40

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] asm-generic: add unlikely to default BUG_ON(x)

On Fri, Aug 30, 2019 at 10:08:49PM +0200, Arnd Bergmann wrote:
> On Wed, Aug 28, 2019 at 11:09 PM Denis Efremov <[email protected]> wrote:
> >
> > Add unlikely to default BUG_ON(x) in !CONFIG_BUG. It makes
> > the define consistent with BUG_ON(x) in CONFIG_BUG.
> >
> > Signed-off-by: Denis Efremov <[email protected]>
> > Cc: Arnd Bergmann <[email protected]>
> > Cc: <[email protected]>
>
> This makes sense, I've applied it to the asm-generic tree for now.
>
> Two concerns though:
>
> - adding unlikely() can cause new (usually false-postive) compile time
> warnings to show up in random configurations, so we'll have to see what
> the build bots think
>
> - Kees Cook has recently sent a series for asm/bug.h that was merged by
> Andrew Morton. If there are is a conflict with your patch, it may be better
> to merge both through the same tree, either linux-mm or asm-generic.

FWIW, this patch looks sensible to me. :)

Reviewed-by: Kees Cook <[email protected]>

--
Kees Cook