Re: [patch] voluntary-preempt-2.6.8.1-P2

Thomas Charbonnel
2004-08-16T16:16:33Z

Ingo Molnar wrote :
> * Thomas Charbonnel <thomas@undata.org> wrote:
>
> > > > 0.000ms (+0.000ms): do_IRQ (default_idle)
> > > > 0.000ms (+0.000ms): mask_and_ack_8259A (do_IRQ)
> > > > 0.459ms (+0.459ms): generic_redirect_hardirq (do_IRQ)
> > > > 0.459ms (+0.000ms): generic_handle_IRQ_event (do_IRQ)
> > > > 0.459ms (+0.000ms): timer_interrupt (generic_handle_IRQ_event)
> > >
> > > > It definitely looks like the kernel is interrupted by some interrupt
> > > > source not covered by the patch.
> > >
> > > the only possibility is SMM, which is not handled by Linux. (but by the
> > > BIOS.) Otherwise we track everything - including NMIs.
>
> > This would confirm the hypothesis of a buggy BIOS, I'm afraid.
>
> there are still other (and more likely) possible reasons like a bug in
> the latency tracer. (Or a broken TSC - albeit this is less likely.)
>

I don't think the latency tracer is involved. I think this is the same
phenomenon as the regular latency spikes I reported earlier.
At some point I thought of a clock issue, indeed, so I switched to
pmtmr, but this is broken with voluntary preempt (I think it relates to
the sched_clock code when not using TSC -> precision of the reported
preempt threshold violations was 1ms). Worth mentioning is that the
latency spikes interval was the same even if I compiled cpufreq in and
switched the processor speed at runtime.

> can you reproduce this phenomenon at will? Does it go away if you turn
> ACPI/APM off (both in the kernel and in the BIOS).

I can't turn PM off in the BIOS, but turning ACPI off in the kernel
suppresses the problem.

> Does it go away if
> you use idle=poll?
>

I don't think so (the spikes where still here when you first merged
wli's preempt timing patch and forced idle=poll).

So basically I think the spikes are BIOS related, they've been detected
so far by the alsa xrun_debug mechanism, by the latency-test suite, and
now by the latency tracer, which shows that they're not linked to any
particular code section.

Thomas