From: Dan Carpenter <dan.carpenter@oracle.com>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: Tomas Bortoli <tomasbortoli@gmail.com>,
Marcel Holtmann <marcel@holtmann.org>,
Jaganath Kanakkassery <jaganath.k.os@gmail.com>,
Johan Hedberg <johan.hedberg@gmail.com>,
linux-bluetooth <linux-bluetooth@vger.kernel.org>,
kernel-janitors@vger.kernel.org
Subject: Re: [PATCH] Bluetooth: hci_event: potential out of bounds parsing ADV events
Date: Thu, 4 Apr 2019 11:06:27 +0300 [thread overview]
Message-ID: <20190404080627.GG32590@kadam> (raw)
In-Reply-To: <CAM_iQpU2qwezhk8XdnX+kvUi8Oi0mwNxRuFOo8uGvjZaPZGNWA@mail.gmail.com>
On Wed, Apr 03, 2019 at 03:55:20PM -0700, Cong Wang wrote:
> I tried checkpatch.pl, it has no such a complain.
Huh?
I sorry, I must have been very unclear if you're asking about
checkpatch. Checkpatch is a Perl script. It's basically like grep. It
has no idea about fast paths or benchmarking. Let me try explain
better.
The likely/unlikely annotations are there to help optimize branch
prediction and make the code run faster. In the real world if you can't
benchmark or measure or detect a speed improvement then it's not a real
speed improvement.
1) HCI events don't happen often enough to where the speed can be easily
benchmarked. In that situation, we just write the code as readably
as possible instead of trying to micro optimize it.
2) The compiler already does common sense branch prediction. These
conditions look straight forward so it probably gets it right. You
should take a look at the object code. The compiler probably gets
it right. I bet that these annotations don't even affect the
compiled code let alone the benchmarking output.
So in this case, we are not adding likely and unlikely for their
intended purpose of improving benchmarks. I guess we are instead adding
them just for the human readers? But most people can immediately see
that this is an error path so they don't need the annotations. In fact
the annotations obscure what the error condition is so they hurt
readability. Now there are just too many parentheses to keep track of.
if (unlikely(!pskb_may_pull(skb, sizeof(*rp))))
return;
if (!pskb_may_pull(skb, sizeof(*rp)))
return;
I know this isn't explained in CodingStyle but some things are
assumed. In drivers/ about 1.5% of if statements have likely/unlikely
annotations. It really is not normal to add it to everything willy-nilly
for no reason.
regards,
dan carpenter
next prev parent reply other threads:[~2019-04-04 8:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-30 7:25 [PATCH] Bluetooth: hci_event: potential out of bounds parsing ADV events Dan Carpenter
2019-03-30 9:20 ` Tomas Bortoli
2019-03-30 22:44 ` Tomas Bortoli
2019-04-01 6:32 ` Dan Carpenter
2019-04-01 17:24 ` Tomas Bortoli
2019-04-01 17:41 ` Dan Carpenter
2019-04-03 6:54 ` Jaganath K
2019-04-01 18:03 ` Cong Wang
2019-04-02 6:33 ` Dan Carpenter
2019-04-02 17:42 ` Cong Wang
2019-04-02 18:46 ` Tomas Bortoli
2019-04-02 19:55 ` Dan Carpenter
2019-04-03 22:55 ` Cong Wang
2019-04-04 8:06 ` Dan Carpenter [this message]
2019-04-05 17:16 ` Cong Wang
2019-04-05 20:48 ` Dan Carpenter
2019-04-05 21:05 ` Tomas Bortoli
2019-04-05 21:14 ` Dan Carpenter
[not found] ` <CAAHj5qj3PciY8ngqSGzH3=TQcm5vCghb0Z_0Y3DFQjTLMUM-9Q@mail.gmail.com>
2019-04-05 21:23 ` Dan Carpenter
2019-04-02 20:13 ` Dan Carpenter
2019-04-03 22:51 ` Cong Wang
2019-04-04 6:35 ` Dan Carpenter
2019-04-05 16:28 ` Cong Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190404080627.GG32590@kadam \
--to=dan.carpenter@oracle.com \
--cc=jaganath.k.os@gmail.com \
--cc=johan.hedberg@gmail.com \
--cc=kernel-janitors@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=tomasbortoli@gmail.com \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).