Re: Re: [PATCH] kernel/module: Use BUG_ON instead of if condition followed by BUG.

From: Jessica Yu
Date: Tue Apr 13 2021 - 08:44:21 EST


+++ 周传高 [13/04/21 15:21 +0800]:

+++ zhouchuangao [30/03/21 05:07 -0700]:
It can be optimized at compile time.

Signed-off-by: zhouchuangao <zhouchuangao@xxxxxxxx>

Hi,

Could you please provide a more descriptive changelog? I.e., Is this
a fix for a cocinelle warning? What are the optimization(s)?

Thanks,

First,
This patch comes from cocinelle warning.

Second,
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)

BUG_ON uses unlikely in if(). Through disassembly, we can see that
brk #0x800 is compiled to the end of the function.
As you can see below:
......
ffffff8008660bec: d65f03c0 ret
ffffff8008660bf0: d4210000 brk #0x800

Usually, the condition in if () is not satisfied. For the multi-stage pipeline,
we do not need to perform fetch decode and excute operation on brk
instruction.

In my opinion, this can improve the efficiency of the multi-stage pipeline.

Thanks. Could you please modify your commit/changelog message to
include this information (including the coccinelle warning) and resend
the patch?