On Tue, 2017-01-24 at 13:06 -0800, Stephen Hemminger wrote: > To improve performance, netvsc can call network stack directly and > avoid the local backlog queue. This is safe since incoming packets are > handled in softirq context already because the receive function > callback is called from a tasklet.
Is this tasklet implementing a limit or something ? netif_rx() queues packets to the backlog, which is processed later by net_rx_action() like other NAPI, with limit of 64 packets per round. Calling netif_receive_skb() means you can escape this ability to fairly distribute the cpu cycles among multiple NAPI. I do not see range_cnt being capped in netvsc_receive()