2018-07-26 08:36:55

by Wen Gong

[permalink] [raw]
Subject: [PATCH 0/2] Change sk_pacing_shift in ieee80211_hw for best tx throughput

Add a field for ath10k to adjust the sk_pacing_shift, mac80211 set
the default value to 8, and ath10k will change it to 6. Then mac80211
will use the changed value 6 as sk_pacing_shift since 6 is the best
value for tx throughput by test result.

Wen Gong (2):
mac80211: Change sk_pacing_shift saved to ieee80211_hw
ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

drivers/net/wireless/ath/ath10k/mac.c | 2 ++
include/net/mac80211.h | 1 +
net/mac80211/main.c | 2 ++
net/mac80211/tx.c | 2 +-
4 files changed, 6 insertions(+), 1 deletion(-)

--
1.9.1


2018-07-26 13:02:16

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

Wen Gong <[email protected]> writes:

> Upstream kernel has an interface to help adjust sk_pacing_shift to help
> improve TCP UL throughput.
> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
> VHT80 TCP UL throughput testing result shows 6 is the optimal.
> Overwrite the sk_pacing_shift to 6 in ath10k driver.

When I tested this, a pacing shift of 8 was quite close to optimal as
well for ath10k. Why are you getting different results?

> Tested with QCA6174 PCI with firmware
> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377 PCI.
> It's not a regression with new firmware releases.
>
> There have 2 test result of different settings:
>
> ARM CPU based device with QCA6174A PCI with different
> sk_pacing_shift:
>
> sk_pacing_shift throughput(Mbps) CPU utilization
> 6 500(-P5) ~75% idle, Focus on CPU1: ~14%idle
> 7 454(-P5) ~80% idle, Focus on CPU1: ~4%idle
> 8 288 ~90% idle, Focus on CPU1: ~35%idle
> 9 ~200 ~92% idle, Focus on CPU1: ~50%idle

Your tests do not include latency values; please try running a test that
also measures latency. The tcp_nup test in Flent (https://flent.org)
will do that, for instance. Also, is this a single TCP flow?

-Toke

2018-07-27 10:51:25

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] mac80211: Save sk_pacing_shift to ieee80211_hw

Wen Gong <[email protected]> writes:

> Thanks,
> I will add description of tx_sk_pacing_shift as below and sent next
> patch.
> *
> * @tx_sk_pacing_shift: The TCP stack allow more than a single ms of data
> * to be queued in the stack. The value is a bit-shift of 1 second,
> e.g. 8
> * is ~4ms of queued data. It only affects local TCP sockets.
> */

Please don't top post:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#do_not_top_post_and_edit_your_quotes

--
Kalle Valo

2018-07-27 13:55:21

by Michal Kazior

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

On 27 July 2018 at 11:39, Wen Gong <[email protected]> wrote:
> On 2018-07-26 21:02, Micha=C5=82 Kazior wrote:
>>
>> On 26 July 2018 at 13:45, Toke H=C3=B8iland-J=C3=B8rgensen <[email protected]=
> wrote:
>>>
>>> Wen Gong <[email protected]> writes:
>>>
>>>> Upstream kernel has an interface to help adjust sk_pacing_shift to hel=
p
>>>> improve TCP UL throughput.
>>>> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
>>>> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
>>>> VHT80 TCP UL throughput testing result shows 6 is the optimal.
>>>> Overwrite the sk_pacing_shift to 6 in ath10k driver.
>>>
>>>
>>> When I tested this, a pacing shift of 8 was quite close to optimal as
>>> well for ath10k. Why are you getting different results?
>>>
>>>> Tested with QCA6174 PCI with firmware
>>>> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377 PCI=
.
>>>> It's not a regression with new firmware releases.
>>>>
>>>> There have 2 test result of different settings:
>>>>
>>>> ARM CPU based device with QCA6174A PCI with different
>>>> sk_pacing_shift:
>>
>>
>> Different firmware releases have different tx buffering
>> characteristics. In some 10.2 firmware running on QCA9888 you can have
>> up to 5ms of delayed aggregation. Ideally sk_pacing_shift should be
>> adjusted per firmware release. Maybe this should become part of the
>> ath10k firmware wrapping "fw features" stuff?
>>
> recently we do not want to do like this since no test data for each
> firmware.

All the more reason to *not* change the pacing shift from 8 to 6 for
entire ath10k because you have no idea what impact that is going to
have on other chips/firmwares, e.g. QCA4019, QCA9888X, QCA9984.


Micha=C5=82

2018-07-26 08:36:59

by Wen Gong

[permalink] [raw]
Subject: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

Upstream kernel has an interface to help adjust sk_pacing_shift to help
improve TCP UL throughput.
The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
VHT80 TCP UL throughput testing result shows 6 is the optimal.
Overwrite the sk_pacing_shift to 6 in ath10k driver.

Tested with QCA6174 PCI with firmware
WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377 PCI.
It's not a regression with new firmware releases.

There have 2 test result of different settings:

ARM CPU based device with QCA6174A PCI with different
sk_pacing_shift:

sk_pacing_shift throughput(Mbps) CPU utilization
6 500(-P5) ~75% idle, Focus on CPU1: ~14%idle
7 454(-P5) ~80% idle, Focus on CPU1: ~4%idle
8 288 ~90% idle, Focus on CPU1: ~35%idle
9 ~200 ~92% idle, Focus on CPU1: ~50%idle

5G TCP UL VTH80 on X86 platform with QCA6174A PCI with sk_packing_shift
set to 6:

tcp_limit_output_bytes throughput(Mbps)
default(262144)+1 Stream 336
default(262144)+2 Streams 558
default(262144)+3 Streams 584
default(262144)+4 Streams 602
default(262144)+5 Streams 598
changed(2621440)+1 Stream 598
changed(2621440)+2 Streams 601

Signed-off-by: Wen Gong <[email protected]>
---
drivers/net/wireless/ath/ath10k/mac.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index f31ae3b..40d24c1 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -8348,6 +8348,8 @@ int ath10k_mac_register(struct ath10k *ar)
ar->hw->wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
ar->hw->wiphy->max_scan_ie_len = WLAN_SCAN_PARAMS_MAX_IE_LEN;

+ ar->hw->tx_sk_pacing_shift = 6;
+
ar->hw->vif_data_size = sizeof(struct ath10k_vif);
ar->hw->sta_data_size = sizeof(struct ath10k_sta);
ar->hw->txq_data_size = sizeof(struct ath10k_txq);
--
1.9.1

2018-07-26 08:36:56

by Wen Gong

[permalink] [raw]
Subject: [PATCH 1/2] mac80211: Save sk_pacing_shift to ieee80211_hw

Add the skb_pacing_shirt adjustment, but this change make it
configurable for other driver. If no other driver set it, then
mac8011 will use the default value.

Signed-off-by: Wen Gong <[email protected]>
---
include/net/mac80211.h | 1 +
net/mac80211/main.c | 2 ++
net/mac80211/tx.c | 2 +-
3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 851a5e1..f600d08 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2279,6 +2279,7 @@ struct ieee80211_hw {
u8 n_cipher_schemes;
const struct ieee80211_cipher_scheme *cipher_schemes;
u8 max_nan_de_entries;
+ u8 tx_sk_pacing_shift;
};

static inline bool _ieee80211_hw_check(struct ieee80211_hw *hw,
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index fb73451..72dce49 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -584,6 +584,8 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len,
local->ops = ops;
local->use_chanctx = use_chanctx;

+ local->hw.tx_sk_pacing_shift = 8;
+
/* set up some defaults */
local->hw.queues = 1;
local->hw.max_rates = 1;
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 44b5dfe..a2d61b9 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3596,7 +3596,7 @@ void __ieee80211_subif_start_xmit(struct sk_buff *skb,
* second, so 8 is ~4ms of queued data. Only affects local TCP
* sockets.
*/
- sk_pacing_shift_update(skb->sk, 8);
+ sk_pacing_shift_update(skb->sk, sdata->local->hw.tx_sk_pacing_shift);

fast_tx = rcu_dereference(sta->fast_tx);

--
1.9.1

2018-07-27 21:29:32

by Toke Høiland-Jørgensen

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

Wen Gong <[email protected]> writes:

> On 2018-07-26 19:45, Toke H=C3=B8iland-J=C3=B8rgensen wrote:
>> Wen Gong <[email protected]> writes:
>>=20
>>> Upstream kernel has an interface to help adjust sk_pacing_shift to=20
>>> help
>>> improve TCP UL throughput.
>>> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
>>> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
>>> VHT80 TCP UL throughput testing result shows 6 is the optimal.
>>> Overwrite the sk_pacing_shift to 6 in ath10k driver.
>>=20
>> When I tested this, a pacing shift of 8 was quite close to optimal as
>> well for ath10k. Why are you getting different results?
>
> the default value is still 8 in the patch:
> https://patchwork.kernel.org/patch/10545361/
>
> In my test, pacing shift 6 is better than 8.
> The test is for ath10k/11AC WiFi chips.
> Test result is show in the commit logs before.
>>=20
>>> Tested with QCA6174 PCI with firmware
>>> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377=20
>>> PCI.
>>> It's not a regression with new firmware releases.
>>>=20
>>> There have 2 test result of different settings:
>>>=20
>>> ARM CPU based device with QCA6174A PCI with different
>>> sk_pacing_shift:
>>>=20
>>> sk_pacing_shift throughput(Mbps) CPU utilization
>>> 6 500(-P5) ~75% idle, Focus on CPU1: ~14%idle
>>> 7 454(-P5) ~80% idle, Focus on CPU1: ~4%idle
>>> 8 288 ~90% idle, Focus on CPU1: ~35%idle
>>> 9 ~200 ~92% idle, Focus on CPU1: ~50%idle
>>=20
>> Your tests do not include latency values; please try running a test=20
>> that
>> also measures latency. The tcp_nup test in Flent (https://flent.org)
>> will do that, for instance. Also, is this a single TCP flow?
>>=20
>
> It is not a single TCP flow, it is 500Mbps with 5 flows.
>
> below is result show in commit log before:
> 5G TCP UL VTH80 on X86 platform with QCA6174A PCI with sk_packing_shift
> set to 6:
>
> tcp_limit_output_bytes throughput(Mbps)
> default(262144)+1 Stream 336
> default(262144)+2 Streams 558
> default(262144)+3 Streams 584
> default(262144)+4 Streams 602
> default(262144)+5 Streams 598
> changed(2621440)+1 Stream 598
> changed(2621440)+2 Streams 601

This is useless without latency numbers. The whole point of
sk_pacing_shift is to control the tradeoff between latency and
throughput. You're only showing the throughput, so it's impossible to
judge if setting the pacing shift to 6 is right (and from your results I
suspect the sweet spot is actually 7).

-Toke

2018-07-26 23:59:25

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH 1/2] mac80211: Save sk_pacing_shift to ieee80211_hw

Hi Wen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mac80211-next/master]
[also build test WARNING on v4.18-rc6 next-20180725]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Wen-Gong/Change-sk_pacing_shift-in-ieee80211_hw-for-best-tx-throughput/20180726-190055
base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
reproduce: make htmldocs

All warnings (new ones prefixed by >>):

WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
mm/mempool.c:228: warning: Function parameter or member 'pool' not described in 'mempool_init'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.ibss' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.connect' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.keys' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.ie' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.ie_len' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.bssid' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.ssid' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.default_key' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.default_mgmt_key' not described in 'wireless_dev'
include/net/cfg80211.h:4381: warning: Function parameter or member 'wext.prev_bssid_valid' not described in 'wireless_dev'
include/net/mac80211.h:2329: warning: Function parameter or member 'radiotap_timestamp.units_pos' not described in 'ieee80211_hw'
include/net/mac80211.h:2329: warning: Function parameter or member 'radiotap_timestamp.accuracy' not described in 'ieee80211_hw'
>> include/net/mac80211.h:2329: warning: Function parameter or member 'tx_sk_pacing_shift' not described in 'ieee80211_hw'
include/net/mac80211.h:977: warning: Function parameter or member 'control.rates' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.rts_cts_rate_idx' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.use_rts' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.use_cts_prot' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.short_preamble' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.skip_table' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.jiffies' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.vif' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.hw_key' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.flags' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'control.enqueue_time' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'ack' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'ack.cookie' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.rates' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.ack_signal' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.ampdu_ack_len' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.ampdu_len' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.antenna' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.tx_time' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.is_valid_ack_signal' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'status.status_driver_data' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'driver_rates' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'pad' not described in 'ieee80211_tx_info'
include/net/mac80211.h:977: warning: Function parameter or member 'rate_driver_data' not described in 'ieee80211_tx_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg.signal' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'rx_stats_avg.chain_signal' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.filtered' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.retry_failed' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.retry_count' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.lost_packets' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_tdls_pkt_time' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.msdu_retries' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.msdu_failed' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_ack' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.last_ack_signal' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.ack_signal_filled' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'status_stats.avg_ack_signal' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.packets' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.bytes' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.last_rate' not described in 'sta_info'
net/mac80211/sta_info.h:588: warning: Function parameter or member 'tx_stats.msdu' not described in 'sta_info'
kernel/sched/fair.c:3760: warning: Function parameter or member 'flags' not described in 'attach_entity_load_avg'
include/linux/device.h:93: warning: bad line: this bus.
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.cb' not described in 'dma_buf'
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.poll' not described in 'dma_buf'
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_excl.active' not described in 'dma_buf'
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_shared.cb' not described in 'dma_buf'
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_shared.poll' not described in 'dma_buf'
include/linux/dma-buf.h:307: warning: Function parameter or member 'cb_shared.active' not described in 'dma_buf'
include/linux/dma-fence-array.h:54: warning: Function parameter or member 'work' not described in 'dma_fence_array'
include/linux/gpio/driver.h:142: warning: Function parameter or member 'request_key' not described in 'gpio_irq_chip'
include/linux/iio/hw-consumer.h:1: warning: no structured comments found
include/linux/device.h:94: warning: bad line: this bus.
include/linux/input/sparse-keymap.h:46: warning: Function parameter or member 'sw' not described in 'key_entry'
include/linux/regulator/driver.h:227: warning: Function parameter or member 'resume_early' not described in 'regulator_ops'
drivers/regulator/core.c:4465: warning: Excess function parameter 'state' description in 'regulator_suspend_late'
arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw0' not described in 'irb'
arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw1' not described in 'irb'
arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw2' not described in 'irb'
arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.esw3' not described in 'irb'
arch/s390/include/asm/cio.h:245: warning: Function parameter or member 'esw.eadm' not described in 'irb'
drivers/usb/dwc3/gadget.c:510: warning: Excess function parameter 'dwc' description in 'dwc3_gadget_start_config'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_pin' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_unpin' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_res_obj' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_get_sg_table' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_import_sg_table' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_vmap' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_vunmap' not described in 'drm_driver'
include/drm/drm_drv.h:610: warning: Function parameter or member 'gem_prime_mmap' not described in 'drm_driver'
drivers/gpu/drm/i915/i915_vma.h:48: warning: cannot understand function prototype: 'struct i915_vma '
drivers/gpu/drm/i915/i915_vma.h:1: warning: no structured comments found
include/drm/tinydrm/tinydrm.h:34: warning: Function parameter or member 'fb_dirty' not described in 'tinydrm_device'
drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter or member 'crtc_state' not described in 'mipi_dbi_enable_flush'
drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter or member 'plane_state' not described in 'mipi_dbi_enable_flush'
include/linux/skbuff.h:853: warning: Function parameter or member 'dev_scratch' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'ip_defrag_offset' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'list' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'skb_mstamp' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member '__cloned_offset' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'head_frag' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member '__unused' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member '__pkt_type_offset' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'pfmemalloc' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'encapsulation' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'encap_hdr_csum' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'csum_valid' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'csum_complete_sw' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'csum_level' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'inner_protocol_type' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'remcsum_offload' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'offload_fwd_mark' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'offload_mr_fwd_mark' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'sender_cpu' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'reserved_tailroom' not described in 'sk_buff'
include/linux/skbuff.h:853: warning: Function parameter or member 'inner_ipproto' not described in 'sk_buff'
include/net/sock.h:238: warning: Function parameter or member 'skc_addrpair' not described in 'sock_common'
include/net/sock.h:238: warning: Function parameter or member 'skc_portpair' not described in 'sock_common'
include/net/sock.h:238: warning: Function parameter or member 'skc_ipv6only' not described in 'sock_common'

vim +2329 include/net/mac80211.h

1bc0826c8f Johannes Berg 2007-09-18 2179
7ac1bd6aec Johannes Berg 2007-09-14 2180 /**
7ac1bd6aec Johannes Berg 2007-09-14 2181 * struct ieee80211_hw - hardware information and state
75a5f0ccfd Johannes Berg 2007-09-18 2182 *
75a5f0ccfd Johannes Berg 2007-09-18 2183 * This structure contains the configuration and hardware
75a5f0ccfd Johannes Berg 2007-09-18 2184 * information for an 802.11 PHY.
75a5f0ccfd Johannes Berg 2007-09-18 2185 *
75a5f0ccfd Johannes Berg 2007-09-18 2186 * @wiphy: This points to the &struct wiphy allocated for this
75a5f0ccfd Johannes Berg 2007-09-18 2187 * 802.11 PHY. You must fill in the @perm_addr and @dev
75a5f0ccfd Johannes Berg 2007-09-18 2188 * members of this structure using SET_IEEE80211_DEV()
8318d78a44 Johannes Berg 2008-01-24 2189 * and SET_IEEE80211_PERM_ADDR(). Additionally, all supported
8318d78a44 Johannes Berg 2008-01-24 2190 * bands (with channels, bitrates) are registered here.
75a5f0ccfd Johannes Berg 2007-09-18 2191 *
75a5f0ccfd Johannes Berg 2007-09-18 2192 * @conf: &struct ieee80211_conf, device configuration, don't use.
75a5f0ccfd Johannes Berg 2007-09-18 2193 *
75a5f0ccfd Johannes Berg 2007-09-18 2194 * @priv: pointer to private area that was allocated for driver use
75a5f0ccfd Johannes Berg 2007-09-18 2195 * along with this structure.
75a5f0ccfd Johannes Berg 2007-09-18 2196 *
75a5f0ccfd Johannes Berg 2007-09-18 2197 * @flags: hardware flags, see &enum ieee80211_hw_flags.
75a5f0ccfd Johannes Berg 2007-09-18 2198 *
75a5f0ccfd Johannes Berg 2007-09-18 2199 * @extra_tx_headroom: headroom to reserve in each transmit skb
75a5f0ccfd Johannes Berg 2007-09-18 2200 * for use by the driver (e.g. for transmit headers.)
75a5f0ccfd Johannes Berg 2007-09-18 2201 *
70dabeb74e Felix Fietkau 2013-12-14 2202 * @extra_beacon_tailroom: tailroom to reserve in each beacon tx skb.
70dabeb74e Felix Fietkau 2013-12-14 2203 * Can be used by drivers to add extra IEs.
75a5f0ccfd Johannes Berg 2007-09-18 2204 *
566bfe5a8b Bruno Randolf 2008-05-08 2205 * @max_signal: Maximum value for signal (rssi) in RX information, used
566bfe5a8b Bruno Randolf 2008-05-08 2206 * only when @IEEE80211_HW_SIGNAL_UNSPEC or @IEEE80211_HW_SIGNAL_DB
75a5f0ccfd Johannes Berg 2007-09-18 2207 *
ea95bba41e Tomas Winkler 2008-07-18 2208 * @max_listen_interval: max listen interval in units of beacon interval
ea95bba41e Tomas Winkler 2008-07-18 2209 * that HW supports
ea95bba41e Tomas Winkler 2008-07-18 2210 *
75a5f0ccfd Johannes Berg 2007-09-18 2211 * @queues: number of available hardware transmit queues for
e100bb64bf Johannes Berg 2008-04-30 2212 * data packets. WMM/QoS requires at least four, these
e100bb64bf Johannes Berg 2008-04-30 2213 * queues need to have configurable access parameters.
e100bb64bf Johannes Berg 2008-04-30 2214 *
830f903866 Johannes Berg 2007-10-28 2215 * @rate_control_algorithm: rate control algorithm for this hardware.
830f903866 Johannes Berg 2007-10-28 2216 * If unset (NULL), the default algorithm will be used. Must be
830f903866 Johannes Berg 2007-10-28 2217 * set before calling ieee80211_register_hw().
32bfd35d4b Johannes Berg 2007-12-19 2218 *
32bfd35d4b Johannes Berg 2007-12-19 2219 * @vif_data_size: size (in bytes) of the drv_priv data area
32bfd35d4b Johannes Berg 2007-12-19 2220 * within &struct ieee80211_vif.
17741cdc26 Johannes Berg 2008-09-11 2221 * @sta_data_size: size (in bytes) of the drv_priv data area
17741cdc26 Johannes Berg 2008-09-11 2222 * within &struct ieee80211_sta.
d01a1e6586 Michal Kazior 2012-06-26 2223 * @chanctx_data_size: size (in bytes) of the drv_priv data area
d01a1e6586 Michal Kazior 2012-06-26 2224 * within &struct ieee80211_chanctx_conf.
ba8c3d6f16 Felix Fietkau 2015-03-27 2225 * @txq_data_size: size (in bytes) of the drv_priv data area
ba8c3d6f16 Felix Fietkau 2015-03-27 2226 * within @struct ieee80211_txq.
870abdf671 Felix Fietkau 2008-10-05 2227 *
78be49ec2a Helmut Schaa 2010-10-02 2228 * @max_rates: maximum number of alternate rate retry stages the hw
78be49ec2a Helmut Schaa 2010-10-02 2229 * can handle.
78be49ec2a Helmut Schaa 2010-10-02 2230 * @max_report_rates: maximum number of alternate rate retry stages
78be49ec2a Helmut Schaa 2010-10-02 2231 * the hw can report back.
e6a9854b05 Johannes Berg 2008-10-21 2232 * @max_rate_tries: maximum number of tries for each stage
4e6cbfd09c John W. Linville 2010-07-29 2233 *
df6ba5d80d Luciano Coelho 2011-01-12 2234 * @max_rx_aggregation_subframes: maximum buffer size (number of
df6ba5d80d Luciano Coelho 2011-01-12 2235 * sub-frames) to be used for A-MPDU block ack receiver
df6ba5d80d Luciano Coelho 2011-01-12 2236 * aggregation.
df6ba5d80d Luciano Coelho 2011-01-12 2237 * This is only relevant if the device has restrictions on the
df6ba5d80d Luciano Coelho 2011-01-12 2238 * number of subframes, if it relies on mac80211 to do reordering
df6ba5d80d Luciano Coelho 2011-01-12 2239 * it shouldn't be set.
5dd36bc933 Johannes Berg 2011-01-18 2240 *
5dd36bc933 Johannes Berg 2011-01-18 2241 * @max_tx_aggregation_subframes: maximum number of subframes in an
41cbb0f5a2 Luca Coelho 2018-06-09 2242 * aggregate an HT/HE device will transmit. In HT AddBA we'll
41cbb0f5a2 Luca Coelho 2018-06-09 2243 * advertise a constant value of 64 as some older APs crash if
41cbb0f5a2 Luca Coelho 2018-06-09 2244 * the window size is smaller (an example is LinkSys WRT120N
41cbb0f5a2 Luca Coelho 2018-06-09 2245 * with FW v1.0.07 build 002 Jun 18 2012).
41cbb0f5a2 Luca Coelho 2018-06-09 2246 * For AddBA to HE capable peers this value will be used.
3a25a8c8b7 Johannes Berg 2012-04-03 2247 *
6e0456b545 Felix Fietkau 2016-03-03 2248 * @max_tx_fragments: maximum number of tx buffers per (A)-MSDU, sum
6e0456b545 Felix Fietkau 2016-03-03 2249 * of 1 + skb_shinfo(skb)->nr_frags for each skb in the frag_list.
6e0456b545 Felix Fietkau 2016-03-03 2250 *
3a25a8c8b7 Johannes Berg 2012-04-03 2251 * @offchannel_tx_hw_queue: HW queue ID to use for offchannel TX
3a25a8c8b7 Johannes Berg 2012-04-03 2252 * (if %IEEE80211_HW_QUEUE_CONTROL is set)
ac55d2fe05 Johannes Berg 2012-05-10 2253 *
ac55d2fe05 Johannes Berg 2012-05-10 2254 * @radiotap_mcs_details: lists which MCS information can the HW
ac55d2fe05 Johannes Berg 2012-05-10 2255 * reports, by default it is set to _MCS, _GI and _BW but doesn't
b4f7f4ad42 Jani Nikula 2016-10-21 2256 * include _FMT. Use %IEEE80211_RADIOTAP_MCS_HAVE_\* values, only
ac55d2fe05 Johannes Berg 2012-05-10 2257 * adding _BW is supported today.
72d7872852 Arik Nemtsov 2012-05-10 2258 *
5164892184 Johannes Berg 2012-11-22 2259 * @radiotap_vht_details: lists which VHT MCS information the HW reports,
5164892184 Johannes Berg 2012-11-22 2260 * the default is _GI | _BANDWIDTH.
b4f7f4ad42 Jani Nikula 2016-10-21 2261 * Use the %IEEE80211_RADIOTAP_VHT_KNOWN_\* values.
5164892184 Johannes Berg 2012-11-22 2262 *
41cbb0f5a2 Luca Coelho 2018-06-09 2263 * @radiotap_he: HE radiotap validity flags
41cbb0f5a2 Luca Coelho 2018-06-09 2264 *
99ee7cae3b Johannes Berg 2016-08-29 2265 * @radiotap_timestamp: Information for the radiotap timestamp field; if the
99ee7cae3b Johannes Berg 2016-08-29 2266 * 'units_pos' member is set to a non-negative value it must be set to
99ee7cae3b Johannes Berg 2016-08-29 2267 * a combination of a IEEE80211_RADIOTAP_TIMESTAMP_UNIT_* and a
99ee7cae3b Johannes Berg 2016-08-29 2268 * IEEE80211_RADIOTAP_TIMESTAMP_SPOS_* value, and then the timestamp
99ee7cae3b Johannes Berg 2016-08-29 2269 * field will be added and populated from the &struct ieee80211_rx_status
99ee7cae3b Johannes Berg 2016-08-29 2270 * device_timestamp. If the 'accuracy' member is non-negative, it's put
99ee7cae3b Johannes Berg 2016-08-29 2271 * into the accuracy radiotap field and the accuracy known flag is set.
99ee7cae3b Johannes Berg 2016-08-29 2272 *
72d7872852 Arik Nemtsov 2012-05-10 2273 * @netdev_features: netdev features to be set in each netdev created
680a0daba7 Johannes Berg 2015-04-13 2274 * from this HW. Note that not all features are usable with mac80211,
680a0daba7 Johannes Berg 2015-04-13 2275 * other features will be rejected during HW registration.
219c38674c Alexander Bondar 2013-01-22 2276 *
219c38674c Alexander Bondar 2013-01-22 2277 * @uapsd_queues: This bitmap is included in (re)association frame to indicate
219c38674c Alexander Bondar 2013-01-22 2278 * for each access category if it is uAPSD trigger-enabled and delivery-
219c38674c Alexander Bondar 2013-01-22 2279 * enabled. Use IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
219c38674c Alexander Bondar 2013-01-22 2280 * Each bit corresponds to different AC. Value '1' in specific bit means
219c38674c Alexander Bondar 2013-01-22 2281 * that corresponding AC is both trigger- and delivery-enabled. '0' means
219c38674c Alexander Bondar 2013-01-22 2282 * neither enabled.
219c38674c Alexander Bondar 2013-01-22 2283 *
219c38674c Alexander Bondar 2013-01-22 2284 * @uapsd_max_sp_len: maximum number of total buffered frames the WMM AP may
219c38674c Alexander Bondar 2013-01-22 2285 * deliver to a WMM STA during any Service Period triggered by the WMM STA.
219c38674c Alexander Bondar 2013-01-22 2286 * Use IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
2475b1cc0d Max Stepanov 2013-03-24 2287 *
2475b1cc0d Max Stepanov 2013-03-24 2288 * @n_cipher_schemes: a size of an array of cipher schemes definitions.
2475b1cc0d Max Stepanov 2013-03-24 2289 * @cipher_schemes: a pointer to an array of cipher scheme definitions
2475b1cc0d Max Stepanov 2013-03-24 2290 * supported by HW.
167e33f4f6 Ayala Beker 2016-09-20 2291 * @max_nan_de_entries: maximum number of NAN DE functions supported by the
167e33f4f6 Ayala Beker 2016-09-20 2292 * device.
7ac1bd6aec Johannes Berg 2007-09-14 2293 */
f0706e828e Jiri Benc 2007-05-05 2294 struct ieee80211_hw {
f0706e828e Jiri Benc 2007-05-05 2295 struct ieee80211_conf conf;
75a5f0ccfd Johannes Berg 2007-09-18 2296 struct wiphy *wiphy;
830f903866 Johannes Berg 2007-10-28 2297 const char *rate_control_algorithm;
f0706e828e Jiri Benc 2007-05-05 2298 void *priv;
30686bf7f5 Johannes Berg 2015-06-02 2299 unsigned long flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)];
f0706e828e Jiri Benc 2007-05-05 2300 unsigned int extra_tx_headroom;
70dabeb74e Felix Fietkau 2013-12-14 2301 unsigned int extra_beacon_tailroom;
32bfd35d4b Johannes Berg 2007-12-19 2302 int vif_data_size;
17741cdc26 Johannes Berg 2008-09-11 2303 int sta_data_size;
d01a1e6586 Michal Kazior 2012-06-26 2304 int chanctx_data_size;
ba8c3d6f16 Felix Fietkau 2015-03-27 2305 int txq_data_size;
ea95bba41e Tomas Winkler 2008-07-18 2306 u16 queues;
ea95bba41e Tomas Winkler 2008-07-18 2307 u16 max_listen_interval;
f0706e828e Jiri Benc 2007-05-05 2308 s8 max_signal;
e6a9854b05 Johannes Berg 2008-10-21 2309 u8 max_rates;
78be49ec2a Helmut Schaa 2010-10-02 2310 u8 max_report_rates;
e6a9854b05 Johannes Berg 2008-10-21 2311 u8 max_rate_tries;
41cbb0f5a2 Luca Coelho 2018-06-09 2312 u16 max_rx_aggregation_subframes;
41cbb0f5a2 Luca Coelho 2018-06-09 2313 u16 max_tx_aggregation_subframes;
6e0456b545 Felix Fietkau 2016-03-03 2314 u8 max_tx_fragments;
3a25a8c8b7 Johannes Berg 2012-04-03 2315 u8 offchannel_tx_hw_queue;
ac55d2fe05 Johannes Berg 2012-05-10 2316 u8 radiotap_mcs_details;
5164892184 Johannes Berg 2012-11-22 2317 u16 radiotap_vht_details;
99ee7cae3b Johannes Berg 2016-08-29 2318 struct {
99ee7cae3b Johannes Berg 2016-08-29 2319 int units_pos;
99ee7cae3b Johannes Berg 2016-08-29 2320 s16 accuracy;
99ee7cae3b Johannes Berg 2016-08-29 2321 } radiotap_timestamp;
72d7872852 Arik Nemtsov 2012-05-10 2322 netdev_features_t netdev_features;
219c38674c Alexander Bondar 2013-01-22 2323 u8 uapsd_queues;
219c38674c Alexander Bondar 2013-01-22 2324 u8 uapsd_max_sp_len;
2475b1cc0d Max Stepanov 2013-03-24 2325 u8 n_cipher_schemes;
2475b1cc0d Max Stepanov 2013-03-24 2326 const struct ieee80211_cipher_scheme *cipher_schemes;
167e33f4f6 Ayala Beker 2016-09-20 2327 u8 max_nan_de_entries;
c03233ae8c Wen Gong 2018-07-26 2328 u8 tx_sk_pacing_shift;
f0706e828e Jiri Benc 2007-05-05 @2329 };
f0706e828e Jiri Benc 2007-05-05 2330

:::::: The code at line 2329 was first introduced by commit
:::::: f0706e828e96d0fa4e80c0d25aa98523f6d589a0 [MAC80211]: Add mac80211 wireless stack.

:::::: TO: Jiri Benc <[email protected]>
:::::: CC: David S. Miller <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (26.72 kB)
.config.gz (6.29 kB)
Download all attachments

2018-07-26 14:19:41

by Michal Kazior

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

On 26 July 2018 at 13:45, Toke H=C3=B8iland-J=C3=B8rgensen <[email protected]> w=
rote:
> Wen Gong <[email protected]> writes:
>
>> Upstream kernel has an interface to help adjust sk_pacing_shift to help
>> improve TCP UL throughput.
>> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
>> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
>> VHT80 TCP UL throughput testing result shows 6 is the optimal.
>> Overwrite the sk_pacing_shift to 6 in ath10k driver.
>
> When I tested this, a pacing shift of 8 was quite close to optimal as
> well for ath10k. Why are you getting different results?
>
>> Tested with QCA6174 PCI with firmware
>> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377 PCI.
>> It's not a regression with new firmware releases.
>>
>> There have 2 test result of different settings:
>>
>> ARM CPU based device with QCA6174A PCI with different
>> sk_pacing_shift:

Different firmware releases have different tx buffering
characteristics. In some 10.2 firmware running on QCA9888 you can have
up to 5ms of delayed aggregation. Ideally sk_pacing_shift should be
adjusted per firmware release. Maybe this should become part of the
ath10k firmware wrapping "fw features" stuff?


Micha=C5=82

2018-07-27 11:00:49

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

On 2018-07-26 21:02, Michał Kazior wrote:
> On 26 July 2018 at 13:45, Toke Høiland-Jørgensen <[email protected]> wrote:
>> Wen Gong <[email protected]> writes:
>>
>>> Upstream kernel has an interface to help adjust sk_pacing_shift to
>>> help
>>> improve TCP UL throughput.
>>> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
>>> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
>>> VHT80 TCP UL throughput testing result shows 6 is the optimal.
>>> Overwrite the sk_pacing_shift to 6 in ath10k driver.
>>
>> When I tested this, a pacing shift of 8 was quite close to optimal as
>> well for ath10k. Why are you getting different results?
>>
>>> Tested with QCA6174 PCI with firmware
>>> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377
>>> PCI.
>>> It's not a regression with new firmware releases.
>>>
>>> There have 2 test result of different settings:
>>>
>>> ARM CPU based device with QCA6174A PCI with different
>>> sk_pacing_shift:
>
> Different firmware releases have different tx buffering
> characteristics. In some 10.2 firmware running on QCA9888 you can have
> up to 5ms of delayed aggregation. Ideally sk_pacing_shift should be
> adjusted per firmware release. Maybe this should become part of the
> ath10k firmware wrapping "fw features" stuff?
>
recently we do not want to do like this since no test data for each
firmware.
>
> Michał

2018-07-27 10:50:04

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips

On 2018-07-26 19:45, Toke Høiland-Jørgensen wrote:
> Wen Gong <[email protected]> writes:
>
>> Upstream kernel has an interface to help adjust sk_pacing_shift to
>> help
>> improve TCP UL throughput.
>> The sk_pacing_shift is 8 in mac80211, this is based on test with 11N
>> WiFi chips with ath9k. For QCA6174/QCA9377 PCI 11AC chips, the 11AC
>> VHT80 TCP UL throughput testing result shows 6 is the optimal.
>> Overwrite the sk_pacing_shift to 6 in ath10k driver.
>
> When I tested this, a pacing shift of 8 was quite close to optimal as
> well for ath10k. Why are you getting different results?

the default value is still 8 in the patch:
https://patchwork.kernel.org/patch/10545361/

In my test, pacing shift 6 is better than 8.
The test is for ath10k/11AC WiFi chips.
Test result is show in the commit logs before.
>
>> Tested with QCA6174 PCI with firmware
>> WLAN.RM.4.4.1-00109-QCARMSWPZ-1, but this will also affect QCA9377
>> PCI.
>> It's not a regression with new firmware releases.
>>
>> There have 2 test result of different settings:
>>
>> ARM CPU based device with QCA6174A PCI with different
>> sk_pacing_shift:
>>
>> sk_pacing_shift throughput(Mbps) CPU utilization
>> 6 500(-P5) ~75% idle, Focus on CPU1: ~14%idle
>> 7 454(-P5) ~80% idle, Focus on CPU1: ~4%idle
>> 8 288 ~90% idle, Focus on CPU1: ~35%idle
>> 9 ~200 ~92% idle, Focus on CPU1: ~50%idle
>
> Your tests do not include latency values; please try running a test
> that
> also measures latency. The tcp_nup test in Flent (https://flent.org)
> will do that, for instance. Also, is this a single TCP flow?
>

It is not a single TCP flow, it is 500Mbps with 5 flows.

below is result show in commit log before:
5G TCP UL VTH80 on X86 platform with QCA6174A PCI with sk_packing_shift
set to 6:

tcp_limit_output_bytes throughput(Mbps)
default(262144)+1 Stream 336
default(262144)+2 Streams 558
default(262144)+3 Streams 584
default(262144)+4 Streams 602
default(262144)+5 Streams 598
changed(2621440)+1 Stream 598
changed(2621440)+2 Streams 601

> -Toke

2018-07-27 09:56:34

by Wen Gong

[permalink] [raw]
Subject: Re: [PATCH 1/2] mac80211: Save sk_pacing_shift to ieee80211_hw

Thanks,
I will add description of tx_sk_pacing_shift as below and sent next
patch.
*
* @tx_sk_pacing_shift: The TCP stack allow more than a single ms of data
* to be queued in the stack. The value is a bit-shift of 1 second,
e.g. 8
* is ~4ms of queued data. It only affects local TCP sockets.
*/

On 2018-07-26 22:52, kbuild test robot wrote:
> Hi Wen,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on mac80211-next/master]
> [also build test WARNING on v4.18-rc6 next-20180725]
> [if your patch is applied to the wrong git tree, please drop us a note
> to help improve the system]
>
> url:
> https://github.com/0day-ci/linux/commits/Wen-Gong/Change-sk_pacing_shift-in-ieee80211_hw-for-best-tx-throughput/20180726-190055
> base:
> https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
> master
> reproduce: make htmldocs
>
> All warnings (new ones prefixed by >>):
>
> WARNING: convert(1) not found, for SVG to PDF conversion install
> ImageMagick (https://www.imagemagick.org)
> mm/mempool.c:228: warning: Function parameter or member 'pool' not
> described in 'mempool_init'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.ibss' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.connect' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.keys' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.ie' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.ie_len' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.bssid' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.ssid' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.default_key' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.default_mgmt_key' not described in 'wireless_dev'
> include/net/cfg80211.h:4381: warning: Function parameter or member
> 'wext.prev_bssid_valid' not described in 'wireless_dev'
> include/net/mac80211.h:2329: warning: Function parameter or member
> 'radiotap_timestamp.units_pos' not described in 'ieee80211_hw'
> include/net/mac80211.h:2329: warning: Function parameter or member
> 'radiotap_timestamp.accuracy' not described in 'ieee80211_hw'
>>> include/net/mac80211.h:2329: warning: Function parameter or member
>>> 'tx_sk_pacing_shift' not described in 'ieee80211_hw'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.rates' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.rts_cts_rate_idx' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.use_rts' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.use_cts_prot' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.short_preamble' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.skip_table' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.jiffies' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.vif' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.hw_key' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.flags' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'control.enqueue_time' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'ack' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'ack.cookie' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.rates' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.ack_signal' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.ampdu_ack_len' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.ampdu_len' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.antenna' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.tx_time' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.is_valid_ack_signal' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'status.status_driver_data' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'driver_rates' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'pad' not described in 'ieee80211_tx_info'
> include/net/mac80211.h:977: warning: Function parameter or member
> 'rate_driver_data' not described in 'ieee80211_tx_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'rx_stats_avg' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'rx_stats_avg.signal' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'rx_stats_avg.chain_signal' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.filtered' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.retry_failed' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.retry_count' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.lost_packets' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.last_tdls_pkt_time' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.msdu_retries' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.msdu_failed' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.last_ack' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.last_ack_signal' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.ack_signal_filled' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'status_stats.avg_ack_signal' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'tx_stats.packets' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'tx_stats.bytes' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'tx_stats.last_rate' not described in 'sta_info'
> net/mac80211/sta_info.h:588: warning: Function parameter or member
> 'tx_stats.msdu' not described in 'sta_info'
> kernel/sched/fair.c:3760: warning: Function parameter or member
> 'flags' not described in 'attach_entity_load_avg'
> include/linux/device.h:93: warning: bad line: this bus.
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_excl.cb' not described in 'dma_buf'
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_excl.poll' not described in 'dma_buf'
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_excl.active' not described in 'dma_buf'
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_shared.cb' not described in 'dma_buf'
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_shared.poll' not described in 'dma_buf'
> include/linux/dma-buf.h:307: warning: Function parameter or member
> 'cb_shared.active' not described in 'dma_buf'
> include/linux/dma-fence-array.h:54: warning: Function parameter or
> member 'work' not described in 'dma_fence_array'
> include/linux/gpio/driver.h:142: warning: Function parameter or
> member 'request_key' not described in 'gpio_irq_chip'
> include/linux/iio/hw-consumer.h:1: warning: no structured comments
> found
> include/linux/device.h:94: warning: bad line: this bus.
> include/linux/input/sparse-keymap.h:46: warning: Function parameter
> or member 'sw' not described in 'key_entry'
> include/linux/regulator/driver.h:227: warning: Function parameter
> or member 'resume_early' not described in 'regulator_ops'
> drivers/regulator/core.c:4465: warning: Excess function parameter
> 'state' description in 'regulator_suspend_late'
> arch/s390/include/asm/cio.h:245: warning: Function parameter or
> member 'esw.esw0' not described in 'irb'
> arch/s390/include/asm/cio.h:245: warning: Function parameter or
> member 'esw.esw1' not described in 'irb'
> arch/s390/include/asm/cio.h:245: warning: Function parameter or
> member 'esw.esw2' not described in 'irb'
> arch/s390/include/asm/cio.h:245: warning: Function parameter or
> member 'esw.esw3' not described in 'irb'
> arch/s390/include/asm/cio.h:245: warning: Function parameter or
> member 'esw.eadm' not described in 'irb'
> drivers/usb/dwc3/gadget.c:510: warning: Excess function parameter
> 'dwc' description in 'dwc3_gadget_start_config'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_pin' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_unpin' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_res_obj' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_get_sg_table' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_import_sg_table' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_vmap' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_vunmap' not described in 'drm_driver'
> include/drm/drm_drv.h:610: warning: Function parameter or member
> 'gem_prime_mmap' not described in 'drm_driver'
> drivers/gpu/drm/i915/i915_vma.h:48: warning: cannot understand
> function prototype: 'struct i915_vma '
> drivers/gpu/drm/i915/i915_vma.h:1: warning: no structured comments
> found
> include/drm/tinydrm/tinydrm.h:34: warning: Function parameter or
> member 'fb_dirty' not described in 'tinydrm_device'
> drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter
> or member 'crtc_state' not described in 'mipi_dbi_enable_flush'
> drivers/gpu/drm/tinydrm/mipi-dbi.c:272: warning: Function parameter
> or member 'plane_state' not described in 'mipi_dbi_enable_flush'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'dev_scratch' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'ip_defrag_offset' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'list' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'skb_mstamp' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> '__cloned_offset' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'head_frag' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> '__unused' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> '__pkt_type_offset' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'pfmemalloc' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'encapsulation' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'encap_hdr_csum' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'csum_valid' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'csum_complete_sw' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'csum_level' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'inner_protocol_type' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'remcsum_offload' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'offload_fwd_mark' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'offload_mr_fwd_mark' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'sender_cpu' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'reserved_tailroom' not described in 'sk_buff'
> include/linux/skbuff.h:853: warning: Function parameter or member
> 'inner_ipproto' not described in 'sk_buff'
> include/net/sock.h:238: warning: Function parameter or member
> 'skc_addrpair' not described in 'sock_common'
> include/net/sock.h:238: warning: Function parameter or member
> 'skc_portpair' not described in 'sock_common'
> include/net/sock.h:238: warning: Function parameter or member
> 'skc_ipv6only' not described in 'sock_common'
>
> vim +2329 include/net/mac80211.h
>
> 1bc0826c8f Johannes Berg 2007-09-18 2179
> 7ac1bd6aec Johannes Berg 2007-09-14 2180 /**
> 7ac1bd6aec Johannes Berg 2007-09-14 2181 * struct ieee80211_hw -
> hardware information and state
> 75a5f0ccfd Johannes Berg 2007-09-18 2182 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2183 * This structure
> contains the configuration and hardware
> 75a5f0ccfd Johannes Berg 2007-09-18 2184 * information for an
> 802.11 PHY.
> 75a5f0ccfd Johannes Berg 2007-09-18 2185 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2186 * @wiphy: This points
> to the &struct wiphy allocated for this
> 75a5f0ccfd Johannes Berg 2007-09-18 2187 * 802.11 PHY. You must
> fill in the @perm_addr and @dev
> 75a5f0ccfd Johannes Berg 2007-09-18 2188 * members of this
> structure using SET_IEEE80211_DEV()
> 8318d78a44 Johannes Berg 2008-01-24 2189 * and
> SET_IEEE80211_PERM_ADDR(). Additionally, all supported
> 8318d78a44 Johannes Berg 2008-01-24 2190 * bands (with channels,
> bitrates) are registered here.
> 75a5f0ccfd Johannes Berg 2007-09-18 2191 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2192 * @conf: &struct
> ieee80211_conf, device configuration, don't use.
> 75a5f0ccfd Johannes Berg 2007-09-18 2193 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2194 * @priv: pointer to
> private area that was allocated for driver use
> 75a5f0ccfd Johannes Berg 2007-09-18 2195 * along with this
> structure.
> 75a5f0ccfd Johannes Berg 2007-09-18 2196 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2197 * @flags: hardware
> flags, see &enum ieee80211_hw_flags.
> 75a5f0ccfd Johannes Berg 2007-09-18 2198 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2199 * @extra_tx_headroom:
> headroom to reserve in each transmit skb
> 75a5f0ccfd Johannes Berg 2007-09-18 2200 * for use by the driver
> (e.g. for transmit headers.)
> 75a5f0ccfd Johannes Berg 2007-09-18 2201 *
> 70dabeb74e Felix Fietkau 2013-12-14 2202 *
> @extra_beacon_tailroom: tailroom to reserve in each beacon tx skb.
> 70dabeb74e Felix Fietkau 2013-12-14 2203 * Can be used by
> drivers to add extra IEs.
> 75a5f0ccfd Johannes Berg 2007-09-18 2204 *
> 566bfe5a8b Bruno Randolf 2008-05-08 2205 * @max_signal: Maximum
> value for signal (rssi) in RX information, used
> 566bfe5a8b Bruno Randolf 2008-05-08 2206 * only when
> @IEEE80211_HW_SIGNAL_UNSPEC or @IEEE80211_HW_SIGNAL_DB
> 75a5f0ccfd Johannes Berg 2007-09-18 2207 *
> ea95bba41e Tomas Winkler 2008-07-18 2208 * @max_listen_interval:
> max listen interval in units of beacon interval
> ea95bba41e Tomas Winkler 2008-07-18 2209 * that HW supports
> ea95bba41e Tomas Winkler 2008-07-18 2210 *
> 75a5f0ccfd Johannes Berg 2007-09-18 2211 * @queues: number of
> available hardware transmit queues for
> e100bb64bf Johannes Berg 2008-04-30 2212 * data packets. WMM/QoS
> requires at least four, these
> e100bb64bf Johannes Berg 2008-04-30 2213 * queues need to have
> configurable access parameters.
> e100bb64bf Johannes Berg 2008-04-30 2214 *
> 830f903866 Johannes Berg 2007-10-28 2215 *
> @rate_control_algorithm: rate control algorithm for this hardware.
> 830f903866 Johannes Berg 2007-10-28 2216 * If unset (NULL), the
> default algorithm will be used. Must be
> 830f903866 Johannes Berg 2007-10-28 2217 * set before calling
> ieee80211_register_hw().
> 32bfd35d4b Johannes Berg 2007-12-19 2218 *
> 32bfd35d4b Johannes Berg 2007-12-19 2219 * @vif_data_size: size
> (in bytes) of the drv_priv data area
> 32bfd35d4b Johannes Berg 2007-12-19 2220 * within &struct
> ieee80211_vif.
> 17741cdc26 Johannes Berg 2008-09-11 2221 * @sta_data_size: size
> (in bytes) of the drv_priv data area
> 17741cdc26 Johannes Berg 2008-09-11 2222 * within &struct
> ieee80211_sta.
> d01a1e6586 Michal Kazior 2012-06-26 2223 * @chanctx_data_size:
> size (in bytes) of the drv_priv data area
> d01a1e6586 Michal Kazior 2012-06-26 2224 * within &struct
> ieee80211_chanctx_conf.
> ba8c3d6f16 Felix Fietkau 2015-03-27 2225 * @txq_data_size: size
> (in bytes) of the drv_priv data area
> ba8c3d6f16 Felix Fietkau 2015-03-27 2226 * within @struct
> ieee80211_txq.
> 870abdf671 Felix Fietkau 2008-10-05 2227 *
> 78be49ec2a Helmut Schaa 2010-10-02 2228 * @max_rates: maximum
> number of alternate rate retry stages the hw
> 78be49ec2a Helmut Schaa 2010-10-02 2229 * can handle.
> 78be49ec2a Helmut Schaa 2010-10-02 2230 * @max_report_rates:
> maximum number of alternate rate retry stages
> 78be49ec2a Helmut Schaa 2010-10-02 2231 * the hw can report
> back.
> e6a9854b05 Johannes Berg 2008-10-21 2232 * @max_rate_tries:
> maximum number of tries for each stage
> 4e6cbfd09c John W. Linville 2010-07-29 2233 *
> df6ba5d80d Luciano Coelho 2011-01-12 2234 *
> @max_rx_aggregation_subframes: maximum buffer size (number of
> df6ba5d80d Luciano Coelho 2011-01-12 2235 * sub-frames) to be
> used for A-MPDU block ack receiver
> df6ba5d80d Luciano Coelho 2011-01-12 2236 * aggregation.
> df6ba5d80d Luciano Coelho 2011-01-12 2237 * This is only relevant
> if the device has restrictions on the
> df6ba5d80d Luciano Coelho 2011-01-12 2238 * number of subframes,
> if it relies on mac80211 to do reordering
> df6ba5d80d Luciano Coelho 2011-01-12 2239 * it shouldn't be set.
> 5dd36bc933 Johannes Berg 2011-01-18 2240 *
> 5dd36bc933 Johannes Berg 2011-01-18 2241 *
> @max_tx_aggregation_subframes: maximum number of subframes in an
> 41cbb0f5a2 Luca Coelho 2018-06-09 2242 * aggregate an HT/HE
> device will transmit. In HT AddBA we'll
> 41cbb0f5a2 Luca Coelho 2018-06-09 2243 * advertise a constant
> value of 64 as some older APs crash if
> 41cbb0f5a2 Luca Coelho 2018-06-09 2244 * the window size is
> smaller (an example is LinkSys WRT120N
> 41cbb0f5a2 Luca Coelho 2018-06-09 2245 * with FW v1.0.07 build
> 002 Jun 18 2012).
> 41cbb0f5a2 Luca Coelho 2018-06-09 2246 * For AddBA to HE
> capable peers this value will be used.
> 3a25a8c8b7 Johannes Berg 2012-04-03 2247 *
> 6e0456b545 Felix Fietkau 2016-03-03 2248 * @max_tx_fragments:
> maximum number of tx buffers per (A)-MSDU, sum
> 6e0456b545 Felix Fietkau 2016-03-03 2249 * of 1 +
> skb_shinfo(skb)->nr_frags for each skb in the frag_list.
> 6e0456b545 Felix Fietkau 2016-03-03 2250 *
> 3a25a8c8b7 Johannes Berg 2012-04-03 2251 *
> @offchannel_tx_hw_queue: HW queue ID to use for offchannel TX
> 3a25a8c8b7 Johannes Berg 2012-04-03 2252 * (if
> %IEEE80211_HW_QUEUE_CONTROL is set)
> ac55d2fe05 Johannes Berg 2012-05-10 2253 *
> ac55d2fe05 Johannes Berg 2012-05-10 2254 *
> @radiotap_mcs_details: lists which MCS information can the HW
> ac55d2fe05 Johannes Berg 2012-05-10 2255 * reports, by default
> it is set to _MCS, _GI and _BW but doesn't
> b4f7f4ad42 Jani Nikula 2016-10-21 2256 * include _FMT. Use
> %IEEE80211_RADIOTAP_MCS_HAVE_\* values, only
> ac55d2fe05 Johannes Berg 2012-05-10 2257 * adding _BW is
> supported today.
> 72d7872852 Arik Nemtsov 2012-05-10 2258 *
> 5164892184 Johannes Berg 2012-11-22 2259 *
> @radiotap_vht_details: lists which VHT MCS information the HW reports,
> 5164892184 Johannes Berg 2012-11-22 2260 * the default is _GI |
> _BANDWIDTH.
> b4f7f4ad42 Jani Nikula 2016-10-21 2261 * Use the
> %IEEE80211_RADIOTAP_VHT_KNOWN_\* values.
> 5164892184 Johannes Berg 2012-11-22 2262 *
> 41cbb0f5a2 Luca Coelho 2018-06-09 2263 * @radiotap_he: HE
> radiotap validity flags
> 41cbb0f5a2 Luca Coelho 2018-06-09 2264 *
> 99ee7cae3b Johannes Berg 2016-08-29 2265 * @radiotap_timestamp:
> Information for the radiotap timestamp field; if the
> 99ee7cae3b Johannes Berg 2016-08-29 2266 * 'units_pos' member is
> set to a non-negative value it must be set to
> 99ee7cae3b Johannes Berg 2016-08-29 2267 * a combination of a
> IEEE80211_RADIOTAP_TIMESTAMP_UNIT_* and a
> 99ee7cae3b Johannes Berg 2016-08-29 2268
> * IEEE80211_RADIOTAP_TIMESTAMP_SPOS_* value, and then the timestamp
> 99ee7cae3b Johannes Berg 2016-08-29 2269 * field will be added
> and populated from the &struct ieee80211_rx_status
> 99ee7cae3b Johannes Berg 2016-08-29 2270 * device_timestamp. If
> the 'accuracy' member is non-negative, it's put
> 99ee7cae3b Johannes Berg 2016-08-29 2271 * into the accuracy
> radiotap field and the accuracy known flag is set.
> 99ee7cae3b Johannes Berg 2016-08-29 2272 *
> 72d7872852 Arik Nemtsov 2012-05-10 2273 * @netdev_features:
> netdev features to be set in each netdev created
> 680a0daba7 Johannes Berg 2015-04-13 2274 * from this HW. Note
> that not all features are usable with mac80211,
> 680a0daba7 Johannes Berg 2015-04-13 2275 * other features will
> be rejected during HW registration.
> 219c38674c Alexander Bondar 2013-01-22 2276 *
> 219c38674c Alexander Bondar 2013-01-22 2277 * @uapsd_queues: This
> bitmap is included in (re)association frame to indicate
> 219c38674c Alexander Bondar 2013-01-22 2278 * for each access
> category if it is uAPSD trigger-enabled and delivery-
> 219c38674c Alexander Bondar 2013-01-22 2279 * enabled. Use
> IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
> 219c38674c Alexander Bondar 2013-01-22 2280 * Each bit corresponds
> to different AC. Value '1' in specific bit means
> 219c38674c Alexander Bondar 2013-01-22 2281 * that corresponding AC
> is both trigger- and delivery-enabled. '0' means
> 219c38674c Alexander Bondar 2013-01-22 2282 * neither enabled.
> 219c38674c Alexander Bondar 2013-01-22 2283 *
> 219c38674c Alexander Bondar 2013-01-22 2284 * @uapsd_max_sp_len:
> maximum number of total buffered frames the WMM AP may
> 219c38674c Alexander Bondar 2013-01-22 2285 * deliver to a WMM STA
> during any Service Period triggered by the WMM STA.
> 219c38674c Alexander Bondar 2013-01-22 2286 * Use
> IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
> 2475b1cc0d Max Stepanov 2013-03-24 2287 *
> 2475b1cc0d Max Stepanov 2013-03-24 2288 * @n_cipher_schemes: a
> size of an array of cipher schemes definitions.
> 2475b1cc0d Max Stepanov 2013-03-24 2289 * @cipher_schemes: a
> pointer to an array of cipher scheme definitions
> 2475b1cc0d Max Stepanov 2013-03-24 2290 * supported by HW.
> 167e33f4f6 Ayala Beker 2016-09-20 2291 * @max_nan_de_entries:
> maximum number of NAN DE functions supported by the
> 167e33f4f6 Ayala Beker 2016-09-20 2292 * device.
> 7ac1bd6aec Johannes Berg 2007-09-14 2293 */
> f0706e828e Jiri Benc 2007-05-05 2294 struct ieee80211_hw {
> f0706e828e Jiri Benc 2007-05-05 2295 struct ieee80211_conf
> conf;
> 75a5f0ccfd Johannes Berg 2007-09-18 2296 struct wiphy *wiphy;
> 830f903866 Johannes Berg 2007-10-28 2297 const char
> *rate_control_algorithm;
> f0706e828e Jiri Benc 2007-05-05 2298 void *priv;
> 30686bf7f5 Johannes Berg 2015-06-02 2299 unsigned long
> flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)];
> f0706e828e Jiri Benc 2007-05-05 2300 unsigned int
> extra_tx_headroom;
> 70dabeb74e Felix Fietkau 2013-12-14 2301 unsigned int
> extra_beacon_tailroom;
> 32bfd35d4b Johannes Berg 2007-12-19 2302 int vif_data_size;
> 17741cdc26 Johannes Berg 2008-09-11 2303 int sta_data_size;
> d01a1e6586 Michal Kazior 2012-06-26 2304 int chanctx_data_size;
> ba8c3d6f16 Felix Fietkau 2015-03-27 2305 int txq_data_size;
> ea95bba41e Tomas Winkler 2008-07-18 2306 u16 queues;
> ea95bba41e Tomas Winkler 2008-07-18 2307 u16 max_listen_interval;
> f0706e828e Jiri Benc 2007-05-05 2308 s8 max_signal;
> e6a9854b05 Johannes Berg 2008-10-21 2309 u8 max_rates;
> 78be49ec2a Helmut Schaa 2010-10-02 2310 u8 max_report_rates;
> e6a9854b05 Johannes Berg 2008-10-21 2311 u8 max_rate_tries;
> 41cbb0f5a2 Luca Coelho 2018-06-09 2312 u16
> max_rx_aggregation_subframes;
> 41cbb0f5a2 Luca Coelho 2018-06-09 2313 u16
> max_tx_aggregation_subframes;
> 6e0456b545 Felix Fietkau 2016-03-03 2314 u8 max_tx_fragments;
> 3a25a8c8b7 Johannes Berg 2012-04-03 2315 u8
> offchannel_tx_hw_queue;
> ac55d2fe05 Johannes Berg 2012-05-10 2316 u8 radiotap_mcs_details;
> 5164892184 Johannes Berg 2012-11-22 2317 u16
> radiotap_vht_details;
> 99ee7cae3b Johannes Berg 2016-08-29 2318 struct {
> 99ee7cae3b Johannes Berg 2016-08-29 2319 int units_pos;
> 99ee7cae3b Johannes Berg 2016-08-29 2320 s16 accuracy;
> 99ee7cae3b Johannes Berg 2016-08-29 2321 } radiotap_timestamp;
> 72d7872852 Arik Nemtsov 2012-05-10 2322 netdev_features_t
> netdev_features;
> 219c38674c Alexander Bondar 2013-01-22 2323 u8 uapsd_queues;
> 219c38674c Alexander Bondar 2013-01-22 2324 u8 uapsd_max_sp_len;
> 2475b1cc0d Max Stepanov 2013-03-24 2325 u8 n_cipher_schemes;
> 2475b1cc0d Max Stepanov 2013-03-24 2326 const struct
> ieee80211_cipher_scheme *cipher_schemes;
> 167e33f4f6 Ayala Beker 2016-09-20 2327 u8 max_nan_de_entries;
> c03233ae8c Wen Gong 2018-07-26 2328 u8 tx_sk_pacing_shift;
> f0706e828e Jiri Benc 2007-05-05 @2329 };
> f0706e828e Jiri Benc 2007-05-05 2330
>
> :::::: The code at line 2329 was first introduced by commit
> :::::: f0706e828e96d0fa4e80c0d25aa98523f6d589a0 [MAC80211]: Add
> mac80211 wireless stack.
>
> :::::: TO: Jiri Benc <[email protected]>
> :::::: CC: David S. Miller <[email protected]>
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology
> Center
> https://lists.01.org/pipermail/kbuild-all Intel
> Corporation