From: Felix Fietkau Date: Mon, 19 Dec 2016 13:07:58 +0000 (+0100) Subject: Revert "ath9k: Add airtime fairness scheduler" X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fblogic.git;a=commitdiff_plain;h=a032940bfb71ed2d83f42a5dcf48973fb22f3b6a Revert "ath9k: Add airtime fairness scheduler" Accidentally pushed to the wrong branch This reverts commit 47bc081e76f6b04c0e9db687c8abb78eb437021f. --- diff --git a/package/kernel/mac80211/patches/344-ath9k-Introduce-airtime-fairness-scheduling-between-.patch b/package/kernel/mac80211/patches/344-ath9k-Introduce-airtime-fairness-scheduling-between-.patch deleted file mode 100644 index 57ce3d8f8b9f..000000000000 --- a/package/kernel/mac80211/patches/344-ath9k-Introduce-airtime-fairness-scheduling-between-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= -Date: Mon, 5 Dec 2016 13:27:37 +0200 -Subject: [PATCH] ath9k: Introduce airtime fairness scheduling between stations -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This reworks the ath9k driver to schedule transmissions to connected -stations in a way that enforces airtime fairness between them. It -accomplishes this by measuring the time spent transmitting to or -receiving from a station at TX and RX completion, and accounting this to -a per-station, per-QoS level airtime deficit. Then, an FQ-CoDel based -deficit scheduler is employed at packet dequeue time, to control which -station gets the next transmission opportunity. - -Airtime fairness can significantly improve the efficiency of the network -when station rates vary. The following throughput values are from a -simple three-station test scenario, where two stations operate at the -highest HT20 rate, and one station at the lowest, and the scheduler is -employed at the access point: - - Before / After -Fast station 1: 19.17 / 25.09 Mbps -Fast station 2: 19.83 / 25.21 Mbps -Slow station: 2.58 / 1.77 Mbps -Total: 41.58 / 52.07 Mbps - -The benefit of airtime fairness goes up the more stations are present. -In a 30-station test with one station artificially limited to 1 Mbps, -we have seen aggregate throughput go from 2.14 to 17.76 Mbps. - -Signed-off-by: Toke Høiland-Jørgensen -Signed-off-by: Kalle Valo ---- - diff --git a/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch b/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch deleted file mode 100644 index 7fe2c7803731..000000000000 --- a/package/kernel/mac80211/patches/345-ath9k-Turn-ath_txq_lock-unlock-into-static-inlines.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= -Date: Mon, 5 Dec 2016 13:27:38 +0200 -Subject: [PATCH] ath9k: Turn ath_txq_lock/unlock() into static inlines. -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -These are one-line functions that just call spin_lock/unlock_bh(); turn -them into static inlines to avoid the function call overhead. - -Signed-off-by: Toke Høiland-Jørgensen -Signed-off-by: Kalle Valo ---- - ---- a/drivers/net/wireless/ath/ath9k/ath9k.h -+++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -558,6 +558,15 @@ static inline void ath_chanctx_check_act - - #endif /* CPTCFG_ATH9K_CHANNEL_CONTEXT */ - -+static inline void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq) -+{ -+ spin_lock_bh(&txq->axq_lock); -+} -+static inline void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq) -+{ -+ spin_unlock_bh(&txq->axq_lock); -+} -+ - void ath_startrecv(struct ath_softc *sc); - bool ath_stoprecv(struct ath_softc *sc); - u32 ath_calcrxfilter(struct ath_softc *sc); -@@ -565,8 +574,6 @@ int ath_rx_init(struct ath_softc *sc, in - void ath_rx_cleanup(struct ath_softc *sc); - int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp); - struct ath_txq *ath_txq_setup(struct ath_softc *sc, int qtype, int subtype); --void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq); --void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq); - void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq); - void ath_tx_cleanupq(struct ath_softc *sc, struct ath_txq *txq); - bool ath_drain_all_txq(struct ath_softc *sc); ---- a/drivers/net/wireless/ath/ath9k/xmit.c -+++ b/drivers/net/wireless/ath/ath9k/xmit.c -@@ -98,18 +98,6 @@ static void ath_tx_status(struct ieee802 - dev_kfree_skb(skb); - } - --void ath_txq_lock(struct ath_softc *sc, struct ath_txq *txq) -- __acquires(&txq->axq_lock) --{ -- spin_lock_bh(&txq->axq_lock); --} -- --void ath_txq_unlock(struct ath_softc *sc, struct ath_txq *txq) -- __releases(&txq->axq_lock) --{ -- spin_unlock_bh(&txq->axq_lock); --} -- - void ath_txq_unlock_complete(struct ath_softc *sc, struct ath_txq *txq) - __releases(&txq->axq_lock) - { diff --git a/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch b/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch index 8ceed72d1c69..3fbe31669073 100644 --- a/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch +++ b/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -837,6 +837,9 @@ static inline int ath9k_dump_btcoex(stru +@@ -827,6 +827,9 @@ static inline int ath9k_dump_btcoex(stru #ifdef CPTCFG_MAC80211_LEDS void ath_init_leds(struct ath_softc *sc); void ath_deinit_leds(struct ath_softc *sc); @@ -10,7 +10,7 @@ #else static inline void ath_init_leds(struct ath_softc *sc) { -@@ -973,6 +976,13 @@ void ath_ant_comb_scan(struct ath_softc +@@ -963,6 +966,13 @@ void ath_ant_comb_scan(struct ath_softc #define ATH9K_NUM_CHANCTX 2 /* supports 2 operating channels */ @@ -24,7 +24,7 @@ struct ath_softc { struct ieee80211_hw *hw; struct device *dev; -@@ -1025,9 +1035,8 @@ struct ath_softc { +@@ -1015,9 +1025,8 @@ struct ath_softc { spinlock_t chan_lock; #ifdef CPTCFG_MAC80211_LEDS diff --git a/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch b/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch index 67a58587c6f2..1330dfed8b2a 100644 --- a/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch +++ b/package/kernel/mac80211/patches/548-ath9k_enable_gpio_chip.patch @@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau #include "common.h" #include "debug.h" -@@ -983,6 +984,14 @@ struct ath_led { +@@ -973,6 +974,14 @@ struct ath_led { struct led_classdev cdev; }; @@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau struct ath_softc { struct ieee80211_hw *hw; struct device *dev; -@@ -1037,6 +1046,9 @@ struct ath_softc { +@@ -1027,6 +1036,9 @@ struct ath_softc { #ifdef CPTCFG_MAC80211_LEDS const char *led_default_trigger; struct list_head leds; diff --git a/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch b/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch index a914a15bb79c..f86b0152ea9b 100644 --- a/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch +++ b/package/kernel/mac80211/patches/549-ath9k_enable_gpio_buttons.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h -@@ -1048,6 +1048,7 @@ struct ath_softc { +@@ -1038,6 +1038,7 @@ struct ath_softc { struct list_head leds; #ifdef CONFIG_GPIOLIB struct ath9k_gpio_chip *gpiochip; diff --git a/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch b/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch index 93f768b7e17b..64e70467a36b 100644 --- a/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch +++ b/package/kernel/mac80211/patches/554-ath9k-consistently-use-get_eeprom_rev-ah.patch @@ -329,7 +329,7 @@ Signed-off-by: Martin Blumenstingl &ratesArray[0], cfgCtl, --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c -@@ -1165,8 +1165,9 @@ static u8 ath_get_rate_txpower(struct at +@@ -1177,8 +1177,9 @@ static u8 ath_get_rate_txpower(struct at if (is_40) { u8 power_ht40delta; struct ar5416_eeprom_def *eep = &ah->eeprom.def;