mac80211: rc80211_minstrel: remove variance / stddev calculation
When there are few packets (e.g. for sampling attempts), the exponentially weighted variance is usually vastly overestimated, making the resulting data essentially useless. As far as I know, there has not been any practical use for this, so let's not waste any cycles on it. Signed-off-by: Felix Fietkau <nbd@nbd.name> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:

committed by
Johannes Berg

parent
f4ec7cb0f9
commit
506dbf90c1
@@ -35,19 +35,6 @@ minstrel_ewma(int old, int new, int weight)
|
||||
return old + incr;
|
||||
}
|
||||
|
||||
/*
|
||||
* Perform EWMV (Exponentially Weighted Moving Variance) calculation
|
||||
*/
|
||||
static inline int
|
||||
minstrel_ewmv(int old_ewmv, int cur_prob, int prob_ewma, int weight)
|
||||
{
|
||||
int diff, incr;
|
||||
|
||||
diff = cur_prob - prob_ewma;
|
||||
incr = (EWMA_DIV - weight) * diff / EWMA_DIV;
|
||||
return weight * (old_ewmv + MINSTREL_TRUNC(diff * incr)) / EWMA_DIV;
|
||||
}
|
||||
|
||||
struct minstrel_rate_stats {
|
||||
/* current / last sampling period attempts/success counters */
|
||||
u16 attempts, last_attempts;
|
||||
@@ -56,11 +43,8 @@ struct minstrel_rate_stats {
|
||||
/* total attempts/success counters */
|
||||
u32 att_hist, succ_hist;
|
||||
|
||||
/* statistis of packet delivery probability
|
||||
* prob_ewma - exponential weighted moving average of prob
|
||||
* prob_ewmsd - exp. weighted moving standard deviation of prob */
|
||||
/* prob_ewma - exponential weighted moving average of prob */
|
||||
u16 prob_ewma;
|
||||
u16 prob_ewmv;
|
||||
|
||||
/* maximum retry counts */
|
||||
u8 retry_count;
|
||||
@@ -140,14 +124,6 @@ struct minstrel_debugfs_info {
|
||||
char buf[];
|
||||
};
|
||||
|
||||
/* Get EWMSD (Exponentially Weighted Moving Standard Deviation) * 10 */
|
||||
static inline int
|
||||
minstrel_get_ewmsd10(struct minstrel_rate_stats *mrs)
|
||||
{
|
||||
unsigned int ewmv = mrs->prob_ewmv;
|
||||
return int_sqrt(MINSTREL_TRUNC(ewmv * 1000 * 1000));
|
||||
}
|
||||
|
||||
extern const struct rate_control_ops mac80211_minstrel;
|
||||
void minstrel_add_sta_debugfs(void *priv, void *priv_sta, struct dentry *dir);
|
||||
|
||||
|
Reference in New Issue
Block a user