[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