Return-path: Received: from mail-iw0-f174.google.com ([209.85.214.174]:42155 "EHLO mail-iw0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751179Ab0F1KUe convert rfc822-to-8bit (ORCPT ); Mon, 28 Jun 2010 06:20:34 -0400 Received: by iwn39 with SMTP id 39so42240iwn.19 for ; Mon, 28 Jun 2010 03:20:33 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4C27E8E8.8040606@openwrt.org> References: <4B8C3A21.2050105@openwrt.org> <133e8d7e1003020419r6fab7b13kd77b06407c8c1380@mail.gmail.com> <4B8D25DC.8070502@openwrt.org> <133e8d7e1003020747w348dbee0g60a25a86393972d7@mail.gmail.com> <4B8D396B.5040007@openwrt.org> <4C223F58.3060509@openwrt.org> <4C27E8E8.8040606@openwrt.org> Date: Mon, 28 Jun 2010 12:20:33 +0200 Message-ID: Subject: Re: [RFC/RFT] minstrel_ht: new rate control module for 802.11n From: =?ISO-8859-1?Q?Bj=F6rn_Smedman?= To: Felix Fietkau Cc: linux-wireless , Derek Smithies , Benoit PAPILLAULT , "Luis R. Rodriguez" , Christian Lamparter , Johannes Berg , ath9k-devel@lists.ath9k.org Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: 2010/6/28 Felix Fietkau : > On 2010-06-28 2:01 AM, Bj?rn Smedman wrote: [snip] >> I guess the real solution is your rewrite... But in the mean time >> perhaps we can memcpy the tx_info control from the last subframe to >> the first before calling ath_buf_set_rate() in ath_tx_sched_aggr()? >> Could that have any side effects? It could make the aggregate size go >> over the 4 ms limit I guess... How bad is that? > There's an easy solution which would take into account the 4ms frame > limit properly, and which could work without any memcpy() hacks: > > I could just grab a pointer to the last buffer in the tid queue in the > ath_tx_sched_aggr() function, then pass it to ath_lookup_rate() via > ath_tx_form_aggr(), and also to ath_buf_set_rate(). Then I make those > functions use this last buffer as reference for the rate lookup. Sounds better to use the rate control from the last buffer in the tid queue. But be careful if you don't memcpy it to the first frame of the aggregate then the feedback calculated in ath_tx_rc_status() after tx will be incorrect again, no? > - Felix /Bj?rn