Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp848303ybf; Thu, 27 Feb 2020 00:35:04 -0800 (PST) X-Google-Smtp-Source: APXvYqx/wtBMhl6g1oPZl+aPKbUYsYQ0XFJHg63fRQrNoBhd/hS+uEaqoJ6/Bz+7ESWcRq1T9psp X-Received: by 2002:aca:cf94:: with SMTP id f142mr2341479oig.31.1582792504747; Thu, 27 Feb 2020 00:35:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582792504; cv=none; d=google.com; s=arc-20160816; b=VTMf93fpHGXk5fTimbSsHZjYEtx/1tZhggJeIf1QixK1u8mrsEMrTYF+3/J34e01dS VNoRHezKpXzz+VL6MdpRZazRCwl0Z1UzyPa59CqLhI2x2n4vn7f9zv67cf/NWpFJcj01 IBcr+2ukniFCLGNWNph54wkzCZ4Mf9atYfbzJZggLZqYB1KNneYC1HJo66EXWRYeK8Tk Ki3SQc6ojM8n0v41+c9vV1UQofwLkl8nO8GTWaFvA/0nZ46Ax17L1uknj61WcOVwbY5L H7ByoqKZVBotTdvRwANNAKt1xC67Q+rAXKJJc68SD4GT8zuYcV/oFXtAOizUFznPvr5P taPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:from:references:cc:to:subject:dkim-signature; bh=iA93jDaYSEerFc+SnNqGA9XPP3DRA9rSr4ZL56wWWmU=; b=Y9dex1LbjL7dxD7iICFBcasqn2k9cANL779ZACavNhbmBnNYrECMILsEQmo+D7H2L2 tpgGYiCwJlBsXLqNf0dWvAnYaGNHg4FKct2yMcfkM/MNXpCXa+B4zK6OwOjbGOqjBO0Y 2Z4Gx/YYucNkF3i+ySq6XBMvNRxfYYqmYPVDsDpVDjlurTKhHXrh49Y/jkkW+nRQFIjb o1VfYof08qDXaC5OxwAa7e+T8UfVGL39i/dNk+YEBs9zb4YHn/wvkNiL+JmHrFFR+y6u yEIrRkkMrxF/Ozv20WQAy1YPoeS3zJeOMcBxzmgYkCaMSbpTC65iXy2Df8NRRVwoNDSu Bhow== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@nbd.name header.s=20160729 header.b=YAA6uCLU; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l21si1173629otk.142.2020.02.27.00.34.52; Thu, 27 Feb 2020 00:35:04 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@nbd.name header.s=20160729 header.b=YAA6uCLU; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728537AbgB0IeO (ORCPT + 99 others); Thu, 27 Feb 2020 03:34:14 -0500 Received: from nbd.name ([46.4.11.11]:59406 "EHLO nbd.name" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728440AbgB0IeO (ORCPT ); Thu, 27 Feb 2020 03:34:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=nbd.name; s=20160729; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=iA93jDaYSEerFc+SnNqGA9XPP3DRA9rSr4ZL56wWWmU=; b=YAA6uCLUccDdXgOch3wdNxcYEB 6IvLfDe0T3pPa/VPKZrS3NFCS0/4M/bxlyEUYQrfJ9qDfpOTn0PGnl0FD/6jJtJ3TnPaeMeAvul9d Fr2Ry1u1lgIt5Sz8I52yN1OqWsvxID7ScHlTFKFo8bhbUW4b9OYCkn7Onmrsckym2scU=; Received: from [80.255.7.118] (helo=nf.local) by ds12 with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1j7EcR-000423-Uc; Thu, 27 Feb 2020 09:34:08 +0100 Subject: Re: [PATCH v11 4/4] mac80211: Use Airtime-based Queue Limits (AQL) on packet dequeue To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , Kan Yan , johannes@sipsolutions.net Cc: linux-wireless@vger.kernel.org, make-wifi-fast@lists.bufferbloat.net, yiboz@codeaurora.org, john@phrozen.org, lorenzo@kernel.org, rmanohar@codeaurora.org, kevinhayes@google.com References: <20191119060610.76681-1-kyan@google.com> <20191119060610.76681-5-kyan@google.com> <789d592c-5b1b-b785-6d9c-86b7cc7d57f4@nbd.name> <87k149xbb4.fsf@toke.dk> From: Felix Fietkau Autocrypt: addr=nbd@nbd.name; prefer-encrypt=mutual; keydata= xsDiBEah5CcRBADIY7pu4LIv3jBlyQ/2u87iIZGe6f0f8pyB4UjzfJNXhJb8JylYYRzIOSxh ExKsdLCnJqsG1PY1mqTtoG8sONpwsHr2oJ4itjcGHfn5NJSUGTbtbbxLro13tHkGFCoCr4Z5 Pv+XRgiANSpYlIigiMbOkide6wbggQK32tC20QxUIwCg4k6dtV/4kwEeiOUfErq00TVqIiEE AKcUi4taOuh/PQWx/Ujjl/P1LfJXqLKRPa8PwD4j2yjoc9l+7LptSxJThL9KSu6gtXQjcoR2 vCK0OeYJhgO4kYMI78h1TSaxmtImEAnjFPYJYVsxrhay92jisYc7z5R/76AaELfF6RCjjGeP wdalulG+erWju710Bif7E1yjYVWeA/9Wd1lsOmx6uwwYgNqoFtcAunDaMKi9xVQW18FsUusM TdRvTZLBpoUAy+MajAL+R73TwLq3LnKpIcCwftyQXK5pEDKq57OhxJVv1Q8XkA9Dn1SBOjNB l25vJDFAT9ntp9THeDD2fv15yk4EKpWhu4H00/YX8KkhFsrtUs69+vZQwc0cRmVsaXggRmll dGthdSA8bmJkQG5iZC5uYW1lPsJgBBMRAgAgBQJGoeQnAhsjBgsJCAcDAgQVAggDBBYCAwEC HgECF4AACgkQ130UHQKnbvXsvgCgjsAIIOsY7xZ8VcSm7NABpi91yTMAniMMmH7FRenEAYMa VrwYTIThkTlQzsFNBEah5FQQCACMIep/hTzgPZ9HbCTKm9xN4bZX0JjrqjFem1Nxf3MBM5vN CYGBn8F4sGIzPmLhl4xFeq3k5irVg/YvxSDbQN6NJv8o+tP6zsMeWX2JjtV0P4aDIN1pK2/w VxcicArw0VYdv2ZCarccFBgH2a6GjswqlCqVM3gNIMI8ikzenKcso8YErGGiKYeMEZLwHaxE Y7mTPuOTrWL8uWWRL5mVjhZEVvDez6em/OYvzBwbkhImrryF29e3Po2cfY2n7EKjjr3/141K DHBBdgXlPNfDwROnA5ugjjEBjwkwBQqPpDA7AYPvpHh5vLbZnVGu5CwG7NAsrb2isRmjYoqk wu++3117AAMFB/9S0Sj7qFFQcD4laADVsabTpNNpaV4wAgVTRHKV/kC9luItzwDnUcsZUPdQ f3MueRJ3jIHU0UmRBG3uQftqbZJj3ikhnfvyLmkCNe+/hXhPu9sGvXyi2D4vszICvc1KL4RD aLSrOsROx22eZ26KqcW4ny7+va2FnvjsZgI8h4sDmaLzKczVRIiLITiMpLFEU/VoSv0m1F4B FtRgoiyjFzigWG0MsTdAN6FJzGh4mWWGIlE7o5JraNhnTd+yTUIPtw3ym6l8P+gbvfoZida0 TspgwBWLnXQvP5EDvlZnNaKa/3oBes6z0QdaSOwZCRA3QSLHBwtgUsrT6RxRSweLrcabwkkE GBECAAkFAkah5FQCGwwACgkQ130UHQKnbvW2GgCfTKx80VvCR/PvsUlrvdOLsIgeRGAAn1ee RjMaxwtSdaCKMw3j33ZbsWS4 Message-ID: <829b6b28-99cd-ea9d-fea3-603a10eae401@nbd.name> Date: Thu, 27 Feb 2020 09:34:06 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <87k149xbb4.fsf@toke.dk> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 2020-02-26 22:56, Toke Høiland-Jørgensen wrote: > Felix Fietkau writes: >> - We need an API that allows the driver to change the pending airtime >> values, e.g. subtract estimated tx time for a packet. >> mt76 an ath9k can queue packets inside the driver that are not currently >> in the hardware queues. Typically if the txqs have more data than what >> gets put into the hardware queue, both drivers will pull an extra frame >> and queue it in its private txq struct. This frame will get used on the >> next txq scheduling round for that particular station. >> If you have lots of stations doing traffic (or having driver buffered >> frames in powersave mode), this could use up a sizable chunk of the AQL >> budget. > > I'm a bit more skeptical about this. If the driver buffers a bunch of > packets that are not accounted that will hurt that station due to extra > latency when it wakes up. For ath9k, this is the retry_q you're talking > about, right? The number of packets queued on that is fairly limited, > isn't it? What kind of powersave buffering is the driver doing, and why > can't it leave the packets on the TXQ? That would allow them to be > scheduled along with any new ones that might have arrived in the > meantime, which would be a benefit for latency. For mt76 there should be max. 1 frame in the retry queue, it's just a frame that was pulled from the txq in a transmission attempt but that it couldn't put in the hw queue because it didn't fit in the current aggregate batch. If such a frame is in the retry queue and the sta ends up switching to powersave mode, that frame stays buffered in the driver queue until the sta wakes up. > I can see how it can be a problem that many stations in powersave can > block transmissions for *other* stations, though. Maybe an alternative > to the driver subtracting airtime could be to have mac80211 do something > like this when a station is put into powersave mode: > > local->aql_total_pending_airtime -= sum(sta->airtime[ac].aql_tx_pending) > > (where sum is the summation over all ACs) > > and the reverse when the station wakes back up? That should keep the > whole device from throttling but still prevent a big queue building up > for that sta when it wakes back up. Would that work, do you think? That solves most of the issue but is still incomplete. It also gets tricky when the driver starts pulling dequeueing packets in powersave mode (e.g. on PS-Poll). The remaining corner case is when there are a large number of stations that each have a single frame in their retry queue (see above). Having those frames counted for pending airtime could reduce the aggregation size for each station, even though those frames are not in the hw queue. - Felix