Re: [PATCH net-next] tcp: minor optimization in tcp ack fast path processing
From: Yafang Shao <hidden>
Date: 2018-11-08 01:46:21
Also in:
lkml
On Wed, Nov 7, 2018 at 11:16 PM Eric Dumazet [off-list ref] wrote:
On 11/07/2018 03:20 AM, Yafang Shao wrote:quoted
Bitwise operation is a little faster.quoted
So I replace after() with (flag & FLAG_SND_UNA_ADVANCED) as this flag is already set before. Cc: Joe Perches <joe@perches.com> Signed-off-by: Yafang Shao <redacted> --- net/ipv4/tcp_input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 2868ef2..0167015 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c@@ -3610,7 +3610,7 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag) if (flag & FLAG_UPDATE_TS_RECENT) tcp_replace_ts_recent(tp, TCP_SKB_CB(skb)->seq); - if (!(flag & FLAG_SLOWPATH) && after(ack, prior_snd_una)) { + if (!(flag & FLAG_SLOWPATH) && (flag & FLAG_SND_UNA_ADVANCED)) { /* Window is constant, pure forward advance. * No more checks are required. * Note, we use the fact that SND.UNA>=SND.WL2.What about reducing this to a single conditional jump ? if ((flag & (FLAG_SLOWPATH | FLAG_SND_UNA_ADVANCED)) == FLAG_SND_UNA_ADVANCED) {
That's better. Will change it. Thanks Yafang