[PATCH] Profiling fixed (SMP/x86)

From: Zlatko Calusic (zlatko@iskon.hr)
Date: Mon May 08 2000 - 12:28:06 EST


Hi!

Profiling didn't work in the last few kernels on my x86 based SMP
machine. Trivial fix below.

Enjoy!

Index: 9906.6/arch/i386/kernel/apic.c
--- 9906.6/arch/i386/kernel/apic.c Thu, 27 Apr 2000 22:11:43 +0200 zcalusic (linux/D/c/46_apic.c 1.2.2.1 644)
+++ 9906.7/arch/i386/kernel/apic.c Mon, 08 May 2000 02:45:20 +0200 zcalusic (linux/D/c/46_apic.c 1.2.2.2 644)
@@ -615,6 +615,7 @@
 
 inline void smp_local_timer_interrupt(struct pt_regs * regs)
 {
+ int user = user_mode(regs);
         int cpu = smp_processor_id();
 
         /*
@@ -623,6 +624,8 @@
          * updated with atomic operations). This is especially
          * useful with a profiling multiplier != 1
          */
+ if (!user)
+ x86_do_profile(regs->eip);
 
         if (--prof_counter[cpu] <= 0) {
                 /*
@@ -640,7 +643,7 @@
                 }
 
 #ifdef CONFIG_SMP
- handle_smp_time(user_mode(regs), cpu);
+ handle_smp_time(user, cpu);
 #endif
         }
 

-- 
Zlatko

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon May 15 2000 - 21:00:11 EST