Re: [PATCH 10/17] 2.6.17.1 perfmon2 patch for review: PMU context switch

From: Chuck Ebbert
Date: Fri Jun 30 2006 - 15:21:02 EST


In-Reply-To: <200606302042.23661.ak@xxxxxxx>

On Fri, 30 Jun 2006 20:42:23 +0200. Andi Kleen wrote:

> > > I don't quite see the point because on x86 the PMU doesn't run
> > > during C states anyways. So you get idle excluded automatically.
> >
> > Looks like it does run:
>
> I'm pretty sure it doesn't. You can see it by watching
> the frequency of the perfctr mode NMI watchdog in /proc/interrupts
> under different loads.
>
> When the system is idle the frequency goes down and increases
> when the system is busy.

But that is using cpu_clk_unhalted (isn't it?) If so, it would slow down
when the system is idle.

The BIOS writer's guide, Ch. 10.2, says only events outside of the
processor, like northbridge DMA accesses, stop counting during halt.
(And by definition cpu_clk_unhalted.)

> Are you sure you didn't boot with poll=idle?

$ pfmon --smpl-module=inst-hist --smpl-show-function --smpl-show-top=40 \
-ecpu_clk_unhalted -k --long-smpl-period=10000 --resolve-addr --system-wide -t 10
only kernel symbols are resolved in system-wide mode
<session to end in 10 seconds>
# counts %self %cum code address
2501 85.42% 85.42% __do_softirq<kernel>
222 7.58% 93.00% acpi_processor_idle<kernel> <========
100 3.42% 96.41% ehci_watchdog<kernel>
39 1.33% 97.75% ehci_hub_status_data<kernel>

I'm pretty sure. :) Looking at that pile of code in acpi_processor_idle
and the way it disables interrupts I think I'll switch to idle=halt, though.

> Otherwise something must be wrong with your measurements.

In that case it's all Stephane's fault: he wrote the code!

--
Chuck
"You can't read a newspaper if you can't read." --George W. Bush
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/