Displaying 20 results from an estimated 24 matches for "intr_handler".
2008 Oct 11
3
6.4-PRELEASE sporadically panicking with fatal trap 12
...ue.c:257
task = (struct task *) 0xc821823c
owned = 0
pending = 1
#10 0xc0575af3 in taskqueue_swi_run (dummy=0x0) at /usr/src/sys/kern/subr_taskqueue.c:299
No locals.
#11 0xc052fbcb in ithread_execute_handlers (p=0xc6bef860, ie=0xc6c44e80) at /usr/src/sys/kern/kern_intr.c:682
ih = (struct intr_handler *) 0xc6cc5080
ihn = (struct intr_handler *) 0x0
#12 0xc052fd27 in ithread_loop (arg=0xc6c62550) at /usr/src/sys/kern/kern_intr.c:766
intr_event = (struct intr_thread *) 0xc6c62550
ie = (struct intr_event *) 0xc6c44e80
td = (struct thread *) 0xc6bf0300
p = (struct proc *) 0xc6bef860
#13...
2019 Nov 22
0
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...ic void check_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->...
2019 Nov 23
1
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...vice *dev);
> -static void tx_timeout(struct net_device *dev);
> +static void tx_timeout(struct net_device *dev, int txqueue);
> static void init_ring(struct net_device *dev);
> static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
> static irqreturn_t intr_handler(int irq, void *dev_instance);
> @@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
> }
>
>
> -static void tx_timeout(struct net_device *dev)
> +static void tx_timeout(struct net_device *dev, int txqueue)
> {
> struct netdev_private *np = netdev_...
2019 Nov 22
4
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
Hi Michael,
Em sex., 22 de nov. de 2019 ?s 07:31, Michael S. Tsirkin
<mst at redhat.com> escreveu:
>
> On Thu, Nov 21, 2019 at 10:36:36PM -0300, Julio Faracco wrote:
> > 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. This could happen for any
2019 Nov 22
4
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
Hi Michael,
Em sex., 22 de nov. de 2019 ?s 07:31, Michael S. Tsirkin
<mst at redhat.com> escreveu:
>
> On Thu, Nov 21, 2019 at 10:36:36PM -0300, Julio Faracco wrote:
> > 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. This could happen for any
2019 Nov 24
0
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...ic void check_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->...
2019 Nov 24
3
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...ic void check_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->...
2019 Nov 24
3
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...ic void check_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr = np->...
2019 Nov 24
0
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Nov 24
1
[PATCH net-next v2] drivers: net: virtio_net: Implement a dev_watchdog handler
On Sun, 24 Nov 2019 18:29:49 -0500, Michael S. Tsirkin wrote:
> netdev: pass the stuck queue to the timeout handler
>
> This allows incrementing the correct timeout statistic without any mess.
> Down the road, devices can learn to reset just the specific queue.
FWIW
Acked-by: Jakub Kicinski <jakub.kicinski at netronome.com>
2019 Nov 27
0
[net-next V3 1/2] netdev: pass the stuck queue to the timeout handler
...c void tx_timeout(struct net_device *dev);
> > +static void tx_timeout(struct net_device *dev, unsigned int txqueue);
> > static void init_ring(struct net_device *dev);
> > static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
> > static irqreturn_t intr_handler(int irq, void *dev_instance);
> > @@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
> > }
> >
> >
> > -static void tx_timeout(struct net_device *dev)
> > +static void tx_timeout(struct net_device *dev, unsigned int txqueue)
> > {
>...
2019 Dec 03
0
[PATCH RFC v6 net-next] netdev: pass the stuck queue to the timeout handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Dec 03
1
[PATCH RFC v7 net-next] netdev: pass the stuck queue to the timeout handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Dec 03
0
[PATCH RFC net-next v8 1/3] netdev: pass the stuck queue to the timeout handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Dec 10
1
[PATCH net-next v10 1/3] netdev: pass the stuck queue to the timeout handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Dec 09
0
[PATCH net-next v9 1/3] netdev: pass the stuck queue to the timeout handler
...heck_duplex(struct net_device *dev);
-static void tx_timeout(struct net_device *dev);
+static void tx_timeout(struct net_device *dev, unsigned int txqueue);
static void init_ring(struct net_device *dev);
static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev);
static irqreturn_t intr_handler(int irq, void *dev_instance);
@@ -1105,7 +1105,7 @@ static void check_duplex(struct net_device *dev)
}
-static void tx_timeout(struct net_device *dev)
+static void tx_timeout(struct net_device *dev, unsigned int txqueue)
{
struct netdev_private *np = netdev_priv(dev);
void __iomem *ioaddr...
2019 Nov 26
9
[net-next V3 0/2] drivers: net: virtio_net: implement
This series add two important features. One of them changes the
.ndo_tx_timeout to include an extra parameter to identify the stuck
queue. Many drivers are using a nester loop to identify which queue is
stooped/stucked. This is a redundant work since dev_watchdog is doing
exactly the same thing. This is so interesting for other drivers to in
terms of code optimization.
The second part (second
2019 Nov 26
9
[net-next V3 0/2] drivers: net: virtio_net: implement
This series add two important features. One of them changes the
.ndo_tx_timeout to include an extra parameter to identify the stuck
queue. Many drivers are using a nester loop to identify which queue is
stooped/stucked. This is a redundant work since dev_watchdog is doing
exactly the same thing. This is so interesting for other drivers to in
terms of code optimization.
The second part (second
2019 Dec 03
4
[PATCH RFC net-next v8 0/3] netdev: ndo_tx_timeout cleanup
A bunch of drivers want to know which tx queue triggered a timeout,
and virtio wants to do the same.
We actually have the info to hand, let's just pass it on to drivers.
Note: tested with an experimental virtio patch by Julio.
That patch itself isn't ready yet though, so not included.
Other drivers compiled only.
Michael S. Tsirkin (3):
netdev: pass the stuck queue to the timeout
2019 Dec 10
4
[PATCH net-next v11 0/3] netdev: ndo_tx_timeout cleanup
Sorry about the churn, v10 was based on net - not on net-next
by mistake.
A bunch of drivers want to know which tx queue triggered a timeout,
and virtio wants to do the same.
We actually have the info to hand, let's just pass it on to drivers.
Note: tested with an experimental virtio patch by Julio.
That patch itself isn't ready yet though, so not included.
Other drivers compiled only.