From patchwork Wed Dec 30 17:54:44 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Fastabend X-Patchwork-Id: 561787 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 2C0B2140BD4 for ; Thu, 31 Dec 2015 04:55:09 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=o36L0hU4; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932081AbbL3RzF (ORCPT ); Wed, 30 Dec 2015 12:55:05 -0500 Received: from mail-pa0-f46.google.com ([209.85.220.46]:35557 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755135AbbL3RzD (ORCPT ); Wed, 30 Dec 2015 12:55:03 -0500 Received: by mail-pa0-f46.google.com with SMTP id do7so123537pab.2 for ; Wed, 30 Dec 2015 09:55:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:subject:to:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=bhV9vG0k1HCGtfdjDlGJcH7K0mZvQargPGf1DdoseD4=; b=o36L0hU47ACWGszuFmXJnewItKhk9IdSypNFe1yqFEmjr13iDD0YHoxnUTwnZCwYrN Y+A5CBxBM4K/S6U106k7e/hBlHJGpMeUBgin/P4EHegmcoUaq2W9BIoJXt5QQ4yraXJB tBioSUxwdJKvEt4Ya3CL4kKikqMvn/u/AcbwAb7ARppzqvbmoIuJoPPy7onbLsieRv81 Cq1DRPIy9ownfD10M06wApycTazaWJp5vvXrAwS+JtyuwxUQqexlsicKKxw7mrpSzmQi GwQjdYGf4WzO/RD6OBDKI5zEbwqBPRzMKTuzWoSpU6jruCwgmsMgDXs9fGXCKyCiV7OO GLnA== X-Received: by 10.66.141.41 with SMTP id rl9mr95036181pab.139.1451498102993; Wed, 30 Dec 2015 09:55:02 -0800 (PST) Received: from [127.0.1.1] ([72.168.144.108]) by smtp.gmail.com with ESMTPSA id 6sm33869255pfm.46.2015.12.30.09.54.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Dec 2015 09:55:02 -0800 (PST) From: John Fastabend X-Google-Original-From: John Fastabend Subject: [RFC PATCH 10/12] net: sched: helper to sum qlen To: daniel@iogearbox.net, eric.dumazet@gmail.com, jhs@mojatatu.com, aduyck@mirantis.com, brouer@redhat.com, davem@davemloft.net Cc: john.r.fastabend@intel.com, netdev@vger.kernel.org, john.fastabend@gmail.com Date: Wed, 30 Dec 2015 09:54:44 -0800 Message-ID: <20151230175444.26257.92434.stgit@john-Precision-Tower-5810> In-Reply-To: <20151230175000.26257.41532.stgit@john-Precision-Tower-5810> References: <20151230175000.26257.41532.stgit@john-Precision-Tower-5810> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Reporting qlen when qlen is per cpu requires aggregating the per cpu counters. This adds a helper routine for this. Signed-off-by: John Fastabend --- include/net/sch_generic.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index 30f4c60..2c57278 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -286,6 +286,21 @@ static inline int qdisc_qlen(const struct Qdisc *q) return q->q.qlen; } +static inline int qdisc_qlen_sum(const struct Qdisc *q) +{ + __u32 qlen = 0; + int i; + + if (q->flags & TCQ_F_NOLOCK) { + for_each_possible_cpu(i) + qlen += per_cpu_ptr(q->cpu_qstats, i)->qlen; + } else { + qlen = q->q.qlen; + } + + return qlen; +} + static inline struct qdisc_skb_cb *qdisc_skb_cb(const struct sk_buff *skb) { return (struct qdisc_skb_cb *)skb->cb;