From patchwork Tue May 13 09:42:43 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Yingliang X-Patchwork-Id: 348308 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 2F8AB1400D5 for ; Tue, 13 May 2014 19:43:01 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1760271AbaEMJmy (ORCPT ); Tue, 13 May 2014 05:42:54 -0400 Received: from szxga01-in.huawei.com ([119.145.14.64]:28139 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759744AbaEMJmx (ORCPT ); Tue, 13 May 2014 05:42:53 -0400 Received: from 172.24.2.119 (EHLO szxeml211-edg.china.huawei.com) ([172.24.2.119]) by szxrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BVK31644; Tue, 13 May 2014 17:42:49 +0800 (CST) Received: from SZXEML417-HUB.china.huawei.com (10.82.67.156) by szxeml211-edg.china.huawei.com (172.24.2.182) with Microsoft SMTP Server (TLS) id 14.3.158.1; Tue, 13 May 2014 17:42:49 +0800 Received: from localhost (10.177.18.231) by szxeml417-hub.china.huawei.com (10.82.67.156) with Microsoft SMTP Server id 14.3.158.1; Tue, 13 May 2014 17:42:45 +0800 From: Yang Yingliang To: CC: , , , Subject: [PATCH net-next] net_sched: increase drop count when packets are dropped Date: Tue, 13 May 2014 17:42:43 +0800 Message-ID: <1399974163-8788-1-git-send-email-yangyingliang@huawei.com> X-Mailer: git-send-email 1.8.1.msysgit.1 MIME-Version: 1.0 X-Originating-IP: [10.177.18.231] X-CFilter-Loop: Reflected Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When packets are dropped because of overlimit, the drop count should be increased. Replace kfree_skb() with qdisc_drop() for increasing drop count. Signed-off-by: Yang Yingliang --- net/sched/sch_fq.c | 2 +- net/sched/sch_fq_codel.c | 3 ++- net/sched/sch_hhf.c | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/sched/sch_fq.c b/net/sched/sch_fq.c index 23c682b42f99..958ef7d4b825 100644 --- a/net/sched/sch_fq.c +++ b/net/sched/sch_fq.c @@ -714,7 +714,7 @@ static int fq_change(struct Qdisc *sch, struct nlattr *opt) if (!skb) break; - kfree_skb(skb); + qdisc_drop(skb, sch); drop_count++; } qdisc_tree_decrease_qlen(sch, drop_count); diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c index 0bf432c782c1..bcfe4594470f 100644 --- a/net/sched/sch_fq_codel.c +++ b/net/sched/sch_fq_codel.c @@ -344,7 +344,8 @@ static int fq_codel_change(struct Qdisc *sch, struct nlattr *opt) while (sch->q.qlen > sch->limit) { struct sk_buff *skb = fq_codel_dequeue(sch); - kfree_skb(skb); + qdisc_drop(skb, sch); + q->drop_overlimit++; q->cstats.drop_count++; } qdisc_tree_decrease_qlen(sch, q->cstats.drop_count); diff --git a/net/sched/sch_hhf.c b/net/sched/sch_hhf.c index 6aab8619bbb0..71542d2cecac 100644 --- a/net/sched/sch_hhf.c +++ b/net/sched/sch_hhf.c @@ -593,7 +593,8 @@ static int hhf_change(struct Qdisc *sch, struct nlattr *opt) while (sch->q.qlen > sch->limit) { struct sk_buff *skb = hhf_dequeue(sch); - kfree_skb(skb); + qdisc_drop(skb, sch); + q->drop_overlimit++; } qdisc_tree_decrease_qlen(sch, qlen - sch->q.qlen);