[PATCH ] cell: enable pause(0) in cpu_idle

Paul Mackerras paulus at samba.org
Fri Dec 16 08:48:36 EST 2005


Milton Miller writes:

> >> +END_FTR_SECTION_IFSET(CPU_FTR_PAUSE_ZERO)
> >> +	EXCEPTION_PROLOG_COMMON(0x100, PACA_EXGEN);
> >> +	b	fast_exception_return
> >
> > This is a change in behaviour from before the patch.  Instead of doing
> > the EXCEPTION_PROLOG_COMMON and then just returning, you should branch
> > to system_reset_common.
> >
> 
> Actually, this is not the case, as this is only for the MSR_WAKEMT
> case -- they put a bne to the old handler.

No, if we don't have the CPU_FTR_PAUSE_ZERO feature bit set, we will
just do the EXCEPTION_PROLOG_COMMON and then branch to
fast_exception_return.  That's what I was worried about - what this
code would do on CPUs other than cell.

> I'll raise the question from my first review again: would you rather
> see the STD_EXCEPTION_COMMON macro split for system_reset_common or  
> leave this extra branch to the second handler?

Actually, why not test SRR1 (regs->msr) in C code, and call do_IRQ or
timer_interrupt from there, or just return?  No changes to head_64.S
needed.  If we have been asleep then presumably a few extra
nanoseconds on waking isn't going to make a difference.

Paul.



More information about the Linuxppc64-dev mailing list