From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <30uefXQQKDhU5Jv819916z.x977v5z-H303-0vDE63DED.wF00zCw69vE.8zE@flex--kyan.bounces.google.com> Received: from mail-vk1-xa4a.google.com (mail-vk1-xa4a.google.com [IPv6:2607:f8b0:4864:20::a4a]) (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 B60CA3B29E for ; Thu, 10 Oct 2019 22:24:18 -0400 (EDT) Received: by mail-vk1-xa4a.google.com with SMTP id a130so2940268vke.0 for ; Thu, 10 Oct 2019 19:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:message-id:mime-version:subject:from:to:cc; bh=pUbhQpJqyQJujGGClNz5rGmi70325W4vJGIc//2AsLU=; b=TZpDuH+CtoaZW48xbK27bT8Enq+cfoyxNqz92gTog1NMcRv7axdRUt8GE1jRFig2yl dADCRJ4LoasiDbn4RtpXrlUjHr1VgguwFY+OkzpFxTZwDZrUQGIzs2clK+JF6/9/n4QA pXPG7JS+/kMnOTbrupQrdIiaxRdZ+ENo/rjxMVQux/hI8ZR11FLDETY20TcOk5RQVH3o vu7XpXIJCnnMDwAhVhbBGpCAO5Bx1ud9L7NiViyWoPpDkX9NH7GZ0vB0OfrUte2JBjJ0 T3CA+Ph/1o5OZTRaATzD3Wu2m31eRR5JXfTZFirBX3UebEwlMwlv/Uy4wFqDU44Sj1+8 93bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=pUbhQpJqyQJujGGClNz5rGmi70325W4vJGIc//2AsLU=; b=FuSxUTZ9Cv+QWnD6+zyGC/3g+R3vghZA9kGGs/ddxhdiOnSE3ZUXytjHP6qCLCBau6 F6xiOXy+lAIYKE3443734TTauvPvGBRFxY0ViyLhq/RZBDxuomjHuDlKs0L1TvYiZyUK cgSM0g9tXy/s8NB2DcI73XVP8ZuZSCTgJ7v828IktS/vloc8IgFygVWkKqZYO/UJKSGx /HuJXmVnz5ly390FqFZSY9xphp0dIp9tiJzLHBdnoWCMMz91FntFtc52EjF/r3ppPKlo X7nPnmShjuUsCnA5rtGK1E7YgocWcrjQUan9FczbTIIpYIGSqszvwgl2BgRXrJ8EwNnj jvTQ== X-Gm-Message-State: APjAAAUbH/3zC/4loImXfNHviPMHWr18/p0cjJtnDDeoy6XEOXtw/xhb oNzY1djIiVnjgi2ENCYyxVrTKkT1 X-Google-Smtp-Source: APXvYqxY3q2B3RSwzFSwc+FyjuVBvP5Fj90jJy/rxeafgUwzP3vNGN4KnVt5cfm9v1T2wdN74PDWYXeB X-Received: by 2002:a67:f4c4:: with SMTP id s4mr7526195vsn.185.1570760658126; Thu, 10 Oct 2019 19:24:18 -0700 (PDT) Date: Thu, 10 Oct 2019 19:24:11 -0700 Message-Id: <20191011022413.176208-1-kyan@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.23.0.700.g56cf767bdb-goog From: Kan Yan To: johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, make-wifi-fast@lists.bufferbloat.net, toke@redhat.com, nbd@nbd.name, ath10k@lists.infradead.org, yiboz@codeaurora.org, Kan Yan Content-Type: text/plain; charset="UTF-8" Subject: [Make-wifi-fast] [PATCH v4 0/2] Implement Airtime-based Queue Limit (AQL) X-BeenThere: make-wifi-fast@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Oct 2019 02:24:18 -0000 This patch series implements Airtime-based Queue Limit (AQL) in the mac80211 and Ath10k driver. It is based on an earlier version from the ChromiumOS tree[0]. This version has been tested with QCA9884 platform with 4.14 kernel. Tests show AQL is able to reduce latency by an order of magnitude in a congested environment without negative impact on the throughput. [0] https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1703105/7 Kan Yan (2): mac80211: Implement Airtime-based Queue Limit (AQL) ath10k: Enable Airtime-based Queue Limit (AQL) drivers/net/wireless/ath/ath10k/htt_rx.c | 1 + drivers/net/wireless/ath/ath10k/mac.c | 6 +- drivers/net/wireless/ath/ath10k/txrx.c | 11 +++- include/net/cfg80211.h | 7 +++ include/net/mac80211.h | 47 ++++++++++++++ net/mac80211/debugfs.c | 78 ++++++++++++++++++++++++ net/mac80211/debugfs_sta.c | 43 ++++++++++--- net/mac80211/ieee80211_i.h | 4 ++ net/mac80211/main.c | 9 ++- net/mac80211/sta_info.c | 33 ++++++++++ net/mac80211/sta_info.h | 4 ++ net/mac80211/tx.c | 46 +++++++++++++- 12 files changed, 270 insertions(+), 19 deletions(-) -- Changes from v1: - Fix checkpatch error. - Keep iterate the list of active_txq until an eligible txq's deficit become non-negative in ieee80211_next_txq(), instead of break the loop after one iteration. - Enforce the AQL limit in ath10k's pull mode in ath10k_htt_rx_tx_fetch_ind() Changes from v2: - More coding style fixes. - Fixed a bug that txq is not removed from the active_txqs list when txq.sta is null. - Removed AQL queue limit check from ieee80211_txq_may_transmit(), so at least one frame will be sent to the firmware when called from ath10k_htt_rx_tx_fetch_ind() in ath10k's poll mode. Changes from v3: - Coding style fixes.