Re: [PATCH] IPMI: use schedule in kthread

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 26 Jun 2006 14:49:37 -0500
Matt Domsch <[email protected]> wrote:

> On Mon, Jun 26, 2006 at 12:00:48PM -0700, Andrew Morton wrote:
> > On Mon, 26 Jun 2006 09:08:19 -0500
> > [email protected] wrote:
> > 
> > > The kthread used to speed up polling for IPMI was using udelay
> > > when the lower-level state machine told it to do a short delay.
> > > This just used CPU and didn't help scheduling, thus causing bad
> > > problems with other tasks.  Call schedule() instead.
> > > 
> > > Signed-off-by: Corey Minyard <[email protected]>
> > > 
> > > Index: linux-2.6.17/drivers/char/ipmi/ipmi_si_intf.c
> > > ===================================================================
> > > --- linux-2.6.17.orig/drivers/char/ipmi/ipmi_si_intf.c
> > > +++ linux-2.6.17/drivers/char/ipmi/ipmi_si_intf.c
> > > @@ -809,7 +809,7 @@ static int ipmi_thread(void *data)
> > >  			/* do nothing */
> > >  		}
> > >  		else if (smi_result == SI_SM_CALL_WITH_DELAY)
> > > -			udelay(1);
> > > +			schedule();
> > >  		else
> > >  			schedule_timeout_interruptible(1);
> > >  	}
> > 
> > calling schedule() isn't a lot of use either.
> > 
> > If CONFIG_PREEMPT it's of no benefit and will just chew CPU.
> > 
> > If !CONFIG_PREEMPT && !need_resched() then it's a no-op and will chew CPU.
> > 
> > If !CONFIG_PREEMPT && need_resched() then yes, it'll schedule away.  This
> > is pretty much the only time that a simple schedule() is useful.
> > 
> > 
> > What are we actually trying to do in here?
> 
> Make up for a lack of poor hardware design.  Most IPMI controllers
> that use the standard-specified KCS interface don't implement
> interrupts to signal data availability, and its a character-at-a-time
> interface.

ah, OK, you're screwed ;) There's no fix for that, so blowing CPU while
offering reschedule opportunities is better than just blowing CPU.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux