Subject: Re: [PATCH] Fix interrupt distribution in ppc970

From: Mohan Kumar M <[email-masked]>
Date: Wed, 7 Mar 2007 10:23:41 +0530

On Tue, Mar 06, 2007 at 06:37:14PM +0100, Michael Ellerman wrote:
> On Tue, 2007-03-06 at 22:25 +0530, Mohan Kumar M wrote:
> > On Tue, Mar 06, 2007 at 03:16:55PM +0100, Michael Ellerman wrote:
> > > First, I don't know why we keep telling people to use maxcpus=1 for
> > > kexec/kdump - it's causing bugs, and I don't know of any that it fixes?
> > 
> > Some distros want to use maxcpus=1 for kdump.
> 
> Yeah OK.
> 
> > > Second, the way you've written this is not so good. The xics code should
> > > not be checking that "maxcpus" exists on the command line, it should be
> > > checking that the distrib server points to a cpu that is online - using
> > > cpu_online() etc.
> > >
> > 
> > In get_irq_server function in xics.c, "noirqdistrib" command line
> > parameter is indirectly checked for routing the interrupts either to a
> > specific cpu or to all cpus. So I think checking for maxcpus= command
> > line parameter in xics.c is not a problem.
> 
> No, it checks a flag, it doesn't run strstr on the saved command line.
>
What if I use a flag (or existing global variable if any) to check for
the presence of maxcpus kernel paramter?
 
> > Also during the xics_init_IRQ function other cpus (secondary cpus) will
> > not be online, they are made online at a later stage. So using
> > cpu_online() function at xics_init_IRQ will return true only for boot
> > cpu id.
> 
> OK, so you should be able to use cpus possible map or something similar.
>
Hmm, I think cpus possible map will have an entry for the offline cpu
also.
 
> cheers
> 
> -- 
> Michael Ellerman
> OzLabs, IBM Australia Development Lab
> 
> wwweb: http://michael.ellerman.id.au
> phone: +61 2 6212 1183 (tie line 70 21183)
> 
> We do not inherit the earth from our ancestors,
> we borrow it from our children. - S.M.A.R.T Person