From patchwork Sat May 2 05:19:43 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexei Starovoitov X-Patchwork-Id: 467186 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 8F603140320 for ; Sat, 2 May 2015 15:20:03 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750920AbbEBFT4 (ORCPT ); Sat, 2 May 2015 01:19:56 -0400 Received: from mail-pd0-f178.google.com ([209.85.192.178]:34475 "EHLO mail-pd0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750785AbbEBFTy (ORCPT ); Sat, 2 May 2015 01:19:54 -0400 Received: by pdbqa5 with SMTP id qa5so111204616pdb.1 for ; Fri, 01 May 2015 22:19:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=19Mb6A0fLCbm6vLbW29rkMgTcLsg0jgZ47n/a4dCuY4=; b=W3S0wf2rBbx/LunYl8sTxCnSMGV4wkw5Qp4/Gqmp5tJDeKQE3SZRQsmqYT2eEPv+p1 Pszy8umCqUa0d5bSKQrvX71prmqLGU2W/uyk+3WLgmHxN0ni1OL7I4fsW2fAnIfwvRuj 9kE3OoMu22E+edF+pMoEdc6xqS34dUcQ1v9c4Gpv0T1GIybkXPA/PKRKo261iZJzRVXr WKRYxlKHTGuQMJP04qpIj4VnwPUWeP4C79f3e+qdhPvcC/u+rUnWaKrQP2vJqu5i6DLX hqRJ8+Cbf9h7u6L36zAc4zR12yMcGjJLnj5uJBTKLL7P5XJTww6QJDUn5f4GZzruIyqY kgIw== X-Gm-Message-State: ALoCoQmyp9qex6MLjoXV+bV+bYsl6Tki6ytNpuYSpGjiVFhV7/yFLQqbXqBUNQWX4IwTqjx3jvCB X-Received: by 10.66.63.72 with SMTP id e8mr23273938pas.3.1430543994133; Fri, 01 May 2015 22:19:54 -0700 (PDT) Received: from localhost.localdomain ([12.229.56.227]) by mx.google.com with ESMTPSA id m8sm6410994pdn.5.2015.05.01.22.19.52 (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 01 May 2015 22:19:53 -0700 (PDT) From: Alexei Starovoitov To: "David S. Miller" Cc: Jamal Hadi Salim , Daniel Borkmann , Florian Westphal , netdev@vger.kernel.org Subject: [PATCH v3 net-next] tc: remove unused redirect ttl Date: Fri, 1 May 2015 22:19:43 -0700 Message-Id: <1430543983-10446-1-git-send-email-ast@plumgrid.com> X-Mailer: git-send-email 1.7.9.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jamal Hadi Salim improves ingress+u32 performance from 22.4 Mpps to 22.9 Mpps Signed-off-by: Jamal Hadi Salim Signed-off-by: Alexei Starovoitov Acked-by: Florian Westphal Acked-by: Daniel Borkmann Acked-by: Jesper Dangaard Brouer --- V2->V3: added From:Jamal tag and Acks V1->V2: missed removal of unused variable. include/uapi/linux/pkt_cls.h | 2 ++ net/core/dev.c | 9 --------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/include/uapi/linux/pkt_cls.h b/include/uapi/linux/pkt_cls.h index bf08e76bf505..f6344a522cd6 100644 --- a/include/uapi/linux/pkt_cls.h +++ b/include/uapi/linux/pkt_cls.h @@ -62,11 +62,13 @@ bits 9,10,11: redirect counter - redirect TTL. Loop avoidance #define SET_TC_NCLS(v) ( TC_NCLS | (v & ~TC_NCLS)) #define CLR_TC_NCLS(v) ( v & ~TC_NCLS) +#ifndef __KERNEL__ #define S_TC_RTTL _TC_MAKE32(9) #define M_TC_RTTL _TC_MAKEMASK(3,S_TC_RTTL) #define G_TC_RTTL(x) _TC_GETVALUE(x,S_TC_RTTL,M_TC_RTTL) #define V_TC_RTTL(x) _TC_MAKEVALUE(x,S_TC_RTTL) #define SET_TC_RTTL(v,n) ((V_TC_RTTL(n)) | (v & ~M_TC_RTTL)) +#endif #define S_TC_AT _TC_MAKE32(12) #define M_TC_AT _TC_MAKEMASK(2,S_TC_AT) diff --git a/net/core/dev.c b/net/core/dev.c index c7ba0388f1be..97a15ae8d07a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3531,18 +3531,9 @@ EXPORT_SYMBOL_GPL(br_fdb_test_addr_hook); */ static int ing_filter(struct sk_buff *skb, struct netdev_queue *rxq) { - struct net_device *dev = skb->dev; - u32 ttl = G_TC_RTTL(skb->tc_verd); int result = TC_ACT_OK; struct Qdisc *q; - if (unlikely(MAX_RED_LOOP < ttl++)) { - net_warn_ratelimited("Redir loop detected Dropping packet (%d->%d)\n", - skb->skb_iif, dev->ifindex); - return TC_ACT_SHOT; - } - - skb->tc_verd = SET_TC_RTTL(skb->tc_verd, ttl); skb->tc_verd = SET_TC_AT(skb->tc_verd, AT_INGRESS); q = rcu_dereference(rxq->qdisc);