qcacld-3.0: Add INI to control tcp_limit_output_bytes tuning
Current driver posts the high and low Tx TPUT indications to cnss-daemon to tune the tcp_limit_output_byte system parameter. Add option to disable it. Change-Id: Ic65fe0bd762024425cabf2f1f07123211dce5dce CRs-Fixed: 2197112
This commit is contained in:

committed by
Nitesh Shrivastav

parent
a63fc0c2e3
commit
e73e3b57db
@@ -8267,6 +8267,29 @@ enum hdd_link_speed_rpt_type {
|
|||||||
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT (100)
|
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT (100)
|
||||||
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN (0)
|
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN (0)
|
||||||
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX (10000)
|
#define CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX (10000)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableTcpLimitOutput - Control to enable TCP limit output byte
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 1
|
||||||
|
* @Default: 1
|
||||||
|
*
|
||||||
|
* This ini is used to enable dynamic configuration of TCP limit output bytes
|
||||||
|
* tcp_limit_output_bytes param. Enabling this will let driver post message to
|
||||||
|
* cnss-daemon, accordingly cnss-daemon will modify the tcp_limit_output_bytes.
|
||||||
|
*
|
||||||
|
* Supported Feature: Tcp limit output bytes
|
||||||
|
*
|
||||||
|
* Usage: Internal
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_ENABLE_TCP_LIMIT_OUTPUT "gTcpLimitOutputEnable"
|
||||||
|
#define CFG_ENABLE_TCP_LIMIT_OUTPUT_DEFAULT (1)
|
||||||
|
#define CFG_ENABLE_TCP_LIMIT_OUTPUT_MIN (0)
|
||||||
|
#define CFG_ENABLE_TCP_LIMIT_OUTPUT_MAX (1)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* <ini>
|
* <ini>
|
||||||
* gTcpAdvWinScaleEnable - Control to enable TCP adv window scaling
|
* gTcpAdvWinScaleEnable - Control to enable TCP adv window scaling
|
||||||
@@ -14883,6 +14906,7 @@ struct hdd_config {
|
|||||||
uint32_t busBandwidthLowThreshold;
|
uint32_t busBandwidthLowThreshold;
|
||||||
uint32_t busBandwidthComputeInterval;
|
uint32_t busBandwidthComputeInterval;
|
||||||
uint32_t enable_tcp_delack;
|
uint32_t enable_tcp_delack;
|
||||||
|
bool enable_tcp_limit_output;
|
||||||
uint32_t enable_tcp_adv_win_scale;
|
uint32_t enable_tcp_adv_win_scale;
|
||||||
uint32_t tcpDelackThresholdHigh;
|
uint32_t tcpDelackThresholdHigh;
|
||||||
uint32_t tcpDelackThresholdLow;
|
uint32_t tcpDelackThresholdLow;
|
||||||
|
@@ -3217,6 +3217,13 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
|
CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
|
||||||
CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
|
CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
|
||||||
|
|
||||||
|
REG_VARIABLE(CFG_ENABLE_TCP_LIMIT_OUTPUT, WLAN_PARAM_Integer,
|
||||||
|
struct hdd_config, enable_tcp_limit_output,
|
||||||
|
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||||
|
CFG_ENABLE_TCP_LIMIT_OUTPUT_DEFAULT,
|
||||||
|
CFG_ENABLE_TCP_LIMIT_OUTPUT_MIN,
|
||||||
|
CFG_ENABLE_TCP_LIMIT_OUTPUT_MAX),
|
||||||
|
|
||||||
REG_VARIABLE(CFG_ENABLE_TCP_ADV_WIN_SCALE, WLAN_PARAM_Integer,
|
REG_VARIABLE(CFG_ENABLE_TCP_ADV_WIN_SCALE, WLAN_PARAM_Integer,
|
||||||
struct hdd_config, enable_tcp_adv_win_scale,
|
struct hdd_config, enable_tcp_adv_win_scale,
|
||||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||||
@@ -6877,6 +6884,9 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
|||||||
hdd_ctx->config->busBandwidthLowThreshold);
|
hdd_ctx->config->busBandwidthLowThreshold);
|
||||||
hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
|
hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
|
||||||
hdd_ctx->config->busBandwidthComputeInterval);
|
hdd_ctx->config->busBandwidthComputeInterval);
|
||||||
|
hdd_debug("Name = [%s] Value = [%u] ",
|
||||||
|
CFG_ENABLE_TCP_LIMIT_OUTPUT,
|
||||||
|
hdd_ctx->config->enable_tcp_limit_output);
|
||||||
hdd_debug("Name = [%s] Value = [%u] ",
|
hdd_debug("Name = [%s] Value = [%u] ",
|
||||||
CFG_ENABLE_TCP_ADV_WIN_SCALE,
|
CFG_ENABLE_TCP_ADV_WIN_SCALE,
|
||||||
hdd_ctx->config->enable_tcp_adv_win_scale);
|
hdd_ctx->config->enable_tcp_adv_win_scale);
|
||||||
|
@@ -6931,7 +6931,8 @@ static void hdd_pld_request_bus_bandwidth(struct hdd_context *hdd_ctx,
|
|||||||
else
|
else
|
||||||
next_tx_level = WLAN_SVC_TP_LOW;
|
next_tx_level = WLAN_SVC_TP_LOW;
|
||||||
|
|
||||||
if (hdd_ctx->cur_tx_level != next_tx_level) {
|
if ((hdd_ctx->config->enable_tcp_limit_output) &&
|
||||||
|
(hdd_ctx->cur_tx_level != next_tx_level)) {
|
||||||
hdd_debug("change TCP TX trigger level %d, average_tx: %llu",
|
hdd_debug("change TCP TX trigger level %d, average_tx: %llu",
|
||||||
next_tx_level, temp_tx);
|
next_tx_level, temp_tx);
|
||||||
hdd_ctx->cur_tx_level = next_tx_level;
|
hdd_ctx->cur_tx_level = next_tx_level;
|
||||||
|
Reference in New Issue
Block a user