Re: [PATCH 3/3] mm/nommu: drop unlikely behind BUG_ON()

Davidlohr Bueso
2015-10-05T03:38:26Z

On Mon, 05 Oct 2015, Geliang Tang wrote:

>On Sun, Oct 04, 2015 at 06:50:55PM -0700, Davidlohr Bueso wrote:
>> On Sun, 04 Oct 2015, Geliang Tang wrote:
>>
>> >BUG_ON() already contain an unlikely compiler flag. Drop it.
>> >
>> >Signed-off-by: Geliang Tang <geliangtang@163.com>
>>
>> Acked-by: Davidlohr Bueso <dave@stgolabs.net>
>>
>> ... but I believe you do have some left:
>>
>> drivers/scsi/scsi_lib.c: BUG_ON(unlikely(count > ivecs));
>> drivers/scsi/scsi_lib.c: BUG_ON(unlikely(count > queue_max_integrity_segments(rq->q)));
>> kernel/sched/core.c: BUG_ON(unlikely(task_stack_end_corrupted(prev)));
>
>Thanks for your review, the left have been sended out already in two other patches.

So given that the 'unlikely' is based on CONFIG_BUG/HAVE_ARCH_BUG_ON, the
changelog needs to be rewritten. Ie mentioning at least why it should be
ok to drop the redundant predictions: (1) For !CONFIG_BUG cases, the bug call
is a no-op, so we couldn't care less and the change is ok. (2) ppc and
mips, which HAVE_ARCH_BUG_ON, do not rely on branch predictions as it seems
to be pointless[1] and thus callers should not be trying to push an optimization
in the first place.

Also, I think that all the changes should be in the same patch. Logically,
this is a tree wide change, and trivial enough. But I don't really have a
preference.

Thanks,
Davidlohr

[1] http://lkml.iu.edu/hypermail/linux/kernel/1101.3/02289.html