lkml.org 
[lkml]   [2004]   [Jul]   [12]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateSun, 11 Jul 2004 23:58:46 -0700
FromAndrew Morton <>
SubjectRe: Instrumenting high latency
Con Kolivas <kernel@kolivas.org> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:04    [from the cache]
©2003-2008