Browse Source

qcacmn: Fix for datapath latency issues

Reduce DP poll interval to 10ms and change per-packet prints in Rx path to debug level.
Also fixed HAL macros used to setup Rx buffer descriptors.

Change-Id: I112393a3f021b275dbe9da9df9c1bac584a96f3f
CRs-Fixed: 2026389
Karunakar Dasineni 8 years ago
parent
commit
1d891ed8d3
3 changed files with 8 additions and 10 deletions
  1. 1 1
      dp/wifi3.0/dp_main.c
  2. 5 5
      dp/wifi3.0/dp_rx.c
  3. 2 4
      dp/wifi3.0/hal_rx.h

+ 1 - 1
dp/wifi3.0/dp_main.c

@@ -36,7 +36,7 @@
 #include "dp_peer.h"
 #include "dp_rx_mon.h"
 
-#define DP_INTR_POLL_TIMER_MS	100
+#define DP_INTR_POLL_TIMER_MS	10
 #define DP_MCS_LENGTH (6*MAX_MCS)
 #define DP_NSS_LENGTH (6*SS_COUNT)
 #define DP_RXDMA_ERR_LENGTH (6*MAX_RXDMA_ERRORS)

+ 5 - 5
dp/wifi3.0/dp_rx.c

@@ -76,7 +76,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
+	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
 		"requested %d buffers for replenish", num_req_buffers);
 
 	/*
@@ -98,7 +98,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
 			return QDF_STATUS_E_NOMEM;
 		}
 
-		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
+		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
 			"%d rx desc allocated", num_alloc_desc);
 		num_req_buffers = num_alloc_desc;
 	}
@@ -108,7 +108,7 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
 						   rxdma_srng,
 						   sync_hw_ptr);
 
-	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
+	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
 			"no of availble entries in rxdma ring: %d",
 			num_entries_avail);
 
@@ -169,9 +169,9 @@ QDF_STATUS dp_rx_buffers_replenish(struct dp_soc *dp_soc, uint32_t mac_id,
 
 	hal_srng_access_end(dp_soc->hal_soc, rxdma_srng);
 
-	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
+	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
 		"successfully replenished %d buffers", num_req_buffers);
-	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
+	QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_DEBUG,
 		"%d rx desc added back to free list", num_desc_to_free);
 	DP_STATS_INC(dp_pdev, buf_freelist, num_desc_to_free);
 

+ 2 - 4
dp/wifi3.0/hal_rx.h

@@ -166,8 +166,7 @@ enum hal_rx_ret_buf_manager {
 #define HAL_RXDMA_COOKIE_SET(buff_addr_info, cookie) \
 		((*(((unsigned int *) buff_addr_info) + \
 		(BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_OFFSET >> 2))) &= \
-		~((cookie << BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_LSB) & \
-		BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_MASK)); \
+		~BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_MASK); \
 		((*(((unsigned int *) buff_addr_info) + \
 		(BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_OFFSET >> 2))) |= \
 		(cookie << BUFFER_ADDR_INFO_1_SW_BUFFER_COOKIE_LSB) & \
@@ -179,8 +178,7 @@ enum hal_rx_ret_buf_manager {
 #define HAL_RXDMA_MANAGER_SET(buff_addr_info, manager) \
 		((*(((unsigned int *) buff_addr_info) + \
 		(BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_OFFSET >> 2))) &= \
-		~((manager << BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_LSB) & \
-		BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_MASK)); \
+		~BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_MASK); \
 		((*(((unsigned int *) buff_addr_info) + \
 		(BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_OFFSET >> 2))) |= \
 		(manager << BUFFER_ADDR_INFO_1_RETURN_BUFFER_MANAGER_LSB) & \