Search Linux Wireless

Re: throughput problem/bisect with rtl8187B

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 11 November 2008 23:12:42 Hin-Tak Leung wrote:
> --- On Tue, 11/11/08, Herton Ronaldo Krzesinski <herton@xxxxxxxxxxxxxxx> wrote:
> > Please check this patch to see if things improve, if not,
> > can you check with
> > the patch I posted earlier, "Add conf_tx callback and
> > use it to configure tx
> > queues of 8187L/8187B.", if things improve? (I think
> > you already checked, but
> > just in case you tested only the rate control related
> > patch)
>
> okay, very good - this one does it. I didn't try the conf_tx callback patch
> when I posted the problem, but I did this time - so I have the conf_tx
> callback patch, feedback patch, and a modified version of this new one, and
> I get decent throughput; reverting the 3rd patch, (ie. just the conf_tx
> callback and feekback transmitted patch) and the throughput is appalling.
> So you can add tested-by me to both the conf_tx and feedback patches, and
> either tested-by or signed-off-by for this version of the 3rd patch (I made
> some small changes just so that it applies on top of the conf_tx patch
> which has a priv->slot_time rather than local slot_time). Sorry about the
> indentation - no doubt you'll polish it up before sending off the three.

Ok, Looks like sifs or eifs setting then expect values in another format or
have a different meaning may be (or just cause some hw bug), it's strange,
I suspect sifs value is the culprit. In the patch I just reverted to values vendor
driver uses, in it difs remains the same, just eifs isn't changed for short slot
case and kept with a default value (along with what is supposed to be ack
timeout register), and sifs set to 0x22. Please try just the following change
to isolate that the SIFS setting caused the throughput issue:

diff --git a/drivers/net/wireless/rtl818x/rtl8187_dev.c b/drivers/net/wireless/rtl818x/rtl8187_dev.c
index d49f2a7..c0392e4 100644
--- a/drivers/net/wireless/rtl818x/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl818x/rtl8187_dev.c
@@ -924,7 +924,7 @@ static void rtl8187_conf_erp(struct rtl8187_priv *priv, bool use_short_slot,
 			difs = 0x32;
 			eifs = 0x5b;
 		}
-		rtl818x_iowrite8(priv, &priv->map->SIFS, 0xa);
+		rtl818x_iowrite8(priv, &priv->map->SIFS, 0x22);
 		rtl818x_iowrite8(priv, &priv->map->SLOT, slot_time);
 		rtl818x_iowrite8(priv, &priv->map->DIFS, difs);
 

>
> These 3 are tested against v2.6.28-rc4-5168-gaafbf3d (moved on a bit since
> my last tests).
>
> Thanks for looking into this.
>
> Hin-Tak

--
[]'s
Herton
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux