linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Crap, ksoftirqd/0 looping forever in softirq
@ 2012-10-11  0:16 Paul Gortmaker
  2012-10-11  2:38 ` Mike Galbraith
  2012-10-11 14:21 ` Paul Gortmaker
  0 siblings, 2 replies; 5+ messages in thread
From: Paul Gortmaker @ 2012-10-11  0:16 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: linux-rt-users

Seeing the above message, I added a trivial change to print out the
Mask and Pending, and I consistently saw it was (both p/m) in every
case `was __IRQF_TIMER (0x200).

Looking at do_current_softirqs, it seems that it implicitly expects
two entrance paths:

   /*
    * Called with interrupts disabled. Process softirqs which were raised
    * in current context (or on behalf of ksoftirqd).
    */
   static void do_current_softirqs(int need_rcu_bh_qs)

In there, we loop on current->softirqs_raised, but there is no "filter"
for the case where we spawn from ksoftirqd with __IRQF_TIMER, or more
specifically IRQF_NO_THREAD.  Asking ksoftirqd to handle IRQF_NO_THREAD?

So based on my dain-bramaged and limited understanding, it seems that
we are waiting on completion from ksoftirqd on something that we've
asked to be not run from a thread.  I'd propose a patch but I'd probably
only manage to hurt myself, so I'll stop at reporting the above data,
and leave it to the folks more in the know to suggest a proper fix...

Paul.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-10-15 13:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-11  0:16 Crap, ksoftirqd/0 looping forever in softirq Paul Gortmaker
2012-10-11  2:38 ` Mike Galbraith
2012-10-11 14:21 ` Paul Gortmaker
2012-10-11 15:34   ` Paul Gortmaker
2012-10-15 13:36     ` Paul E. McKenney

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).