15 Dec, 2016

3 commits


29 Sep, 2015

1 commit


02 Apr, 2015

5 commits

  • This patch adds the statistical descriptor "standard deviation"
    to better describe the current properties of Minstrel and
    Minstrel-HTs success probability distribution. The standard
    deviation (SD) is calculated as exponential weighted moving
    standard deviation (EWMSD) and its current value is added as
    new column in all rc_stats (in debugfs).

    Signed-off-by: Thomas Huehn
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     
  • This patch adds the new statistic "maximum possible lossless
    throughput" to Minstrels and Minstrel-HTs rc_stats (in debugfs). This
    enables comprehensive comparison between current per-rate throughput
    and max. achievable per-rate throughput.

    Signed-off-by: Thomas Huehn
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     
  • This patch moves Minstrels and Minstrel-HTs per-rate throughput
    calculation (EWMA(thr)) into a dedicated function to be called.
    Therefore the variable "unsigned int cur_tp" within struct
    "minstrel_rate_stats" becomes obsolete. and is removed to free
    up its space.

    Signed-off-by: Thomas Huehn
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     
  • This patch ensures a consistent usage of variable names for type
    "minstrel_rate_stats" to be used as "mrs" and from type minstrel_rate
    as "mr" across both Minstrel & Minstrel-HT. In addition some
    variable and function names got changed to more meaningful ones.

    Signed-off-by: Thomas Huehn
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     
  • This patch adds a new debugfs file "rc_stats_csv" to output
    Minstrel-HTs statistics in a common csv format that is easy
    to parse.

    Signed-off-by: Thomas Huehn
    Signed-off-by: Stefan Venz
    Acked-by: Felix Fietkau
    [remove printing current time of day]
    Signed-off-by: Johannes Berg

    Thomas Huehn
     

01 Apr, 2015

1 commit

  • This patch restructures the rc_stats debugfs table of Minstrel-HT in
    order to achieve better human readability. A new layout of the
    statistics and a new header is added. In addition to the old layout
    there are two new columns of information added:
    idx - representing the rate index of each rate in mac80211 which
    can be used to set specific rates as fixed rate via debugfs
    airtime - the tx-time in micro seconds that a 1200 Byte packet
    takes to be transmitted over the air at the given rate

    The old layout of rc_stats:

    type rate tpt eprob *prob ret *ok(*cum) ok( cum)
    HT20/LGI MCS0 5.6 100.0 100.0 1 0( 0) 1( 1)
    HT20/LGI B MCS1 10.5 100.0 100.0 0 0( 0) 1( 1)
    HT20/LGI A MCS2 14.8 100.0 100.0 0 0( 0) 1( 1)
    ...

    is changed into this new layout:

    best ________rate______ __statistics__ ________last_______ ______sum-of________
    mode guard # rate [name idx airtime] [ ø(tp) ø(prob)] [prob.|retry|suc|att] [#success | #attempts]
    HT20 LGI 1 MCS0 0 1480 0.0 0.0 0.0 1 0 0 0 0
    HT20 LGI 1 B MCS1 1 740 10.5 100.0 100.0 0 0 0 1 1
    HT20 LGI 1 A MCS2 2 496 14.8 100.0 100.0 0 0 0 1 1
    ...

    Signed-off-by: Thomas Huehn
    Signed-off-by: Stefan Venz
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     

24 Oct, 2014

1 commit

  • When displaying a rate through debugfs minstrel_ht guesses its flags
    comparing group indexes. Since 3ec373c421b6 ("mac80211: minstrel_ht:
    include type (cck/ht) in rates flag"), the rate flags of interest are
    present in the mcs_group-s, so use it.
    While improving the code, this also fixes a smatch false positive
    "error: testing array offset 'i' after use" in minstrel_ht_stats_dump.
    This warning only triggers after 9208247d74bc ("mac80211: minstrel_ht:
    add basic support for VHT rates < ARRAY_SIZE(mi->groups)).

    Signed-off-by: Karl Beldan
    Cc: Felix Fietkau
    Signed-off-by: Johannes Berg

    Karl Beldan
     

21 Oct, 2014

2 commits

  • When the new CONFIG_MAC80211_RC_MINSTREL_VHT is not set (default 'N'),
    there is no behavioral change including in sampling and MCS_GROUP_RATES
    remains 8.
    Otherwise MCS_GROUP_RATES is 10, and a module parameter *vht_only*
    (default 'true'), restricts the rates selection to VHT when VHT is
    supported.

    Regarding the debugfs stats buffer:
    It is explicitly increased from 8k to 32k to fit every rates incl. when
    both HT and VHT rates are enabled, as for the format, before:
    type rate tpt eprob *prob ret *ok(*cum) ok( cum)
    HT20/LGI ABCDP MCS0 0.0 0.0 0.0 1 0( 0) 0( 0)
    after:
    type rate tpt eprob *prob ret *ok(*cum) ok( cum)
    HT20/LGI ABCDP MCS0 0.0 0.0 0.0 1 0( 0) 0( 0)
    VHT40/LGI MCS5/2 0.0 0.0 0.0 0 0( 0) 0( 0)

    Signed-off-by: Karl Beldan
    Cc: Felix Fietkau
    Signed-off-by: Johannes Berg

    Karl Beldan
     
  • No functional change.

    Signed-off-by: Karl Beldan
    Cc: Felix Fietkau
    Signed-off-by: Johannes Berg

    Karl Beldan
     

20 Oct, 2014

1 commit

  • ATM an HT rc_stats line is 106 chars.
    Times 8(MCS_GROUP_RATES)*3(SS)*2(GI)*2(BW) + CCK(4), i.e. x100, this is
    well above the current 8192 - sizeof(*ms) currently allocated.

    Fix this by squeezing the output as follows (not that we're short on
    memory but this also improves readability and range, the new format adds
    one more digit to *ok/*cum and ok/cum):

    - Before (HT) (106 ch):
    type rate throughput ewma prob this prob retry this succ/attempt success attempts
    CCK/LP 5.5M 0.0 0.0 0.0 0 0( 0) 0 0
    HT20/LGI ABCDP MCS0 0.0 0.0 0.0 1 0( 0) 0 0
    - After (75 ch):
    type rate tpt eprob *prob ret *ok(*cum) ok( cum)
    CCK/LP 5.5M 0.0 0.0 0.0 0 0( 0) 0( 0)
    HT20/LGI ABCDP MCS0 0.0 0.0 0.0 1 0( 0) 0( 0)

    - Align non-HT format Before (non-HT) (83 ch):
    rate throughput ewma prob this prob this succ/attempt success attempts
    ABCDP 6 0.0 0.0 0.0 0( 0) 0 0
    54 0.0 0.0 0.0 0( 0) 0 0
    - After (61 ch):
    rate tpt eprob *prob *ok(*cum) ok( cum)
    ABCDP 1 0.0 0.0 0.0 0( 0) 0( 0)
    54 0.0 0.0 0.0 0( 0) 0( 0)

    *This also adds dynamic checks for overflow, lowers the size of the
    non-HT request (allowing > 30 entries) and replaces the buddy-rounded
    allocations (s/sizeof(*ms) + 8192/8192).

    Signed-off-by: Karl Beldan
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Karl Beldan
     

11 Sep, 2014

1 commit

  • This patch improves the way minstrel_ht sorts rates according to throughput
    and success probability. 3 FOR-loops across the entire rate and mcs group set
    in function minstrel_ht_update_stats() which where used to determine the
    fastest, second fastest and most robust rate are reduced to 2 FOR-loop.

    The sorted list of rates according throughput is extended to the best four
    rates as we need them in upcoming joint rate and power control. The sorting
    is done via the new function minstrel_ht_sort_best_tp_rates(). The annotation
    of those 4 best throughput rates in the debugfs file rc-stats is changes to:
    "A,B,C,D", where A is the fastest rate and C the 4th fastest.

    Signed-off-by: Thomas Huehn
    Tested-by: Stefan Venz
    Acked-by: Felix Fietkau
    Signed-off-by: Johannes Berg

    Thomas Huehn
     

26 Nov, 2013

1 commit

  • Consecutive MCSes in [8*(NSS-1)->8*NSS[ have the same number NSS of
    streams (except for MCS32 which is mishandled ATM).
    ATM minstrel_ht uses MCS_GROUP_RATES in place of this 8 modulus.
    This change replaces such occurences and by doing so allows for different
    values of MCS_GROUP_RATES (e.g to cope with VHT MCS8,9).

    Signed-off-by: Karl Beldan
    Signed-off-by: Johannes Berg

    Karl Beldan
     

13 Feb, 2013

1 commit

  • When MCS rates start to get bad in 2.4 GHz because of long range or
    strong interference, CCK rates can be a lot more robust.

    This patch adds a pseudo MCS group containing CCK rates (long preamble
    in the lower 4 slots, short preamble in the upper slots).

    Signed-off-by: Felix Fietkau
    [make minstrel_ht_get_stats static]
    Signed-off-by: Johannes Berg

    Felix Fietkau
     

12 Feb, 2013

1 commit


01 Nov, 2011

1 commit


16 Sep, 2010

1 commit


25 Jun, 2010

1 commit


03 Jun, 2010

1 commit