[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <46641B16.9090701@compro.net>
Date: Mon, 04 Jun 2007 10:00:54 -0400
From: Mark Hounschell <markh@...pro.net>
To: Oleg Nesterov <oleg@...sign.ru>
CC: Mark Hounschell <dmarkh@....rr.com>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...e.hu>
Subject: Re: floppy.c soft lockup
Oleg Nesterov wrote:
> On 06/02, Mark Hounschell wrote:
>> Jun 2 16:36:11 harley kernel: ERR!! events/1 flush hang: c201dbc0
>> c201dbc0 10012 10012
>> Jun 2 16:36:11 harley kernel: CURR: 7974 7974 vrsx 93 26
>> Jun 2 16:36:11 harley kernel: wq_barrier_func+0x0/0x8
>> Jun 2 16:36:11 harley kernel: vmstat_update+0x0/0x24
>> Jun 2 16:36:11 harley kernel: ----
>> Jun 2 16:36:11 harley kernel: cache_reap+0x0/0xf4
>
> As expected.
>
> Note that ->nivcsw/->nvcsw doesn't change. There is no "spare time"
> on CPU 1, "vrsx" monopolizes CPU. events/1->cache_reap() was preempted
> by vrsx, it had no chance to run since then. Note that jobs == 7974
> doesn't change too. I forgot to print cwq->thread->state, but it should
> be TASK_RUNNING. It would not be possible to kill vrsx if cache_reap()
> stalled.
>
> I don't think this is a kernel problem, vrsx breaks flush_workqueue().
> Ingo can answer authoritatively, but I think SCHED_RR/SCHED_FIFO were
> not designed to be 100% cpu-bound.
>
> That said, I think it makes sense to get rid of flush_scheduled_work()
> in floppy.c.
>
Oleg, thanks for your time in diagnosing this.
As far as a 100% CPU bound task being a valid thing to do, it has been
done for many years on SMP machines. Any kernel limitation on this
surely must be considered a bug?
Thanks again
Regards
Mark
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists