From 41f857eb31919d6779bd97218710dfa02fcd4214 Mon Sep 17 00:00:00 2001 From: wadesong Date: Mon, 13 Nov 2017 11:53:19 +0800 Subject: [PATCH] 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 --- hif/inc/hif.h | 2 ++ hif/src/sdio/hif_sdio_dev.c | 6 ++++-- qdf/linux/src/qdf_nbuf.c | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/hif/inc/hif.h b/hif/inc/hif.h index 24192e345c61..bd211b2024ff 100644 --- a/hif/inc/hif.h +++ b/hif/inc/hif.h @@ -52,6 +52,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 8568e12fcb88..baa527de4cdb 100644 --- a/qdf/linux/src/qdf_nbuf.c +++ b/qdf/linux/src/qdf_nbuf.c @@ -400,7 +400,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; } else {