From: Robert Love <rml@tech9.net> To: linux-kernel@vger.kernel.org Subject: [PATCH] preemption latency measurement tool Date: 09 Apr 2002 01:23:16 -0400 Cc: kpreempt-tech@lists.sourceforge.net preempt-stats, the preemption-off period measurement tool, has been updated with new patches for 2.4.18, 2.4.19-pre6, 2.4.19-pre5-ac3, 2.5.7, and 2.5.8-pre2 available at: http://www.kernel.org/pub/linux/kernel/people/rml/preempt-stats and http://tech9.net/rml/linux A lot of work, courtesy of MontaVista, has gone into this release to greatly improve the accuracy of the tool's measurements. This patch instructs the kernel preemption code to measure periods of non-preemptibility and report the 20 worst in /proc/latencytimes. These results typically correspond to the 20 longest held spinlocks in your working kernel. They help pinpoint specific problem areas that need work. Example results: cpu 0 worst 20 latency times of 2236 measured in this period. usec cause mask start line/file address end line/file 9292 BKL 1 2839/buffer.c c0142caf 2842/buffer.c 5999 spin_lock 9 86/softirq.c c011c56d 112/softirq.c 4495 spin_lock 1 401/memory.c c0126f18 422/memory.c 2697 spin_lock 1 671/inode.c c015658a 697/inode.c ... et cetera The patch obviously requires a preemptive kernel. For 2.4, the patches are available at the above address. Preempt-kernel is merged in 2.5. Change Log: 20020409 - make stats code aware of PREEMPT_ACTIVE (Todd Poynor) - proper start/stop order in preempt_schedule (Todd Poynor) - explicitly force preempt region on/off in (Todd Poynor) schedule - improve reporting wrt interrupts (Todd Poynor) - missing stop in do_softirq (Todd Poynor) 20020302: - make preempt-stats report meaningful stats (Todd Poynor) on SMP - fix overflow with large latency values on (Todd Poynor) high clock-rate CPUs 20020204: - accidently removed preempt_schedule export (Willy Tarreau) - properly export statistics functions (Willy Tarreau) Enjoy, Robert Love - 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/