Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1137014ybl; Fri, 6 Dec 2019 11:53:38 -0800 (PST) X-Google-Smtp-Source: APXvYqxUaLSCzSOCibp5zW/+a9Nj7+agLo0ARIxYGsFf9veQmLBFyB/yQvz+jPqo0tmWwJYEvl5B X-Received: by 2002:a05:6830:2361:: with SMTP id r1mr12042368oth.88.1575662018741; Fri, 06 Dec 2019 11:53:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1575662018; cv=none; d=google.com; s=arc-20160816; b=B/2vL9gp87RdZsqFdtEhzRm4bijzxcsG5HJAy6htk7otuL/vOM6l4mJd0me8ufyTc8 UE++5UXXs2rPCagP6lEbkOqlFN+i2ZejWZylDd9P8OO8oedD1+jqBKBUe8WdJZOUxx6F 0BS5fzL5zd1lDrnHXfhcE9xOLOJ9fZzdxWU0SAw42ZmpNfxSkcfUL2NInEzKzcSGBYvQ LQi60H3BLTR8byoVg0gGwKV4RSuVXyu9+zy7tFzCTKUKu7UiYOBGTJAhKOcjQfNT11WZ u/InJLhmAO61EAPL0R+KyyRx8DlaFLEUAmk1+RtjyjGkd/K3uKQr39wBTG0MVHtAT+4a uOHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from; bh=4wuuVg3EuigdSGlM7MQYsK8DJxAwbt7l30SxiIyuppU=; b=NhzHC1pFhFrU+x1sI+jy5IKmEWISAVCt+AKEoCRkILsUxNATZbCoIE/vaG8DjbZMy5 kGnknCoOt7Vr+/8R4AB+aeTywdyRhaNKgYrlTECpKHx0GdA2nlWWXaeIk8EjejtmycR7 9Rq6hoAs9loGrsH7AsFUEBqXnJU5a+WH6FANvswdBmtiQ+ZsgRMcby2eziQ6irsoEyL2 fZ3fHw9ltVxT4aI9zLnMeLjXZLbWkfvpWdPc8SyEgtCj0l/IdcNWsHx253Nl7BYastik QCin+bpSgaumi40SsFfvYYN9Gl/cvAhEqCNx/OSPebRKnnU/dRlnNJuQDFzxHNOsRpR9 h+jQ== ARC-Authentication-Results: i=1; mx.google.com; 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 s22si7515239otq.10.2019.12.06.11.53.27; Fri, 06 Dec 2019 11:53:38 -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; 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 S1726404AbfLFTxJ (ORCPT + 99 others); Fri, 6 Dec 2019 14:53:09 -0500 Received: from mail.taht.net ([176.58.107.8]:50628 "EHLO mail.taht.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726325AbfLFTxJ (ORCPT ); Fri, 6 Dec 2019 14:53:09 -0500 Received: from dancer.taht.net (c-73-170-84-247.hsd1.ca.comcast.net [73.170.84.247]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.taht.net (Postfix) with ESMTPSA id 11276221D8; Fri, 6 Dec 2019 19:53:04 +0000 (UTC) From: Dave Taht To: Johannes Berg Cc: Kalle Valo , Kan Yan , Toke =?utf-8?Q?H=C3=B8iland-J=C3=B8rgensen?= , Rajkumar Manoharan , Kevin Hayes , Make-Wifi-fast , linux-wireless , Yibo Zhao , John Crispin , Lorenzo Bianconi , Felix Fietkau Subject: Re: [Make-wifi-fast] [PATCH v8 0/2] Implement Airtime-based Queue Limit (AQL) References: <20191115014846.126007-1-kyan@google.com> <8736eiam8f.fsf@toke.dk> <87a78p8rz7.fsf@toke.dk> <87muco5gv5.fsf@toke.dk> <87eexvyoy8.fsf@toke.dk> <878so2m5gp.fsf@nemesis.taht.net> <0101016ecf3bc899-6e391bba-96ed-4495-a7be-1aa8dd8f1bf2-000000@us-west-2.amazonses.com> Date: Fri, 06 Dec 2019 11:53:01 -0800 In-Reply-To: (Johannes Berg's message of "Wed, 04 Dec 2019 09:07:59 +0100") Message-ID: <87h82dkz8i.fsf@taht.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Johannes Berg writes: > On Wed, 2019-12-04 at 04:47 +0000, Kalle Valo wrote: >> >> > Overall, I think AQL and fq_codel works well, at least with ath10k. >> > The current target value of 20 ms is a reasonable default. >> > It is >> > relatively conservative that helps stations with weak signal to >> > maintain stable throughput. This statement is overbroad and largely incorrect. >>> Although, a debugfs entry that allows >> > runtime adjustment of target value could be useful. >> >> Why not make it configurable via nl80211? We should use debugfs only for >> testing and debugging, not in production builds, and to me the use case >> for this value sounds like more than just testing. I certainly lean towards making it configurable AND autotuning it better. > On the other hand, what application/tool or even user would be able to > set this correctly? The guideline from the theory ("Power") is the target should 5-10% of the interval, and the interval fairly close to the most commonly observed max RTT. I should try to stress (based on some statements made here) - that you have to *consistently* exceed the target for the interval, in order for codel to have any effect at all. Please try to internalize that - the smoothing comes from the interval... 100ms is quite a large interval.... Judging from kan's (rather noisy) data set 10ms is a good default on 5ghz. There is zero difference in throughput as near as I can tell. It would be interesting to try 3ms (as there's up to 8ms of buffering in the driver) to add to this dataset, helpful also to be measuring the actual tcp rtt rather in addition to the fq behavior. I see what looks like channel scan behavior in the data. (on the client?) Running tests for 5 minutes will show the impact and frequency of channel scans better. The 20ms figure we used initially was due to a variety of factors: * This was the first ever attempt at applying an AQM technology to wifi!!! ** FIXED: http://blog.cerowrt.org/post/real_results/ * We were debugging the FQ component, primarily. ** FIXED: http://blog.cerowrt.org/post/crypto_fq_bug/ * We were working on backports and on integrating a zillion other pieces all in motion. ** sorta FIXED. I know dang full well how many darn variables there are, as well as how much the network stack has changed since the initial work. * We were working on 2.4ghz which has a baseline rate of 1Mbit (13ms target) Our rule of thumb is that min target needs to MTU*1.5. There was also a a fudge factor to account for half duplex operation and the minimum size of a txop. ** FIXED: 5ghz has a baseline rate of 6mbits. * We didn't have tools to look at tcp rtts at the time ** FIXED: flent --socket-stats tcp_nup * We had issues with power save ** Everybody has issues with powersave... ** These are still extant on many platforms, notably ones that wake up and dump all their accumulated mcast data into the link. Not our problem. * channel scans: http://blog.cerowrt.org/post/disabling_channel_scans/ ** Non background channel scans are very damaging. I am unsure from this data if that's what we are seeing from the client? Or the ath10k? the ability to do these in the background or notmight be a factor in autotuning things better. * We had MAJOR issues with TSQ ** FIXED: https://lwn.net/Articles/757643/ Honestly the TSQ interaction was the biggest barrier to figuring out what was going wrong at the time we upstreamed this, and a tcp_nup test, now, with TSQ closer to "right", AQL in place and the reduced target should be interesting. I think the data we have now on TSQ vs wifi on this chip, is now totally obsolete. * We had issues with mcast ** I think we still have many issues with multicast but improving that is a separate problem entirely. * We ran out of time and money, and had hit it so far out of the park ( https://lwn.net/Articles/705884/ ) that it seemed like sleeping more and tweaking things less was a win. Judging from the results we now get on 5ghz and on ac, it seems good to reduce the target to 10ms (or less!) on 5ghz ghz, especially on ac, which will result in a less path inflation and no loss in throughput. I have been running with a 6ms target for several years now on my 802.11n 5ghz devices. (I advertise a 3ms rather than the default txop size also) These are, admittedly, mostly used as backhaul links (so I didn't have tsq, aql, rate changes, etc) , but seing a path inflation of no more than 30ms under full bidirectional load is nice. (and still 22ms worse than it could be in a more perfect world) Another thing I keep trying to stress: TCP's ability to grab more bandwidth is quadratic relative the delay. > > johannes