From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2203C432C1 for ; Wed, 25 Sep 2019 11:54:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C261B21D7A for ; Wed, 25 Sep 2019 11:54:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="m/8UTdwo"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="RcRAtDys" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390764AbfIYLyk (ORCPT ); Wed, 25 Sep 2019 07:54:40 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:54910 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729701AbfIYLyj (ORCPT ); Wed, 25 Sep 2019 07:54:39 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 7BC3960274; Wed, 25 Sep 2019 11:54:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1569412478; bh=iQBuWf9rywNr0YTDB9/YX72wg4TP+napHo/lG9qLGr0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=m/8UTdwoM6sQeXhqaV4zepSR7XEA7gNTn/3QU4NfudoEKFAf5qNx8j9sS5q24eRDJ dGsRBX0pUmQ2aost2N0xiNQcAhW47YqbUyJPrejjIi3gxqB5AWPdtQpkozKBkgQGC9 eFqY0dI3laLuBZV7uwmTJR84WLWBSpNj/uy/zPRs= Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id 7977560274; Wed, 25 Sep 2019 11:54:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1569412477; bh=iQBuWf9rywNr0YTDB9/YX72wg4TP+napHo/lG9qLGr0=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=RcRAtDys+SNpNU6qqoYQyI30IMehShr+JY7dE4/Y2qCzS+VFXsWv1BmWU4xsn+om7 gEmQBLZX5dBNJEPbEG40OxybpTEBz0TaBSRKpjlyhE6gV4EQ+vNmIF6M8eDbkOc+kj 4NrUejGDn7ojIFYYwU1KKdk6YVTz1xXY9JG+hHDE= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Wed, 25 Sep 2019 19:54:37 +0800 From: Yibo Zhao To: =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Cc: Johannes Berg , linux-wireless@vger.kernel.org, make-wifi-fast@lists.bufferbloat.net, John Crispin , Lorenzo Bianconi , Felix Fietkau , linux-wireless-owner@vger.kernel.org Subject: Re: [PATCH RFC/RFT 4/4] mac80211: Apply Airtime-based Queue Limit (AQL) on packet dequeue In-Reply-To: <87y2yc3ieb.fsf@toke.dk> References: <156889576422.191202.5906619710809654631.stgit@alrua-x1> <156889576869.191202.510507546538322707.stgit@alrua-x1> <2f6b649dcb788222e070ebb5593918c7@codeaurora.org> <87y2yc3ieb.fsf@toke.dk> Message-ID: <8c5a3a011f03d4dd4165b838a2b8bc72@codeaurora.org> X-Sender: yiboz@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org On 2019-09-25 16:11, Toke Høiland-Jørgensen wrote: > Yibo Zhao writes: > >> So if it is going to work together with virtual time based mechanism >> in >> the future, the Tx criteria will be met both of below conditions, >> 1. Lower than g_vt >> 2. Lower than IEEE80211_AIRTIME_QUEUE_LIMIT > >> Are we going to maintain two kinds of airtime that one is from >> estimation and the other is basically from FW reporting? > > Yes, that was my plan. For devices that don't have FW reporting of > airtime, we can fall back to the estimation; but if we do have FW > reporting that is most likely going to be more accurate, so better to > use that for fairness... Do you mean we will use airtime reported by FW to calculate local->airtime_queued in case we have FW reporting airtime? > >> Meanwhile, airtime_queued will also limit the situation that we only >> have a station for transmission. Not sure if the peak throughput will >> be impacted. I believe it may work fine with 11ac in chromiumos, how >> about 11n and 11a? > > Well, we will need to test that, of course. But ath9k shows that it's > quite possible to run with quite shallow buffers, so with a bit of > tuning I think we should be fine. If anything, slower networks need > *fewer* packets queued in the firmware, and it's *easier* for the host > to keep up with transmission. > >> Anyway, I think this approach will help to improve performance of the >> virtual time based mechanism since it makes packets buffered in host >> instead of FW's deep queue. We have observed 2-clients case with >> different ratio in TCP fails to maintain the ratio because the packets >> arriving at host get pushed to FW immediately and thus the airtime >> weight sum is 0 in most of time meaning no TXQ in the rbtree. For UDP, >> if we pump load more than the PHY rate, the ratio can be maintained >> beacuse the FW queue is full and packtes begin to be buffered in host >> making TXQs staying on the rbtree for most of time. However, TCP has >> its >> own flow control that we can not push enough load like UDP. > > Yes, fixing that is exactly the point of this series :) > > -Toke -- Yibo