Should I do anything about this warning?

Sagar Padhye sgr.m.pdy at gmail.com
Wed Oct 8 07:55:21 EDT 2014


On Wed, Oct 08, 2014 at 11:33:57AM +0200, Kristof Provost wrote:
> On 2014-10-08 12:43:58 (+0530), Sagar Padhye <sgr.m.pdy at gmail.com> wrote:
> > I am new at kernel programming. I have written a driver for a custom
> > device, running on arm board. It works well (for last few months).  I
> > happen to look at kernel logs and I seen,
> > 
> > [231250.899146] WARNING: at kernel/workqueue.c:1953 process_one_work+0x398/0x52c()
> > 
> You triggered a warning in the code.
Yes, I got that

> > The device is still working after this. No issues in operation. I am
> > just sceptical about analyzing this issue? Do I need to check more? If
> > yes how? with this trace?
> > 
> Yes, this indicates a potential problem.
The issue is not reproducible. Haven't seen in over 6 months. And the module is working just fine after the log.
Is there a way I can get more info on this e.g. more stacktrace that will end up in module's work function (if this occurs again)?
> You start my looking at line 1953 in kernel/workqueue.c, where you'll
> see which specific warning you're triggering.
> 
> It's probably this one:
> >   /* ensure we're on the correct CPU */
> >    WARN_ON_ONCE(!(pool->flags & POOL_DISASSOCIATED) &&
> >             raw_smp_processor_id() != pool->cpu);
They are,
1952 WARN_ON_ONCE(!(worker->flags & (WORKER_UNBOUND | WORKER_REBIND)) &&
1953      raw_smp_processor_id() != gcwq->cpu);
But I am not sure what they signify :(

Thanks,
Sagar



More information about the Kernelnewbies mailing list