* [PATCH] netpoll: fix TX queue overflow in trapped mode
@ 2007-04-28 18:12 Sergei Shtylyov
2007-04-28 18:52 ` Sergei Shtylyov
0 siblings, 1 reply; 4+ messages in thread
From: Sergei Shtylyov @ 2007-04-28 18:12 UTC (permalink / raw)
To: davem; +Cc: netdev, shemminger, mpm
CONFIG_NETPOLL_TRAP causes the TX queue controls to be completely bypassed in
the netpoll's "trapped" mode which easily causes overflows in the drivers with
short TX queues (most notably, in 8139too with its 4-deep queue). So, make
this option more sensible by making it only bypass the TX softirq wakeup.
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
---
Split this part form the initial patch as request by Matt Mackall.
include/linux/netdevice.h | 8 +++-----
2 files changed, 3 insertions(+), 10 deletions(-)
Index: linux-2.6/include/linux/netdevice.h
===================================================================
--- linux-2.6.orig/include/linux/netdevice.h
+++ linux-2.6/include/linux/netdevice.h
@@ -647,8 +647,10 @@ static inline void netif_start_queue(str
static inline void netif_wake_queue(struct net_device *dev)
{
#ifdef CONFIG_NETPOLL_TRAP
- if (netpoll_trap())
+ if (netpoll_trap()) {
+ clear_bit(__LINK_STATE_XOFF, &dev->state);
return;
+ }
#endif
if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
__netif_schedule(dev);
@@ -656,10 +658,6 @@ static inline void netif_wake_queue(stru
static inline void netif_stop_queue(struct net_device *dev)
{
-#ifdef CONFIG_NETPOLL_TRAP
- if (netpoll_trap())
- return;
-#endif
set_bit(__LINK_STATE_XOFF, &dev->state);
}
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] netpoll: fix TX queue overflow in trapped mode
2007-04-28 18:12 [PATCH] netpoll: fix TX queue overflow in trapped mode Sergei Shtylyov
@ 2007-04-28 18:52 ` Sergei Shtylyov
2007-04-28 20:25 ` Sergei Shtylyov
0 siblings, 1 reply; 4+ messages in thread
From: Sergei Shtylyov @ 2007-04-28 18:52 UTC (permalink / raw)
To: davem; +Cc: netdev
On Saturday 28 April 2007 22:12, you wrote:
> CONFIG_NETPOLL_TRAP causes the TX queue controls to be completely bypassed
> in the netpoll's "trapped" mode which easily causes overflows in the
> drivers with short TX queues (most notably, in 8139too with its 4-deep
> queue). So, make this option more sensible by making it only bypass the TX
> softirq wakeup.
Dammit! Finally forgot to add acks earned so far:
> Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Acked-by: Matt Mackall <mpm@selenic.com>
> ---
> Split this part form the initial patch as request by Matt Mackall.
>
> include/linux/netdevice.h | 8 +++-----
> 2 files changed, 3 insertions(+), 10 deletions(-)
>
> Index: linux-2.6/include/linux/netdevice.h
> ===================================================================
> --- linux-2.6.orig/include/linux/netdevice.h
> +++ linux-2.6/include/linux/netdevice.h
> @@ -647,8 +647,10 @@ static inline void netif_start_queue(str
> static inline void netif_wake_queue(struct net_device *dev)
> {
> #ifdef CONFIG_NETPOLL_TRAP
> - if (netpoll_trap())
> + if (netpoll_trap()) {
> + clear_bit(__LINK_STATE_XOFF, &dev->state);
> return;
> + }
> #endif
> if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
> __netif_schedule(dev);
> @@ -656,10 +658,6 @@ static inline void netif_wake_queue(stru
>
> static inline void netif_stop_queue(struct net_device *dev)
> {
> -#ifdef CONFIG_NETPOLL_TRAP
> - if (netpoll_trap())
> - return;
> -#endif
> set_bit(__LINK_STATE_XOFF, &dev->state);
> }
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] netpoll: fix TX queue overflow in trapped mode
2007-04-28 18:52 ` Sergei Shtylyov
@ 2007-04-28 20:25 ` Sergei Shtylyov
2007-04-29 3:59 ` David Miller
0 siblings, 1 reply; 4+ messages in thread
From: Sergei Shtylyov @ 2007-04-28 20:25 UTC (permalink / raw)
To: davem; +Cc: netdev
On Saturday 28 April 2007 22:52, I wrote:
> > CONFIG_NETPOLL_TRAP causes the TX queue controls to be completely
> > bypassed in the netpoll's "trapped" mode which easily causes overflows in
> > the drivers with short TX queues (most notably, in 8139too with its
> > 4-deep queue). So, make this option more sensible by making it only
> > bypass the TX softirq wakeup.
> Dammit! Finally forgot to add acks earned so far:
Oh, and there was even another one:
> > Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> Acked-by: Jeff Garzik <jgarzik@pobox.com>
Acked-by: Tom Rini <trini@kernel.crashing.org>
> Acked-by: Matt Mackall <mpm@selenic.com>
> > ---
> > Split this part form the initial patch as request by Matt Mackall.
> >
> > include/linux/netdevice.h | 8 +++-----
> > 2 files changed, 3 insertions(+), 10 deletions(-)
> >
> > Index: linux-2.6/include/linux/netdevice.h
> > ===================================================================
> > --- linux-2.6.orig/include/linux/netdevice.h
> > +++ linux-2.6/include/linux/netdevice.h
> > @@ -647,8 +647,10 @@ static inline void netif_start_queue(str
> > static inline void netif_wake_queue(struct net_device *dev)
> > {
> > #ifdef CONFIG_NETPOLL_TRAP
> > - if (netpoll_trap())
> > + if (netpoll_trap()) {
> > + clear_bit(__LINK_STATE_XOFF, &dev->state);
> > return;
> > + }
> > #endif
> > if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state))
> > __netif_schedule(dev);
> > @@ -656,10 +658,6 @@ static inline void netif_wake_queue(stru
> >
> > static inline void netif_stop_queue(struct net_device *dev)
> > {
> > -#ifdef CONFIG_NETPOLL_TRAP
> > - if (netpoll_trap())
> > - return;
> > -#endif
> > set_bit(__LINK_STATE_XOFF, &dev->state);
> > }
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] netpoll: fix TX queue overflow in trapped mode
2007-04-28 20:25 ` Sergei Shtylyov
@ 2007-04-29 3:59 ` David Miller
0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2007-04-29 3:59 UTC (permalink / raw)
To: sshtylyov; +Cc: netdev
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Sun, 29 Apr 2007 00:25:41 +0400
> On Saturday 28 April 2007 22:52, I wrote:
>
> > > CONFIG_NETPOLL_TRAP causes the TX queue controls to be completely
> > > bypassed in the netpoll's "trapped" mode which easily causes overflows in
> > > the drivers with short TX queues (most notably, in 8139too with its
> > > 4-deep queue). So, make this option more sensible by making it only
> > > bypass the TX softirq wakeup.
> > Dammit! Finally forgot to add acks earned so far:
>
> Oh, and there was even another one:
>
> > > Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
>
> > Acked-by: Jeff Garzik <jgarzik@pobox.com>
> Acked-by: Tom Rini <trini@kernel.crashing.org>
> > Acked-by: Matt Mackall <mpm@selenic.com>
Applied, I'll push this to -stable too.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2007-04-29 3:58 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-28 18:12 [PATCH] netpoll: fix TX queue overflow in trapped mode Sergei Shtylyov
2007-04-28 18:52 ` Sergei Shtylyov
2007-04-28 20:25 ` Sergei Shtylyov
2007-04-29 3:59 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).