Skip to content

Commit

Permalink
mac80211: minstrel: reduce size of struct minstrel_rate_stats
Browse files Browse the repository at this point in the history
On minstrel_ht, the size of the per-sta struct is almost 18k, making it
an order-3 allocation.
A few fields inside the per-rate statistics are bigger than they need to
be. This patch reduces the size enough to cut down the per-sta struct to
about 13k (order-2 allocation).

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  • Loading branch information
Felix Fietkau authored and Johannes Berg committed Dec 19, 2014
1 parent 79f241b commit 8d819a9
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 10 deletions.
6 changes: 3 additions & 3 deletions net/mac80211/rc80211_minstrel.c
Original file line number Diff line number Diff line change
Expand Up @@ -263,12 +263,12 @@ static inline unsigned int
minstrel_get_retry_count(struct minstrel_rate *mr,
struct ieee80211_tx_info *info)
{
unsigned int retry = mr->adjusted_retry_count;
u8 retry = mr->adjusted_retry_count;

if (info->control.use_rts)
retry = max(2U, min(mr->stats.retry_count_rtscts, retry));
retry = max_t(u8, 2, min(mr->stats.retry_count_rtscts, retry));
else if (info->control.use_cts_prot)
retry = max(2U, min(mr->retry_count_cts, retry));
retry = max_t(u8, 2, min(mr->retry_count_cts, retry));
return retry;
}

Expand Down
15 changes: 8 additions & 7 deletions net/mac80211/rc80211_minstrel.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ minstrel_ewma(int old, int new, int weight)

struct minstrel_rate_stats {
/* current / last sampling period attempts/success counters */
unsigned int attempts, last_attempts;
unsigned int success, last_success;
u16 attempts, last_attempts;
u16 success, last_success;

/* total attempts/success counters */
u64 att_hist, succ_hist;
Expand All @@ -46,23 +46,24 @@ struct minstrel_rate_stats {
unsigned int cur_prob, probability;

/* maximum retry counts */
unsigned int retry_count;
unsigned int retry_count_rtscts;
u8 retry_count;
u8 retry_count_rtscts;

u8 sample_skipped;
bool retry_updated;
};

struct minstrel_rate {
int bitrate;
int rix;

s8 rix;
u8 retry_count_cts;
u8 adjusted_retry_count;

unsigned int perfect_tx_time;
unsigned int ack_time;

int sample_limit;
unsigned int retry_count_cts;
unsigned int adjusted_retry_count;

struct minstrel_rate_stats stats;
};
Expand Down

0 comments on commit 8d819a9

Please sign in to comment.