Re: Instrumenting high latency

From: Con Kolivas
Date: Mon Jul 12 2004 - 01:44:53 EST


Andrew Morton writes:

Con Kolivas <kernel@xxxxxxxxxxx> wrote:

Because of the recent discussion about latency in the kernel I asked William Lee Irwin III to help create some instrumentation to determine where in the kernel there were still sustained periods of non-preemptible code. He hacked together this simple patch which times periods according to the preempt count.

Looks sane.

The patch appears to require CONFIG_PREEMPT enabled on uniprocessor and is i386 only at the moment.

Not sure what you mean by "on uniprocessor"? AFAICT the patch will work
as-is on uniprocessor and on SMP. Looks like it'll work with
CONFIG_PREEMPT=n, too, although that would be a slightly bizarre thing to

That was WLI's aim, but I had one user report an OOPS with that combination.

do.

+ print_symbol("%s\n",
+ __get_cpu_var(preempt_exit));

I'll change this to

print_symbol("%s",
__get_cpu_var(preempt_exit));
printk("\n");

so it doesn't make a mess with CONFIG_KALLSYMS=n.

Ok

It's not heavily tested but ran for a day on my box at home. It can trip over itself saying that it's own code paths are a problem too if it gets real busy.

Cheers,
Con

-
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/