mirror of https://gitee.com/openkylin/linux.git
rtlwifi: Reduce IO in RX interrupt to boost throughput
Check remaining count of RX packets cost a lot of CPU time, so only update when the counter decreases to zero. In old flow, the counter was updated once a RX packet is received. Signed-off-by: Steven Ting <steventing@realtek.com> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
78aa601203
commit
fb9829e90d
|
@ -747,7 +747,7 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
|
||||||
u8 tmp_one;
|
u8 tmp_one;
|
||||||
bool unicast = false;
|
bool unicast = false;
|
||||||
u8 hw_queue = 0;
|
u8 hw_queue = 0;
|
||||||
unsigned int rx_remained_cnt;
|
unsigned int rx_remained_cnt = 0;
|
||||||
struct rtl_stats stats = {
|
struct rtl_stats stats = {
|
||||||
.signal = 0,
|
.signal = 0,
|
||||||
.rate = 0,
|
.rate = 0,
|
||||||
|
@ -768,7 +768,8 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
|
||||||
struct sk_buff *new_skb;
|
struct sk_buff *new_skb;
|
||||||
|
|
||||||
if (rtlpriv->use_new_trx_flow) {
|
if (rtlpriv->use_new_trx_flow) {
|
||||||
rx_remained_cnt =
|
if (rx_remained_cnt == 0)
|
||||||
|
rx_remained_cnt =
|
||||||
rtlpriv->cfg->ops->rx_desc_buff_remained_cnt(hw,
|
rtlpriv->cfg->ops->rx_desc_buff_remained_cnt(hw,
|
||||||
hw_queue);
|
hw_queue);
|
||||||
if (rx_remained_cnt == 0)
|
if (rx_remained_cnt == 0)
|
||||||
|
|
Loading…
Reference in New Issue