Re: [PATCH v2] net/core: Fix BUG to BUG_ON conditionals.

From: David Miller
Date: Mon Oct 09 2017 - 19:17:14 EST


From: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx>
Date: Mon, 9 Oct 2017 16:06:20 -0700

>> For these archs, wouldn't it then be more efficient to use BUG_ON
>> rather than BUG()?
>
> why more efficient? any data to prove that?

It can completely eliminate a branch.

For example on powerpc if you use BUG() then the code generated is:

test condition
branch_not_true 1f
unconditional_trap
1:

Whereas with BUG_ON() it's just:

test condition
trap_if_true

Which is a lot better even when the branches in the first case are
well predicted.