P.G. Richardson wrote: > phy0: Selected rate control algorithm 'pid' > > which is a first as it has always been 'mistral'. The only difference with > compiling last night was I was not running the kernel I compiled against. > I used 'make KLIB=/usr/src/{my new kernel} KLIB_BUILD=/usr/src/{my new > kernel}' instead. > > Just recompiled while running {my new kernel} and mistral correctly > selected as rate control algorithm. Once installed, it does correctly auto > select rate as expected. > > iperf shows Mb performance has dropped though but gets improved by again > fixing the rate at 11Mb. > > So cheers for the info. Minstrel is definitely a better choice than pid. There is one thing that might make your interface work better. For performance reasons, I chose not to pause the mac80211 queues at one point in the driver. For my device, it did not make a difference, but it might for you. Please try the attached patch. Thanks, Larry
Index: wireless-testing/drivers/net/wireless/rtl818x/rtl8187_dev.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/rtl818x/rtl8187_dev.c +++ wireless-testing/drivers/net/wireless/rtl818x/rtl8187_dev.c @@ -216,6 +216,7 @@ static void rtl8187_tx_cb(struct urb *ur * here, thus queue the skb and finish on a work queue. */ skb_queue_tail(&priv->b_tx_status.queue, skb); queue_delayed_work(hw->workqueue, &priv->work, 0); + ieee80211_stop_queues(hw); } } @@ -898,6 +899,7 @@ static void rtl8187_work(struct work_str } retry = tmp; mutex_unlock(&priv->conf_mutex); + ieee80211_wake_queues(dev); } static int rtl8187_start(struct ieee80211_hw *dev)