From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nbd.name (nbd.name [IPv6:2a01:4f8:131:30e2::2]) (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 A66953B25E for ; Mon, 5 Sep 2016 13:49:44 -0400 (EDT) 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:To:Subject; bh=AWtcdO+5aL9s9h+VLH8Zilp8ZUT6r07ZQW6jx8vge/8=; b=OfyB29C5uDKRXvD223VPhMEMp0A6Ja6bIITA9Li9+9xU47fUnxh9hi2LKJZaIi+lgjj36UM7gTNotPK1r1w9Fy2sVsTV+/QrocLHKqX9vEv/4l6OpkrctiX1AHPfByyXRkOT2YAcCwMXZs+Zrj8UO20WHGSLdwlEYPT6RRvAJyU=; To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , make-wifi-fast@lists.bufferbloat.net, linux-wireless@vger.kernel.org References: <20160902134104.29309-1-toke@toke.dk> <20160905113042.22271-1-toke@toke.dk> From: Felix Fietkau Message-ID: <8ffb5fee-78c1-79aa-2297-e125c59b092c@nbd.name> User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <20160905113042.22271-1-toke@toke.dk> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Mon, 28 Nov 2016 08:47:10 -0500 Subject: Re: [Make-wifi-fast] [PATCH v7] mac80211: Move reorder-sensitive TX handlers to after TXQ dequeue. 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: , Date: Mon, 05 Sep 2016 17:49:44 -0000 X-Original-Date: Mon, 5 Sep 2016 19:49:42 +0200 X-List-Received-Date: Mon, 05 Sep 2016 17:49:44 -0000 On 2016-09-05 13:30, Toke Høiland-Jørgensen wrote: > The TXQ intermediate queues can cause packet reordering when more than > one flow is active to a single station. Since some of the wifi-specific > packet handling (notably sequence number and encryption handling) is > sensitive to re-ordering, things break if they are applied before the > TXQ. > > This splits up the TX handlers and fast_xmit logic into two parts: An > early part and a late part. The former is applied before TXQ enqueue, > and the latter after dequeue. The non-TXQ path just applies both parts > at once. > > Because fragments shouldn't be split up or reordered, the fragmentation > handler is run after dequeue. Any fragments are then kept in the TXQ and > on subsequent dequeues they take precedence over dequeueing from the FQ > structure. > > This approach avoids having to scatter special cases for when TXQ is > enabled, at the cost of making the fast_xmit and TX handler code > slightly more complex. In my test, this one completely breaks ath9k with the txq patch. One or two packets go through, then tx stalls completely. - Felix