Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fe72311 authored by Wey-Yi Guy's avatar Wey-Yi Guy Committed by John W. Linville
Browse files

iwlwifi: HT performance improvement changes



During rate scaling, checking for 0 retry count before decrement
the count by 1, this can avoid the retry count to become 255 (0xff),
which will cause the rate to drop faster than what we expect during good
condition (receive 0 retry packet). also change the algorithm to make
the rate not drop faster than what we like.

Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 86b4766b
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -801,6 +801,9 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
	    !(info->flags & IEEE80211_TX_STAT_AMPDU))
		return;

	if (info->flags & IEEE80211_TX_STAT_AMPDU)
		retries = 0;
	else
		retries = info->status.rates[0].count - 1;

	if (retries > 15)
@@ -1897,7 +1900,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
		if (high != IWL_RATE_INVALID && sr >= IWL_RATE_INCREASE_TH)
			scale_action = 1;
		else if (low != IWL_RATE_INVALID)
			scale_action = -1;
			scale_action = 0;
	}

	/* Both adjacent throughputs are measured, but neither one has better
@@ -1918,9 +1921,7 @@ static void rs_rate_scale_perform(struct iwl_priv *priv,
					sr >= IWL_RATE_INCREASE_TH) {
				scale_action = 1;
			} else {
				IWL_DEBUG_RATE(priv,
				    "decrease rate because of high tpt\n");
				scale_action = -1;
				scale_action = 0;
			}

		/* Lower adjacent rate's throughput is measured */
+1 −1
Original line number Diff line number Diff line
@@ -231,7 +231,7 @@ enum {
#define IWL_RS_GOOD_RATIO		12800	/* 100% */
#define IWL_RATE_SCALE_SWITCH		10880	/*  85% */
#define IWL_RATE_HIGH_TH		10880	/*  85% */
#define IWL_RATE_INCREASE_TH            8960	/*  70% */
#define IWL_RATE_INCREASE_TH		6400	/*  50% */
#define IWL_RATE_DECREASE_TH		1920	/*  15% */

/* possible actions when in legacy mode */