Commit 601216e1 authored by Bing Zhao's avatar Bing Zhao Committed by John W. Linville

mwifiex: process RX packets in SDIO IRQ thread directly

ksdioirqd has higher priority than kworker. Process RX packets
in SDIO IRQ thread (ksdioirqd/mmcX) directly instead of deferring
the work to kworker to avoid the extra latency.
This improves TCP throughput 15~20% on an ARM platform with SDIO
2.0 controller.
Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1993732e
...@@ -282,6 +282,7 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter) ...@@ -282,6 +282,7 @@ int mwifiex_main_process(struct mwifiex_adapter *adapter)
mwifiex_shutdown_drv(adapter); mwifiex_shutdown_drv(adapter);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(mwifiex_main_process);
/* /*
* This function frees the adapter structure. * This function frees the adapter structure.
......
...@@ -905,8 +905,8 @@ static void mwifiex_interrupt_status(struct mwifiex_adapter *adapter) ...@@ -905,8 +905,8 @@ static void mwifiex_interrupt_status(struct mwifiex_adapter *adapter)
/* /*
* SDIO interrupt handler. * SDIO interrupt handler.
* *
* This function reads the interrupt status from firmware and assigns * This function reads the interrupt status from firmware and handles
* the main process in workqueue which will handle the interrupt. * the interrupt in current thread (ksdioirqd) right away.
*/ */
static void static void
mwifiex_sdio_interrupt(struct sdio_func *func) mwifiex_sdio_interrupt(struct sdio_func *func)
...@@ -929,7 +929,7 @@ mwifiex_sdio_interrupt(struct sdio_func *func) ...@@ -929,7 +929,7 @@ mwifiex_sdio_interrupt(struct sdio_func *func)
adapter->ps_state = PS_STATE_AWAKE; adapter->ps_state = PS_STATE_AWAKE;
mwifiex_interrupt_status(adapter); mwifiex_interrupt_status(adapter);
queue_work(adapter->workqueue, &adapter->main_work); mwifiex_main_process(adapter);
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment