Re: [RFC][PATCH 2/3]i386,x86-64 Handle missing local APIC timer interrupts on C3 state

Zwane Mwaikambo
2005-12-09T17:30:12Z

On Fri, 9 Dec 2005, Venkatesh Pallipadi wrote:

> On Fri, Dec 09, 2005 at 12:06:35AM -0800, Zwane Mwaikambo wrote:
> > On Thu, 8 Dec 2005, Venkatesh Pallipadi wrote:
> >
> > > Whenever we see that a CPU is capable of C3 (during ACPI cstate init), we
> > > disable local APIC timer and switch to using a broadcast from external timer
> > > interrupt (IRQ 0).
> > >
> > > +void smp_send_timer_broadcast_ipi(struct pt_regs *regs);
> > > +void switch_APIC_timer_to_ipi(void *cpumask);
> > > +void switch_ipi_to_APIC_timer(void *cpumask);
> >
> > When is this used?
>
> +void smp_send_timer_broadcast_ipi(struct pt_regs *regs);
> This is called by the IRQ0 timer interrupt handler, to check whether any CPUs
> have enrolled for this broadcast.
>
> +void switch_APIC_timer_to_ipi(void *cpumask);
> Called by acpi processor driver when it find out that a particular CPU can
> support C3 state (and it is an Intel CPU).
>
> +void switch_ipi_to_APIC_timer(void *cpumask);
> Called by acpi processor driver again to reset to APIC_timer when C3 is not
> supported by the CPU.

Well i was more curious as to where in the patchset the
switch_ipi_to_APIC_timer is used;

zwane@montezuma linux-2.6-hg-x86_64 {0:1} grep switch_ipi_to_APIC_timer /tmp/patch[1234]
/tmp/patch2:+void switch_ipi_to_APIC_timer(void *cpumask);
/tmp/patch2:+void switch_ipi_to_APIC_timer(void *cpumask)
/tmp/patch2:+EXPORT_SYMBOL(switch_ipi_to_APIC_timer);
/tmp/patch4:+void switch_ipi_to_APIC_timer(void *cpumask)
/tmp/patch4:+EXPORT_SYMBOL(switch_ipi_to_APIC_timer);
/tmp/patch4:+void switch_ipi_to_APIC_timer(void *cpumask);

Or will it only be used in future?