qcacmn: Allow drop pkts when pkts pending is large
On some cases, dp_rx_thread can not handle nbufs in time, then a large number of packets are pending in rx_thread->nbuf_queue, which run out of system memory at last and failed to malloc new buffers for refill buffer ring, fw crash is encountered. To avoid this, drop RX packets when the pending number becomes large. Change-Id: I370ad983b185b6ecb28fa7c0b4820b8edc00c710 CRs-Fixed: 2737191
This commit is contained in:
@@ -107,6 +107,14 @@
|
||||
#define WLAN_CFG_INT_TIMER_THRESHOLD_OTHER 8
|
||||
#endif
|
||||
|
||||
#define WLAN_CFG_RX_PENDING_HL_THRESHOLD 0x60000
|
||||
#define WLAN_CFG_RX_PENDING_HL_THRESHOLD_MIN 0
|
||||
#define WLAN_CFG_RX_PENDING_HL_THRESHOLD_MAX 0x80000
|
||||
|
||||
#define WLAN_CFG_RX_PENDING_LO_THRESHOLD 0x60000
|
||||
#define WLAN_CFG_RX_PENDING_LO_THRESHOLD_MIN 100
|
||||
#define WLAN_CFG_RX_PENDING_LO_THRESHOLD_MAX 0x80000
|
||||
|
||||
#define WLAN_CFG_INT_TIMER_THRESHOLD_WBM_RELEASE_RING 256
|
||||
#define WLAN_CFG_INT_TIMER_THRESHOLD_REO_RING 512
|
||||
|
||||
@@ -523,6 +531,49 @@
|
||||
WLAN_CFG_PER_PDEV_LMAC_RING_MAX, \
|
||||
WLAN_CFG_PER_PDEV_LMAC_RING, \
|
||||
CFG_VALUE_OR_DEFAULT, "DP pdev LMAC ring")
|
||||
/*
|
||||
* <ini>
|
||||
* dp_rx_pending_hl_threshold - High threshold of frame number to start
|
||||
* frame dropping scheme
|
||||
* @Min: 0
|
||||
* @Max: 524288
|
||||
* @Default: 393216
|
||||
*
|
||||
* This ini entry is used to set a high limit threshold to start frame
|
||||
* dropping scheme
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_DP_RX_PENDING_HL_THRESHOLD \
|
||||
CFG_INI_UINT("dp_rx_pending_hl_threshold", \
|
||||
WLAN_CFG_RX_PENDING_HL_THRESHOLD_MIN, \
|
||||
WLAN_CFG_RX_PENDING_HL_THRESHOLD_MAX, \
|
||||
WLAN_CFG_RX_PENDING_HL_THRESHOLD, \
|
||||
CFG_VALUE_OR_DEFAULT, "DP rx pending hl threshold")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* dp_rx_pending_lo_threshold - Low threshold of frame number to stop
|
||||
* frame dropping scheme
|
||||
* @Min: 100
|
||||
* @Max: 524288
|
||||
* @Default: 393216
|
||||
*
|
||||
* This ini entry is used to set a low limit threshold to stop frame
|
||||
* dropping scheme
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_DP_RX_PENDING_LO_THRESHOLD \
|
||||
CFG_INI_UINT("dp_rx_pending_lo_threshold", \
|
||||
WLAN_CFG_RX_PENDING_LO_THRESHOLD_MIN, \
|
||||
WLAN_CFG_RX_PENDING_LO_THRESHOLD_MAX, \
|
||||
WLAN_CFG_RX_PENDING_LO_THRESHOLD, \
|
||||
CFG_VALUE_OR_DEFAULT, "DP rx pending lo threshold")
|
||||
|
||||
#define CFG_DP_BASE_HW_MAC_ID \
|
||||
CFG_INI_UINT("dp_base_hw_macid", \
|
||||
@@ -973,6 +1024,8 @@
|
||||
CFG(CFG_DP_FULL_MON_MODE) \
|
||||
CFG(CFG_DP_REO_RINGS_MAP) \
|
||||
CFG(CFG_DP_PEER_EXT_STATS) \
|
||||
CFG(CFG_DP_RX_BUFF_POOL_ENABLE)
|
||||
CFG(CFG_DP_RX_BUFF_POOL_ENABLE) \
|
||||
CFG(CFG_DP_RX_PENDING_HL_THRESHOLD) \
|
||||
CFG(CFG_DP_RX_PENDING_LO_THRESHOLD)
|
||||
|
||||
#endif /* _CFG_DP_H_ */
|
||||
|
Reference in New Issue
Block a user