Re: Instrumenting high latency

From: Andrew Morton
Date: Mon Jul 12 2004 - 02:02:32 EST


Con Kolivas <kernel@xxxxxxxxxxx> wrote:
>
> It can trip
> over itself saying that it's own code paths are a problem too if it gets
> real busy.

This might fix it?

diff -puN arch/i386/kernel/traps.c~instrumenting-high-latency-fixes arch/i386/kernel/traps.c
--- 25/arch/i386/kernel/traps.c~instrumenting-high-latency-fixes 2004-07-11 23:47:51.007799680 -0700
+++ 25-akpm/arch/i386/kernel/traps.c 2004-07-11 23:57:58.726412408 -0700
@@ -1065,6 +1065,9 @@ void __dec_preempt_count(void)
if (preempt_count() == 1 && system_state == SYSTEM_RUNNING &&
__get_cpu_var(preempt_entry)) {
u64 exit;
+
+ preempt_count()++; /* Prevent recursive warnings */
+
__get_cpu_var(preempt_exit)
= (unsigned long)__builtin_return_address(0);
rdtscll(exit);
@@ -1082,12 +1085,13 @@ void __dec_preempt_count(void)
preempt_thresh);
print_symbol("%s and ending at ",
__get_cpu_var(preempt_entry));
- print_symbol("%s\n",
- __get_cpu_var(preempt_exit));
+ print_symbol("%s", __get_cpu_var(preempt_exit));
+ printk("\n");
dump_stack();
}
}
__get_cpu_var(preempt_exit) = __get_cpu_var(preempt_entry) = 0;
+ preempt_count()--;
}
preempt_count()--;
}
_

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