Subject: RE: [PATCH] Add IPIC MSI interrupt support

From: Michael Ellerman <[email-masked]>
Date: Tue, 04 Dec 2007 23:04:18 +1100

On Tue, 2007-12-04 at 18:34 +0800, Li Tony wrote:
> > From: Michael Ellerman [mailto:[email-masked]] 
> > Sent: 2007年12月4日 13:38
> > To: Li Tony
> > Cc: Li Tony; Gala Kumar; linuxppc-dev
> > Subject: Re: [PATCH] Add IPIC MSI interrupt support
> > 
> > On Mon, 2007-12-03 at 17:07 +0800, Li Li wrote:
> > > Hi Michael,
> > > 
> > > I emulate mpic to write this IPIC MSI routines. :)
> > > 
> > > 
> > > > > diff --git a/arch/powerpc/platforms/83xx/mpc837x_mds.c 
> > > > > b/arch/powerpc/platforms/83xx/mpc837x_mds.c
> > > > > index 6048f1b..dbea34b 100644
> > > > > --- a/arch/powerpc/platforms/83xx/mpc837x_mds.c
> > > > > +++ b/arch/powerpc/platforms/83xx/mpc837x_mds.c
> > 
> > > > > +
> > > > > +#define	ipic_msi_irq_to_hw(virq)	
> > ((unsigned int)irq_map[virq].hwirq)
> > > > 
> > > > What's wrong with virq_to_hw() ?
> > > > 
> > > 
> > > viqr_to_hw is not __inline__.
> > 
> > Hmm, ok. The three places you use it you also take a spin 
> > lock, so I'm not sure the function call's really going to 
> > kill you performance wise.
> > 
> 
> I am not very sure about spin_lock influence.
> But maybe somebody will change the virq_to_hw implementation.
> I will take virq_to_hw instead. 

I mean the time to take the function call should be pretty small
compared to taking and releasing a spinlock - but if you have
performance numbers to prove otherwise let me know :)

> I see that the virq_to_hw is do inline in 2.6.22.
> Why remove it?

It was made non-inline because modules want to use it, and we didn't
want to export the irq_map to modules as well.

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