summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwadesong <wadesong@codeaurora.org>2017-11-13 11:53:19 +0800
committersnandini <snandini@codeaurora.org>2017-11-30 20:36:45 -0800
commit38f50197446d7d52da929972bc000b48a0e84b62 (patch)
treebc6536d2e49c1b23496b14bf32b1a6321a772094
parentce4fc3f3bd77a6ffbe569661c9b05be6188e2f86 (diff)
qcacmn: Debug print rate limiting
Implement driver debug print rate limiting in HIF SDIO RX path and QDF nbuf allocation path to avoid driver inactivity watch dog time out when the platform is facing great memory pressure. Change-Id: Ifa4fe3e7027150fd1469df58049776fca8aa6f2f CRs-Fixed: 2148314
-rw-r--r--hif/inc/hif.h2
-rw-r--r--hif/src/sdio/hif_sdio_dev.c6
-rw-r--r--qdf/linux/src/qdf_nbuf.c3
3 files changed, 8 insertions, 3 deletions
diff --git a/hif/inc/hif.h b/hif/inc/hif.h
index a62db2bd76f8..a4253d530f4a 100644
--- a/hif/inc/hif.h
+++ b/hif/inc/hif.h
@@ -51,6 +51,8 @@ extern "C" {
typedef void __iomem *A_target_id_t;
typedef void *hif_handle_t;
+#define HIF_DBG_PRINT_RATE 1000
+
#define HIF_TYPE_AR6002 2
#define HIF_TYPE_AR6003 3
#define HIF_TYPE_AR6004 5
diff --git a/hif/src/sdio/hif_sdio_dev.c b/hif/src/sdio/hif_sdio_dev.c
index 0bad5cdc7542..a85a48a92a8b 100644
--- a/hif/src/sdio/hif_sdio_dev.c
+++ b/hif/src/sdio/hif_sdio_dev.c
@@ -190,8 +190,10 @@ HTC_PACKET *hif_dev_alloc_rx_buffer(struct hif_sdio_device *pdev)
headsize = sizeof(HTC_PACKET);
netbuf = qdf_nbuf_alloc(NULL, bufsize + headsize, 0, 4, false);
if (netbuf == NULL) {
- AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
- ("(%s)Allocate netbuf failed\n", __func__));
+ QDF_TRACE_RATE_LIMITED(HIF_DBG_PRINT_RATE, QDF_MODULE_ID_HIF,
+ QDF_TRACE_LEVEL_ERROR,
+ "(%s)Allocate netbuf failed\n",
+ __func__);
return NULL;
}
packet = (HTC_PACKET *) qdf_nbuf_data(netbuf);
diff --git a/qdf/linux/src/qdf_nbuf.c b/qdf/linux/src/qdf_nbuf.c
index f370284e3c5e..587da9b33599 100644
--- a/qdf/linux/src/qdf_nbuf.c
+++ b/qdf/linux/src/qdf_nbuf.c
@@ -305,7 +305,8 @@ struct sk_buff *__qdf_nbuf_alloc(qdf_device_t osdev, size_t size, int reserve,
skb = pld_nbuf_pre_alloc(size);
if (!skb) {
- pr_info("ERROR:NBUF alloc failed\n");
+ pr_err_ratelimited("ERROR:NBUF alloc failed, size = %zu\n",
+ size);
__qdf_nbuf_start_replenish_timer();
return NULL;
}