Re: [patch 1/2] sched: fix idle load balancing in softirqd context
On Fri, 16 Feb 2007 18:03:35 -0800 "Siddha, Suresh B" <[EMAIL PROTECTED]> wrote: > + int cpu = smp_processor_id(), idle_at_tick = idle_cpu(cpu); argh. Please, do int cpu = smp_processor_id(); int idle_at_tick = idle_cpu(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/
Re: [patch 1/2] sched: fix idle load balancing in softirqd context
On Sat, Feb 17, 2007 at 09:42:16AM -0500, Steven Rostedt wrote: > On Fri, 16 Feb 2007, Siddha, Suresh B wrote: > > - int cpu = smp_processor_id(); > > + int cpu = smp_processor_id(), idle_at_tick = idle_cpu(cpu); > > struct rq *rq = cpu_rq(cpu); > > > > But I would recommend that the idle_at_tick should be on a separate line. Ok. > I'll try to look deeper at your patches tomorrow. I've also found that I'm > having some latency problems in -rt that I think might be related to > migration. There is one more issue, I have observed in -rt tree. raise_softirq_irqoff() is unconditionally doing the wakeup_softirqd() But unless the CONFIG_PREEMPT_SOFTIRQS is configured, do_softirq() will process the softirq's like TIMER_SOFTIRQ and SCHED_SOFTIRQ in the process context. So it looks like we are unnecessarily waking the softirqd's corresponding to those softirq's. thanks, suresh - 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/
Re: [patch 1/2] sched: fix idle load balancing in softirqd context
On Fri, 16 Feb 2007, Siddha, Suresh B wrote: > Periodic load balancing in recent kernels happen in the softirq. > In certain -rt configurations, these softirqs are handled in softirqd > context. And hence the check for idle processor was always returning > busy (as nr_running > 1). > > This patch captures the idle information at the tick and passes this info > to softirq context through an element 'idle_at_tick' in rq. I haven't had the time yet to look too detailed at this patch. > > Signed-off-by: Suresh Siddha <[EMAIL PROTECTED]> > --- > > { > unsigned long long now = sched_clock(); > struct task_struct *p = current; > - int cpu = smp_processor_id(); > + int cpu = smp_processor_id(), idle_at_tick = idle_cpu(cpu); > struct rq *rq = cpu_rq(cpu); > But I would recommend that the idle_at_tick should be on a separate line. I'll try to look deeper at your patches tomorrow. I've also found that I'm having some latency problems in -rt that I think might be related to migration. -- Steve - 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/