]> git.baikalelectronics.ru Git - kernel.git/commit
xen-netback: require fewer guest Rx slots when not using GSO
authorDavid Vrabel <david.vrabel@citrix.com>
Tue, 8 Sep 2015 13:25:14 +0000 (14:25 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Sep 2015 19:34:35 +0000 (12:34 -0700)
commit47e00b0288e4d9d006d94f8da6fb053810a6eb9d
treec95e0fefd5685977313ff4c0794d22906a163253
parente49507d144a1a220477d45fa9a953d894ecfcc46
xen-netback: require fewer guest Rx slots when not using GSO

Commit 9751a4131cd903b9adcda6de0dc3e8ce90e697eb (xen-netback: fix
unlimited guest Rx internal queue and carrier flapping) introduced a
regression.

The PV frontend in IPXE only places 4 requests on the guest Rx ring.
Since netback required at least (MAX_SKB_FRAGS + 1) slots, IPXE could
not receive any packets.

a) If GSO is not enabled on the VIF, fewer guest Rx slots are required
   for the largest possible packet.  Calculate the required slots
   based on the maximum GSO size or the MTU.

   This calculation of the number of required slots relies on
   7ad02ce522a3 (xen-netback: always fully coalesce guest Rx packets)
   which present in 4.0-rc1 and later.

b) Reduce the Rx stall detection to checking for at least one
   available Rx request.  This is fine since we're predominately
   concerned with detecting interfaces which are down and thus have
   zero available Rx requests.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/xen-netback/common.h
drivers/net/xen-netback/netback.c