aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/sun/sunvnet.h
diff options
context:
space:
mode:
authorSowmini Varadhan <sowmini.varadhan@oracle.com>2014-09-11 09:57:22 -0400
committerDavid S. Miller <davem@davemloft.net>2014-09-12 18:19:08 -0400
commitd1015645dd535bbf10e52a3ef6d02ee0c3e0b267 (patch)
treecbd8c73222b92fbef933b7cb95ff38fcd81d55ab /drivers/net/ethernet/sun/sunvnet.h
parentnet: axienet: remove unnecessary ether_setup after alloc_etherdev (diff)
downloadlinux-dev-d1015645dd535bbf10e52a3ef6d02ee0c3e0b267.tar.xz
linux-dev-d1015645dd535bbf10e52a3ef6d02ee0c3e0b267.zip
sunvnet: Avoid sending superfluous LDC messages.
When sending out a burst of packets across multiple descriptors, it is sufficient to send one LDC "start" trigger for the first descriptor, so do not send an LDC "start" for every pass through vnet_start_xmit. Similarly, it is sufficient to send one "DRING_STOPPED" trigger for the last dring (and if that fails, hold off and send the trigger later). Optimizations to the number of LDC messages helps avoid filling up the LDC channel with superfluous LDC messages that risk triggering flow-control on the channel, and also boosts performance. Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Acked-by: Raghuram Kothakota <raghuram.kothakota@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sun/sunvnet.h')
-rw-r--r--drivers/net/ethernet/sun/sunvnet.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sun/sunvnet.h b/drivers/net/ethernet/sun/sunvnet.h
index de5c2c64996f..da4933750d06 100644
--- a/drivers/net/ethernet/sun/sunvnet.h
+++ b/drivers/net/ethernet/sun/sunvnet.h
@@ -40,6 +40,10 @@ struct vnet_port {
struct vnet_tx_entry tx_bufs[VNET_TX_RING_SIZE];
struct list_head list;
+
+ u32 stop_rx_idx;
+ bool stop_rx;
+ bool start_cons;
};
static inline struct vnet_port *to_vnet_port(struct vio_driver_state *vio)