<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/net/mac80211/rc80211_minstrel_ht_debugfs.c, branch 4.4-additional</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=4.4-additional</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=4.4-additional'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2015-04-01T18:44:33+00:00</updated>
<entry>
<title>mac80211: add standard deviation to Minstrel stats</title>
<updated>2015-04-01T18:44:33+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:43+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=5f919abc76fc3de1e5965ea03c925f7563c7fc15'/>
<id>urn:sha1:5f919abc76fc3de1e5965ea03c925f7563c7fc15</id>
<content type='text'>
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 &lt;thomas@net.t-labs.tu-berlin.de&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add max lossless throughput per rate</title>
<updated>2015-04-01T18:44:32+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:41+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=50e55a8ea76fb593403cc09767b6371c17364ba8'/>
<id>urn:sha1:50e55a8ea76fb593403cc09767b6371c17364ba8</id>
<content type='text'>
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 &lt;thomas@net.t-labs.tu-berlin.de&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: restructure per-rate throughput calculation into function</title>
<updated>2015-04-01T18:44:32+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:40+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6a27b2c40b4829e625bc1dfdd0705c5ece720ab4'/>
<id>urn:sha1:6a27b2c40b4829e625bc1dfdd0705c5ece720ab4</id>
<content type='text'>
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 &lt;thomas@net.t-labs.tu-berlin.de&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: improve Minstrel variable &amp; function naming</title>
<updated>2015-04-01T18:44:31+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:39+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9134073bc693633b5e1f1a7252c93b3fb262aae4'/>
<id>urn:sha1:9134073bc693633b5e1f1a7252c93b3fb262aae4</id>
<content type='text'>
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 &amp; Minstrel-HT. In addition some
variable and function names got changed to more meaningful ones.

Signed-off-by: Thomas Huehn &lt;thomas@net.t-labs.tu-berlin.de&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: add new Minstrel-HT statistic output via csv</title>
<updated>2015-04-01T18:44:26+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:37+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=2cae0b6a70d666f8905f0f4bf788e56df1273878'/>
<id>urn:sha1:2cae0b6a70d666f8905f0f4bf788e56df1273878</id>
<content type='text'>
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 &lt;thomas@net.t-labs.tu-berlin.de&gt;
Signed-off-by: Stefan Venz &lt;ikstream86@gmail.com&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
[remove printing current time of day]
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: enhance readability of Minstrel-HTs rc_stats output</title>
<updated>2015-04-01T09:22:39+00:00</updated>
<author>
<name>Thomas Huehn</name>
<email>thomas@net.t-labs.tu-berlin.de</email>
</author>
<published>2015-03-24T20:09:35+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9c00bb7210e5bc0691c93b05a0edfab0e93b3ec9'/>
<id>urn:sha1:9c00bb7210e5bc0691c93b05a0edfab0e93b3ec9</id>
<content type='text'>
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 &lt;thomas@net.t-labs.tu-berlin.de&gt;
Signed-off-by: Stefan Venz &lt;ikstream86@gmail.com&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: minstrel_ht: use group flags instead of index to display rates</title>
<updated>2014-10-23T18:36:13+00:00</updated>
<author>
<name>Karl Beldan</name>
<email>karl.beldan@rivierawaves.com</email>
</author>
<published>2014-10-22T16:20:37+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8ec7886b1cd59c6e76a6d8fa413f9d338cfedc96'/>
<id>urn:sha1:8ec7886b1cd59c6e76a6d8fa413f9d338cfedc96</id>
<content type='text'>
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 &lt;= 3SS@80MHz") with
CONFIG_MAC80211_RC_MINSTREL_VHT unset because then MINSTREL_VHT_GROUP_0
is above MINSTREL_GROUPS_NB and smatch only barks when the "testing
array offset" seems to prevent possible out of bonds accesses (which
does not happen here since i &lt; ARRAY_SIZE(mi-&gt;groups)).

Signed-off-by: Karl Beldan &lt;karl.beldan@rivierawaves.com&gt;
Cc: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: minstrel_ht: add basic support for VHT rates &lt;= 3SS@80MHz</title>
<updated>2014-10-21T11:25:26+00:00</updated>
<author>
<name>Karl Beldan</name>
<email>karl.beldan@rivierawaves.com</email>
</author>
<published>2014-10-21T08:38:38+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9208247d74bc52dcaf370ba3cee29b5e8775464b'/>
<id>urn:sha1:9208247d74bc52dcaf370ba3cee29b5e8775464b</id>
<content type='text'>
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 &lt;karl.beldan@rivierawaves.com&gt;
Cc: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: minstrel_ht: macros adjustments for future VHT_GROUPs</title>
<updated>2014-10-20T19:39:35+00:00</updated>
<author>
<name>Karl Beldan</name>
<email>karl.beldan@rivierawaves.com</email>
</author>
<published>2014-10-20T13:46:00+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8a0ee4fe1951af252b1ac7b5c6af4083bafc4c7e'/>
<id>urn:sha1:8a0ee4fe1951af252b1ac7b5c6af4083bafc4c7e</id>
<content type='text'>
No functional change.

Signed-off-by: Karl Beldan &lt;karl.beldan@rivierawaves.com&gt;
Cc: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
<entry>
<title>mac80211: minstrels: fix buffer overflow in HT debugfs rc_stats</title>
<updated>2014-10-20T14:37:01+00:00</updated>
<author>
<name>Karl Beldan</name>
<email>karl.beldan@rivierawaves.com</email>
</author>
<published>2014-10-20T08:54:36+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=11b2357d5dbce999803e9055f8c09829a8a87db4'/>
<id>urn:sha1:11b2357d5dbce999803e9055f8c09829a8a87db4</id>
<content type='text'>
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 &gt; 30 entries) and replaces the buddy-rounded
allocations (s/sizeof(*ms) + 8192/8192).

Signed-off-by: Karl Beldan &lt;karl.beldan@rivierawaves.com&gt;
Acked-by: Felix Fietkau &lt;nbd@openwrt.org&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
</content>
</entry>
</feed>
