From 1de8fdf2abe9391b48739547b19df99d16d34084 Mon Sep 17 00:00:00 2001 From: Rajeev Kumar Date: Thu, 27 Sep 2018 16:23:10 -0700 Subject: [PATCH] qcacmn: Do not schedule a work before reschedulign tasklet Current wifi driver breaks tasklet storm by scheduling a work whenever wifi driver tasklet reschedules itself to avoid excessive tasklet storm and wd barks as a side effect. Remove work scheduling from tasklet reschedule such that tasklets can be rescheduled as fast as possible and reap CE rings as fast as possible and let linux kernel handle the tasklet storm by bringing in ksoftirqd as needed. Change-Id: I985369f534c09903b2d269f858adb88640e4fd2f Crs-Fixed: 2325935 --- hif/src/ce/ce_tasklet.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/hif/src/ce/ce_tasklet.c b/hif/src/ce/ce_tasklet.c index 09d4f66bdc84..2fe72139f7a0 100644 --- a/hif/src/ce/ce_tasklet.c +++ b/hif/src/ce/ce_tasklet.c @@ -128,22 +128,6 @@ void deinit_tasklet_workers(struct hif_opaque_softc *scn) work_initialized = false; } -#ifdef HIF_CONFIG_SLUB_DEBUG_ON -/** - * ce_schedule_tasklet() - schedule ce tasklet - * @tasklet_entry: struct ce_tasklet_entry - * - * Return: N/A - */ -static inline void ce_schedule_tasklet(struct ce_tasklet_entry *tasklet_entry) -{ - if (work_initialized && (tasklet_entry->ce_id < CE_ID_MAX)) - schedule_work(&tasklet_workers[tasklet_entry->ce_id].work); - else - HIF_ERROR("%s: work_initialized = %d, ce_id = %d", - __func__, work_initialized, tasklet_entry->ce_id); -} -#else /** * ce_schedule_tasklet() - schedule ce tasklet * @tasklet_entry: struct ce_tasklet_entry @@ -154,7 +138,6 @@ static inline void ce_schedule_tasklet(struct ce_tasklet_entry *tasklet_entry) { tasklet_schedule(&tasklet_entry->intr_tq); } -#endif /** * ce_tasklet() - ce_tasklet