Re: [ 08/68] dummy: fix rcu_sched self-detected stalls

From: Greg Kroah-Hartman
Date: Mon Jul 16 2012 - 11:47:01 EST


On Fri, Jul 13, 2012 at 11:09:10AM -0300, Herton Ronaldo Krzesinski wrote:
> On Thu, Jul 12, 2012 at 04:01:42PM -0700, Greg Kroah-Hartman wrote:
> > From: Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>
> >
> > 3.0-stable review patch. If anyone has any objections, please let me know.
> >
> > ------------------
> >
> >
> > From: Eric Dumazet <edumazet@xxxxxxxxxx>
> >
> > [ Upstream commit 16b0dc29c1af9df341428f4c49ada4f626258082 ]
> >
> > Trying to "modprobe dummy numdummies=30000" triggers :
> >
> > INFO: rcu_sched self-detected stall on CPU { 8} (t=60000 jiffies)
> >
> > After this splat, RTNL is locked and reboot is needed.
> >
> > We must call cond_resched() to avoid this, even holding RTNL.
> >
> > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx>
> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> > drivers/net/dummy.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > --- a/drivers/net/dummy.c
> > +++ b/drivers/net/dummy.c
> > @@ -186,8 +186,10 @@ static int __init dummy_init_module(void
> > rtnl_lock();
> > err = __rtnl_link_register(&dummy_link_ops);
> >
> > - for (i = 0; i < numdummies && !err; i++)
> > + for (i = 0; i < numdummies && !err; i++) {
> > err = dummy_init_one();
> > + cond_resched();
>
> This cherry-pick for 3.0 has the same problem as the one that was
> proposed to 3.2, build fails on i386/arm:
>
> linux-stable/drivers/net/dummy.c: In function 'dummy_init_module':
> linux-stable/drivers/net/dummy.c:191:3: error: implicit declaration of function 'cond_resched' [-Werror=implicit-function-declaration]
>
> This will need an include for linux/sched.h as in 3.2 (the same proposed
> patch for 3.4 shouldn't be affected).

Thanks, I've made that change now.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/