All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hounschell <markh@compro.net>
To: Ingo Molnar <mingo@elte.hu>
Cc: Steven Rostedt <rostedt@goodmis.org>,
	john stultz <johnstul@us.ibm.com>,
	lkml <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [RFC][PATCH -rt] irqd starvation on SMP by a single process?
Date: Fri, 12 May 2006 07:59:01 -0400	[thread overview]
Message-ID: <44647885.2020902@compro.net> (raw)
In-Reply-To: <20060512115614.GA28377@elte.hu>

Ingo Molnar wrote:
> * Mark Hounschell <markh@compro.net> wrote:
> 
>> Steven Rostedt wrote:
>>> On Fri, 12 May 2006, Ingo Molnar wrote:
>>>
>>>> ah. This actually uncovered a real bug. We were calling __do_softirq()
>>>> with interrupts enabled (and being preemptible) - which is certainly
>>>> bad.
>>> Hmm, I wonder if this is also affecting Mark's problem.
>> I thought the same thing when I read it??
> 
> could you try the patch below?
> 
> 	Ingo
> 
> ----
> 
> * Steven Rostedt <rostedt@goodmis.org> wrote:
> 
>>> one solution would be to forbid disable_irq() from softirq contexts, and
>>> to convert the vortex timeout function to a workqueue and use the
>>> *_delayed_work() APIs to drive it - and cross fingers there's not many
>>> places to fix.
>> I prefer the above. Maybe even add a WARN_ON(in_softirq()) in 
>> disable_irq.
>>
>> But I must admit, I wouldn't know how to make that change without 
>> spending more time on it then I have for this.
> 
> the simplest fix for now would be to use the _nosync variant in the 
> vortex timeout function.
> 
> Mark, does this fix the problem?
> 
> 	Ingo
> 
> Index: linux-rt.q/drivers/net/3c59x.c
> ===================================================================
> --- linux-rt.q.orig/drivers/net/3c59x.c
> +++ linux-rt.q/drivers/net/3c59x.c
> @@ -1897,7 +1897,8 @@ vortex_timer(unsigned long data)
>  
>  	if (vp->medialock)
>  		goto leave_media_alone;
> -	disable_irq(dev->irq);
> +	/* hack! */
> +	disable_irq_nosync(dev->irq);
>  	old_window = ioread16(ioaddr + EL3_CMD) >> 13;
>  	EL3WINDOW(4);
>  	media_status = ioread16(ioaddr + Wn4_Media);
> 

I'm trying that right this moment. It may take a while before I know if
it helps.

Mark

  reply	other threads:[~2006-05-12 11:59 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-12  2:43 [RFC][PATCH -rt] irqd starvation on SMP by a single process? john stultz
2006-05-12  5:50 ` Ingo Molnar
2006-05-12  7:59   ` Steven Rostedt
2006-05-12  8:10     ` Ingo Molnar
2006-05-12 11:39     ` Mark Hounschell
2006-05-12 11:56       ` Ingo Molnar
2006-05-12 11:59         ` Mark Hounschell [this message]
2006-05-12 12:53         ` Mark Hounschell
2006-05-12 13:03           ` Steven Rostedt
2006-05-12 13:06             ` Mark Hounschell
2006-05-12 13:19             ` Mark Hounschell
2006-05-12 17:47   ` john stultz
2006-05-12 18:04   ` john stultz
2006-05-12 19:16     ` Mark Hounschell
2006-05-12 20:04     ` Mark Hounschell
  -- strict thread matches above, loose matches on Subject: below --
2006-05-12  4:22 Edward Killips

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44647885.2020902@compro.net \
    --to=markh@compro.net \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.