When packets are being passed through account for them in per-cpu
data structure. Aggegrate synthetic and VF statistics for general
requests, but breakout with ethtool.
Signed-off-by: Stephen Hemminger <email address hidden>
Signed-off-by: Dexuan Cui <email address hidden>
Signed-off-by: Marcelo Henrique Cerri <email address hidden>
cc6cf50...
by
Stephen Hemminger <email address hidden>
UBUNTU: SAUCE: netvsc: optional transparent fail over
This patch implements transparent fail over from synthetic NIC to
SR-IOV virtual function NIC in Hyper-V environment. It is a better
alternative to using bonding as is done now. Instead, the receive and
transmit fail over is done internally inside the driver.
Using bonding driver has lots of issues because it depends on the
script being run early enough in the boot process and with sufficient
information to make the association. This patch moves all that
functionality into the kernel.
The new mode is enabled through a module parameter (transparent_vf)
which currently defaults to off. This keeps full compatibility with
existing environments.
Note: the VF device is still visible, but it is marked as slave
device of the netvsc device.
Signed-off-by: Stephen Hemminger <email address hidden>
Signed-off-by: Dexuan Cui <email address hidden>
Signed-off-by: Marcelo Henrique Cerri <email address hidden>
Speed up transmit check for fragmented packets by using existing
macros to compute number of pages, and eliminate loop since
skb fragments each take a page. Number of slots is also unsigned.
Signed-off-by: Stephen Hemminger <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
Signed-off-by: Dexuan Cui <email address hidden>
Signed-off-by: Marcelo Henrique Cerri <email address hidden>
This problem shows up in 4.11 when netvsc driver is removed and reloaded.
The problem is that the channel is closed during module removal and the
tasklet for processing responses is disabled. When module is reloaded
the channel is reopened but the tasklet is marked as disabled.
The fix is to re-enable tasklet at the end of close which gets it back
to the initial state.
The issue is less urgent in 4.12 since network driver now uses NAPI
and not the tasklet; and other VMBUS devices are rarely unloaded/reloaded.