From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-x230.google.com (mail-lf0-x230.google.com [IPv6:2a00:1450:4010:c07::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 63DC73B4A4 for ; Thu, 14 Apr 2016 08:16:34 -0400 (EDT) Received: by mail-lf0-x230.google.com with SMTP id c126so106254521lfb.2 for ; Thu, 14 Apr 2016 05:16:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=wYoGpH2/bmYhFMR0zXKR60YKCws/0fZCkzXIjUVLWKk=; b=CF9uyPbl4rRigHh3rdYupJkODdCVu5L9wAVukkwwMCVfxnIJvOUzqEBLn+1E730ttR rXrzyZI9O+PDb9poIgu6677ZpmilIcqGYuw7sZHAkyvY2lGwRRlasVMkHVfF2QbZcwYq h+tp4E1d64YHXgkBM2QpiZzZ7bSvbf4ew7130= 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:in-reply-to :references; bh=wYoGpH2/bmYhFMR0zXKR60YKCws/0fZCkzXIjUVLWKk=; b=RwQLWbxWREov/5oNXmzZXz/zcyzARbw2PLf6r1dSIXwOwC7AUzEotlt4rifjbRtGqk Fdp+6h4n9vzZY1po52lfX54javNducb/mEXtRLkpb4kR6GWpkU0b5o/7l/uHdBGYNjRa IgpyLtaMR6yAHxHC/s4LDycz88n8FDv1w5nkcPWTrVYwGVBKEGlW3nQhsmggsFLKpRv8 1oXwNJVc2HnpN1hSSOv6udflFJjpwf+8ilkXGY44W+IeZXwLnP7m+FsVxF433RfI4T2A tJ5ohGTY0km0/uuZjvJ2ROlWuwH9qAdq0LZi54GQ7Ldl+nsFYOENWqSSYWgQhN8P60OH NQJw== X-Gm-Message-State: AOPr4FUFfszoXqoXtB7P/ABm4p2UQ3tdU93U5hGPvLFSopIs0k1ixcRJeTdW1TZ0SuHxUcXxmnnCBfDGHPfKwy8TQIbIA5Ly6j+JGLuGUTZibnvJBkRoog9aTnOQUKmEAYZMdkbuBw== X-Received: by 10.25.167.19 with SMTP id q19mr6457614lfe.24.1460636193338; Thu, 14 Apr 2016 05:16:33 -0700 (PDT) Received: from localhost.localdomain ([91.198.246.10]) by smtp.gmail.com with ESMTPSA id b195sm6940112lfb.5.2016.04.14.05.16.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 14 Apr 2016 05:16:32 -0700 (PDT) From: Michal Kazior To: linux-wireless@vger.kernel.org Cc: johannes@sipsolutions.net, dave.taht@gmail.com, make-wifi-fast@lists.bufferbloat.net, codel@lists.bufferbloat.net, apenwarr@gmail.com, Michal Kazior Date: Thu, 14 Apr 2016 14:18:22 +0200 Message-Id: <1460636302-31161-6-git-send-email-michal.kazior@tieto.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1460636302-31161-1-git-send-email-michal.kazior@tieto.com> References: <1459420104-31554-1-git-send-email-michal.kazior@tieto.com> <1460636302-31161-1-git-send-email-michal.kazior@tieto.com> X-DomainID: tieto.com Subject: [Codel] [PATCHv3 5/5] mac80211: add debug knobs for codel X-BeenThere: codel@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: CoDel AQM discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Apr 2016 12:16:34 -0000 This adds a few debugfs entries to make it easier to test, debug and experiment. Signed-off-by: Michal Kazior --- net/mac80211/debugfs.c | 14 ++++++++++++++ net/mac80211/ieee80211_i.h | 2 ++ net/mac80211/tx.c | 21 ++++++++++++++------- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c index 5cbaa5872e6b..9088e505fa85 100644 --- a/net/mac80211/debugfs.c +++ b/net/mac80211/debugfs.c @@ -132,6 +132,10 @@ DEBUGFS_READONLY_FILE(fq_overlimit, "%u", local->fq.overlimit); DEBUGFS_READONLY_FILE(fq_collisions, "%u", local->fq.collisions); +DEBUGFS_READONLY_FILE(codel_drop_count, "%u", + local->cdrop_count); +DEBUGFS_READONLY_FILE(codel_ecn_mark, "%u", + local->cecn_mark); DEBUGFS_RW_FILE(fq_limit, DEBUGFS_RW_EXPR_FQ("%u", &local->fq.limit), @@ -139,6 +143,12 @@ DEBUGFS_RW_FILE(fq_limit, DEBUGFS_RW_FILE(fq_quantum, DEBUGFS_RW_EXPR_FQ("%u", &local->fq.quantum), "%u", local->fq.quantum); +DEBUGFS_RW_FILE(codel_interval, + DEBUGFS_RW_EXPR_FQ("%llu", &local->cparams.interval), + "%llu", local->cparams.interval); +DEBUGFS_RW_FILE(codel_target, + DEBUGFS_RW_EXPR_FQ("%llu", &local->cparams.target), + "%llu", local->cparams.target); #ifdef CONFIG_PM static ssize_t reset_write(struct file *file, const char __user *user_buf, @@ -330,6 +340,10 @@ void debugfs_hw_add(struct ieee80211_local *local) DEBUGFS_ADD(fq_collisions); DEBUGFS_ADD(fq_limit); DEBUGFS_ADD(fq_quantum); + DEBUGFS_ADD(codel_interval); + DEBUGFS_ADD(codel_target); + DEBUGFS_ADD(codel_drop_count); + DEBUGFS_ADD(codel_ecn_mark); statsd = debugfs_create_dir("statistics", phyd); diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h index 78953b495a25..7aecb7b6528c 100644 --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h @@ -1111,6 +1111,8 @@ struct ieee80211_local { struct fq fq; struct codel_vars *cvars; struct codel_params cparams; + unsigned int cdrop_count; + unsigned int cecn_mark; const struct ieee80211_ops *ops; diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 238cb8e979fd..b5506411b8e6 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1314,6 +1314,7 @@ static void codel_drop_fn(void *ctx, local = vif_to_sdata(txqi->txq.vif)->local; hw = &local->hw; + local->cdrop_count++; ieee80211_free_txskb(hw, skb); } @@ -1325,6 +1326,8 @@ static struct sk_buff *fq_tin_dequeue_fn(struct fq *fq, struct txq_info *txqi; struct codel_vars *cvars; struct codel_params *cparams; + struct sk_buff *skb; + u16 ecn_mark; bool overloaded; local = container_of(fq, struct ieee80211_local, fq); @@ -1339,13 +1342,17 @@ static struct sk_buff *fq_tin_dequeue_fn(struct fq *fq, /* TODO */ overloaded = false; - return codel_dequeue(txqi, - &flow->backlog, - 0, - cvars, - cparams, - codel_get_time(), - overloaded); + ecn_mark = cvars->ecn_mark; + skb = codel_dequeue(txqi, + &flow->backlog, + 0, + cvars, + cparams, + codel_get_time(), + overloaded); + local->cecn_mark += cvars->ecn_mark - ecn_mark; + + return skb; } static void fq_skb_free_fn(struct fq *fq, -- 2.1.4