iwlwifi: disable 8K A-MSDU by default
Supporting 8K A-MSDU means that we need to allocate order 1 pages for every Rx packet. Even when there is no traffic. This adds stress on the memory manager. The handling of compound pages is also less trivial for the memory manager and not using them will make the allocation code run faster although I didn't really measure. Eric also pointed out that having huge buffers with little data in them is not very nice towards the TCP stack since the truesize of the skb is huge. This doesn't allow TCP to have a big Rx window. See https://patchwork.kernel.org/patch/2167711/ for details. Note that very few vendors will actually send A-MSDU. Disable this feature by default. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
1afbfb6041
commit
aed7d9ac18
|
@ -1102,7 +1102,6 @@ void iwl_drv_stop(struct iwl_drv *drv)
|
||||||
|
|
||||||
/* shared module parameters */
|
/* shared module parameters */
|
||||||
struct iwl_mod_params iwlwifi_mod_params = {
|
struct iwl_mod_params iwlwifi_mod_params = {
|
||||||
.amsdu_size_8K = 1,
|
|
||||||
.restart_fw = 1,
|
.restart_fw = 1,
|
||||||
.plcp_check = true,
|
.plcp_check = true,
|
||||||
.bt_coex_active = true,
|
.bt_coex_active = true,
|
||||||
|
@ -1207,7 +1206,7 @@ MODULE_PARM_DESC(11n_disable,
|
||||||
"disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX");
|
"disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX");
|
||||||
module_param_named(amsdu_size_8K, iwlwifi_mod_params.amsdu_size_8K,
|
module_param_named(amsdu_size_8K, iwlwifi_mod_params.amsdu_size_8K,
|
||||||
int, S_IRUGO);
|
int, S_IRUGO);
|
||||||
MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size");
|
MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size (default 0)");
|
||||||
module_param_named(fw_restart, iwlwifi_mod_params.restart_fw, int, S_IRUGO);
|
module_param_named(fw_restart, iwlwifi_mod_params.restart_fw, int, S_IRUGO);
|
||||||
MODULE_PARM_DESC(fw_restart, "restart firmware in case of error");
|
MODULE_PARM_DESC(fw_restart, "restart firmware in case of error");
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ enum iwl_power_level {
|
||||||
* @sw_crypto: using hardware encryption, default = 0
|
* @sw_crypto: using hardware encryption, default = 0
|
||||||
* @disable_11n: disable 11n capabilities, default = 0,
|
* @disable_11n: disable 11n capabilities, default = 0,
|
||||||
* use IWL_DISABLE_HT_* constants
|
* use IWL_DISABLE_HT_* constants
|
||||||
* @amsdu_size_8K: enable 8K amsdu size, default = 1
|
* @amsdu_size_8K: enable 8K amsdu size, default = 0
|
||||||
* @restart_fw: restart firmware, default = 1
|
* @restart_fw: restart firmware, default = 1
|
||||||
* @plcp_check: enable plcp health check, default = true
|
* @plcp_check: enable plcp health check, default = true
|
||||||
* @wd_disable: enable stuck queue check, default = 0
|
* @wd_disable: enable stuck queue check, default = 0
|
||||||
|
|
Loading…
Reference in New Issue