search for: virtnet_tx_timeout

Displaying 20 results from an estimated 26 matches for "virtnet_tx_timeout".

2019 Oct 07
3
[PATCH RFC net-next 2/2] drivers: net: virtio_net: Add tx_timeout function
...vers/net/virtio_net.c b/drivers/net/virtio_net.c > index 27f9b212c9f5..4b703b4b9441 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2585,6 +2585,29 @@ static int virtnet_set_features(struct net_device *dev, > return 0; > } > > +static void virtnet_tx_timeout(struct net_device *dev) > +{ > + struct virtnet_info *vi = netdev_priv(dev); > + u32 i; > + > + /* find the stopped queue the same way dev_watchdog() does */ not really - the watchdog actually looks at trans_start. > + for (i = 0; i < vi->curr_queue_pairs; i++) { > + s...
2019 Oct 07
3
[PATCH RFC net-next 2/2] drivers: net: virtio_net: Add tx_timeout function
...vers/net/virtio_net.c b/drivers/net/virtio_net.c > index 27f9b212c9f5..4b703b4b9441 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -2585,6 +2585,29 @@ static int virtnet_set_features(struct net_device *dev, > return 0; > } > > +static void virtnet_tx_timeout(struct net_device *dev) > +{ > + struct virtnet_info *vi = netdev_priv(dev); > + u32 i; > + > + /* find the stopped queue the same way dev_watchdog() does */ not really - the watchdog actually looks at trans_start. > + for (i = 0; i < vi->curr_queue_pairs; i++) { > + s...
2015 Jun 24
2
[RFC] virtio_net: Adding tx_timeout function.
...rk; + /* Work struct for resetting the virtio-net driver. */ + struct work_struct reset_task; + /* Does the affinity hint is set for virtqueues? */ bool affinity_hint_set; @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", + jiffies - dev_trans_start(dev)); + + schedule_work(&vi->reset_task); +} + +static void virtnet_reset_task(struct work_struct *work...
2015 Jun 24
2
[RFC] virtio_net: Adding tx_timeout function.
...rk; + /* Work struct for resetting the virtio-net driver. */ + struct work_struct reset_task; + /* Does the affinity hint is set for virtqueues? */ bool affinity_hint_set; @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", + jiffies - dev_trans_start(dev)); + + schedule_work(&vi->reset_task); +} + +static void virtnet_reset_task(struct work_struct *work...
2015 Jun 25
3
[RFC] virtio_net: Adding tx_timeout function.
...t; > + > > /* Does the affinity hint is set for virtqueues? */ > > bool affinity_hint_set; > > > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) > > return 0; > > } > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > +{ > > + struct virtnet_info *vi = netdev_priv(dev); > > + > > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > > + jiffies - dev_trans_start(dev)); > > + > > + schedul...
2015 Jun 25
3
[RFC] virtio_net: Adding tx_timeout function.
...t; > + > > /* Does the affinity hint is set for virtqueues? */ > > bool affinity_hint_set; > > > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) > > return 0; > > } > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > +{ > > + struct virtnet_info *vi = netdev_priv(dev); > > + > > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > > + jiffies - dev_trans_start(dev)); > > + > > + schedul...
2019 Oct 06
7
[PATCH RFC net-next 0/2] drivers: net: virtio_net: Implement
From: Julio Faracco <jcfaracco at gmail.com> Driver virtio_net is not handling error events for TX provided by dev_watchdog. This event is reached when transmission queue is having problems to transmit packets. To enable it, driver should have .ndo_tx_timeout implemented. This serie has two commits: In the past, we implemented a function to recover driver state when this kind of event
2019 Oct 06
7
[PATCH RFC net-next 0/2] drivers: net: virtio_net: Implement
From: Julio Faracco <jcfaracco at gmail.com> Driver virtio_net is not handling error events for TX provided by dev_watchdog. This event is reached when transmission queue is having problems to transmit packets. To enable it, driver should have .ndo_tx_timeout implemented. This serie has two commits: In the past, we implemented a function to recover driver state when this kind of event
2019 Nov 22
2
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...v, tot->rx_bytes += rbytes; tot->tx_bytes += tbytes; tot->rx_dropped += rdrops; + tot->tx_errors += terrors; } tot->tx_dropped = dev->stats.tx_dropped; @@ -2578,6 +2585,33 @@ static int virtnet_set_features(struct net_device *dev, return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + u32 i; + + netdev_warn(dev, "TX timeout stats:\n"); + /* find the stopped queue the same way dev_watchdog() does */ + for (i = 0; i < vi->curr_queue_pairs; i++) { + struct send_queue *sq = &vi->sq[i];...
2019 Nov 22
2
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...v, tot->rx_bytes += rbytes; tot->tx_bytes += tbytes; tot->rx_dropped += rdrops; + tot->tx_errors += terrors; } tot->tx_dropped = dev->stats.tx_dropped; @@ -2578,6 +2585,33 @@ static int virtnet_set_features(struct net_device *dev, return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + u32 i; + + netdev_warn(dev, "TX timeout stats:\n"); + /* find the stopped queue the same way dev_watchdog() does */ + for (i = 0; i < vi->curr_queue_pairs; i++) { + struct send_queue *sq = &vi->sq[i];...
2015 Jul 02
1
[RFC] virtio_net: Adding tx_timeout function.
...t; > bool affinity_hint_set; > > > > > > > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device > > > > *dev, int new_mtu) > > > > return 0; > > > > } > > > > > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > > > +{ > > > > + struct virtnet_info *vi = netdev_priv(dev); > > > > + > > > > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > > > > + jiffies - dev_tran...
2015 Jul 02
1
[RFC] virtio_net: Adding tx_timeout function.
...t; > bool affinity_hint_set; > > > > > > > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device > > > > *dev, int new_mtu) > > > > return 0; > > > > } > > > > > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > > > +{ > > > > + struct virtnet_info *vi = netdev_priv(dev); > > > > + > > > > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > > > > + jiffies - dev_tran...
2019 Oct 06
0
[PATCH RFC net-next 2/2] drivers: net: virtio_net: Add tx_timeout function
...nged, 27 insertions(+) diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 27f9b212c9f5..4b703b4b9441 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2585,6 +2585,29 @@ static int virtnet_set_features(struct net_device *dev, return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + u32 i; + + /* find the stopped queue the same way dev_watchdog() does */ + for (i = 0; i < vi->curr_queue_pairs; i++) { + struct send_queue *sq = &vi->sq[i]; + + if (!netif_xmit_stopped(netdev_get_tx_queue(dev...
2019 Oct 07
0
[PATCH RFC net-next 2/2] drivers: net: virtio_net: Add tx_timeout function
..._net.c > > index 27f9b212c9f5..4b703b4b9441 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -2585,6 +2585,29 @@ static int virtnet_set_features(struct net_device *dev, > > return 0; > > } > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > +{ > > + struct virtnet_info *vi = netdev_priv(dev); > > + u32 i; > > + > > + /* find the stopped queue the same way dev_watchdog() does */ > > not really - the watchdog actually looks at trans_start. The comments are wron...
2015 Jun 24
0
[RFC] virtio_net: Adding tx_timeout function.
...t driver. */ > + struct work_struct reset_task; > + > /* Does the affinity hint is set for virtqueues? */ > bool affinity_hint_set; > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) > return 0; > } > > +static void virtnet_tx_timeout(struct net_device *dev) > +{ > + struct virtnet_info *vi = netdev_priv(dev); > + > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > + jiffies - dev_trans_start(dev)); > + > + schedule_work(&vi->reset_task); What if after this trigge...
2015 Jul 01
0
[RFC] virtio_net: Adding tx_timeout function.
...he affinity hint is set for virtqueues? */ > > > bool affinity_hint_set; > > > > > > @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) > > > return 0; > > > } > > > > > > +static void virtnet_tx_timeout(struct net_device *dev) > > > +{ > > > + struct virtnet_info *vi = netdev_priv(dev); > > > + > > > + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", > > > + jiffies - dev_trans_start(dev)); > >...
2019 Nov 26
0
[net-next V3 2/2] drivers: net: virtio_net: Implement a dev_watchdog handler
...v, tot->rx_bytes += rbytes; tot->tx_bytes += tbytes; tot->rx_dropped += rdrops; + tot->tx_errors += terrors; } tot->tx_dropped = dev->stats.tx_dropped; @@ -2578,6 +2585,21 @@ static int virtnet_set_features(struct net_device *dev, return 0; } +static void virtnet_tx_timeout(struct net_device *dev, unsigned int txqueue) +{ + struct virtnet_info *vi = netdev_priv(dev); + struct send_queue *sq = &vi->sq[txqueue]; + + netdev_warn(dev, "TX timeout on queue: %d, sq: %s, vq: %d, name: %s\n", + txqueue, sq->name, sq->vq->index, sq->vq->nam...
2015 Jun 25
0
[RFC] virtio_net: Adding tx_timeout function.
.../* Does the affinity hint is set for virtqueues? */ >>> bool affinity_hint_set; >>> >>> @@ -1394,6 +1397,18 @@ static int virtnet_change_mtu(struct net_device *dev, int new_mtu) >>> return 0; >>> } >>> >>> +static void virtnet_tx_timeout(struct net_device *dev) >>> +{ >>> + struct virtnet_info *vi = netdev_priv(dev); >>> + >>> + dev_warn(&dev->dev, "TX Timeout exception with latency: %ld\n", >>> + jiffies - dev_trans_start(dev)); >>> + >&...
2019 Nov 22
0
[PATCH] drivers: net: virtio_net: Implement a dev_watchdog handler
...v, tot->rx_bytes += rbytes; tot->tx_bytes += tbytes; tot->rx_dropped += rdrops; + tot->tx_errors += terrors; } tot->tx_dropped = dev->stats.tx_dropped; @@ -2578,6 +2585,33 @@ static int virtnet_set_features(struct net_device *dev, return 0; } +static void virtnet_tx_timeout(struct net_device *dev) +{ + struct virtnet_info *vi = netdev_priv(dev); + u32 i; + + netdev_warn(dev, "TX timeout stats:\n"); + /* find the stopped queue the same way dev_watchdog() does */ + for (i = 0; i < vi->curr_queue_pairs; i++) { + struct send_queue *sq = &vi->sq[i];...
2019 Nov 22
0
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...bytes += tbytes; > tot->rx_dropped += rdrops; > + tot->tx_errors += terrors; > } > > tot->tx_dropped = dev->stats.tx_dropped; > @@ -2578,6 +2585,33 @@ static int virtnet_set_features(struct net_device *dev, > return 0; > } > > +static void virtnet_tx_timeout(struct net_device *dev) > +{ > + struct virtnet_info *vi = netdev_priv(dev); > + u32 i; > + > + netdev_warn(dev, "TX timeout stats:\n"); > + /* find the stopped queue the same way dev_watchdog() does */ > + for (i = 0; i < vi->curr_queue_pairs; i++) { > + st...