netvsc: signal host if receive ring is emptied

Latency improvement related to NAPI conversion.
If all packets are processed from receive ring then need
to signal host.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
stephen hemminger 2017-07-28 08:59:47 -07:00 committed by David S. Miller
parent 493933472d
commit f4e403633b
1 changed files with 8 additions and 3 deletions

View File

@ -1195,10 +1195,15 @@ int netvsc_poll(struct napi_struct *napi, int budget)
nvchan->desc = hv_pkt_iter_next(channel, nvchan->desc);
}
/* If send of pending receive completions suceeded
* and did not exhaust NAPI budget
/* if ring is empty, signal host */
if (!nvchan->desc)
hv_pkt_iter_close(channel);
/* If send of pending receive completions suceeded
* and did not exhaust NAPI budget this time
* and not doing busy poll
* then reschedule if more data has arrived from host
* then re-enable host interrupts
* and reschedule if ring is not empty.
*/
if (send_recv_completions(nvchan) == 0 &&
work_done < budget &&