public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] preemption latency measurement tool
@ 2002-04-09  5:23 Robert Love
  0 siblings, 0 replies; 66+ messages in thread
From: Robert Love @ 2002-04-09  5:23 UTC (permalink / raw)
  To: linux-kernel; +Cc: kpreempt-tech

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


^ permalink raw reply	[flat|nested] 66+ messages in thread
* [PATCH] Preemption Latency Measurement Tool
@ 2001-09-19 22:44 Robert Love
  2001-09-20  1:40 ` Ignacio Vazquez-Abrams
                   ` (5 more replies)
  0 siblings, 6 replies; 66+ messages in thread
From: Robert Love @ 2001-09-19 22:44 UTC (permalink / raw)
  To: linux-kernel; +Cc: ozone, safemode, Dieter.Nuetzel, iafilius, ilsensine, george

Available at:
http://tech9.net/rml/linux/patch-rml-2.4.9-ac12-preempt-stats-1 and
http://tech9.net/rml/linux/patch-rml-2.4.10-pre12-preempt-stats-1
for 2.4.9-ac12 and 2.4.10-pre12, respectively.

This patch is provided thanks to MontaVista (http://mvista.com).

This patch enables a new kernel configure option, CONFIG_PREEMPT_TIMES,
which once enabled instructs the kernel preemption code to monitor
in-kernel latencies due to the various locking primitives and report the
20 worst recorded cases to /proc/latencytimes.

The patch obviously requires the preemption patch, available at
http://tech9.net/rml/linux

The patch won't start recording (I will change this...) until you read
from /proc/latencytimes once.  From then on, each read will return the
20 worst cases and reset the log.  Nonetheless, you don't want this in
the kernel if you don't plan to do use it, and I do _not_ want it
enabled during benchmarks.

The proc interface is fairly verbose.  It will give you a measurement of
the latency, what is causing the latency, the file line number and
filename where the lock (or whatever) began and the same for where it
ended.

The point is to track down long held locks and other problems that are
causing poor response.

Thus, most of you CC have noticed certain situations wherein even with
preemption you see high latencies (most of you with mp3 playback).  I
ask that, if you get the chance, to play with this patch and measuring
some latencies.  See where bad values lie.  Get a feeling for your
system... most of your latencies should be very small.  Right now, I
just read a sampling of my 8000 worst cases and the worst was 600us --
this is not bad.  Things over 5000us are interesting, especially if
consistent.

I appreciate any comments.  CC me and the list.  Enjoy.

-- 
Robert M. Love
rml at ufl.edu
rml at tech9.net


^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2002-04-09  5:23 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200109202253.RAA21082@waste.org>
2001-09-20 23:15 ` [PATCH] Preemption Latency Measurement Tool Oliver Xymoron
2001-09-21  0:42   ` Roger Larsson
2001-09-21  1:03     ` Alan Cox
2001-09-21  1:22       ` Andrea Arcangeli
2001-09-21  1:51         ` Rik van Riel
2001-09-21  1:38       ` Roger Larsson
2001-09-21  1:53         ` Roger Larsson
2001-09-21  2:08           ` Roger Larsson
2001-09-21  2:29             ` Rik van Riel
2001-09-21 16:24       ` Jussi Laako
2001-09-21 16:36         ` Alan Cox
2001-09-21 18:46         ` Thomas Sailer
2001-09-22 10:30           ` Jussi Laako
2001-09-21 16:18     ` Stefan Westerfeld
2001-09-21 20:18       ` Dieter Nützel
     [not found]       ` <200109212018.f8LKImG21229@zero.tech9.net>
2001-09-21 21:47         ` Robert Love
2002-04-09  5:23 [PATCH] preemption latency measurement tool Robert Love
  -- strict thread matches above, loose matches on Subject: below --
2001-09-19 22:44 [PATCH] Preemption Latency Measurement Tool Robert Love
2001-09-20  1:40 ` Ignacio Vazquez-Abrams
2001-09-20  2:23   ` safemode
2001-09-20  1:13     ` David Lang
2001-09-20  2:57       ` Robert Love
2001-09-20  2:38     ` Robert Love
2001-09-20  6:31 ` Dieter Nützel
2001-09-20 20:27   ` Robert Love
2001-09-20  6:31 ` Dieter Nützel
     [not found] ` <20010920063143.424BD1E41A@Cantor.suse.de>
2001-09-20  6:41   ` Andrea Arcangeli
2001-09-20  7:57     ` Dieter Nützel
     [not found]     ` <20010920075751.6CA791E6B2@Cantor.suse.de>
2001-09-20  8:21       ` Andrea Arcangeli
2001-09-20 20:13         ` george anzinger
2001-09-20 20:38           ` Randy.Dunlap
2001-09-20 21:10         ` Robert Love
2001-09-20 21:35           ` Dieter Nützel
2001-09-20 22:03             ` Oliver Xymoron
2001-09-20 22:51               ` Dieter Nützel
     [not found]               ` <200109202252.f8KMqLG17327@zero.tech9.net>
2001-09-21  3:17                 ` Robert Love
2001-09-21 15:48                   ` george anzinger
2001-09-22 21:09                     ` Dieter Nützel
2001-09-22 23:40                       ` safemode
2001-09-22 23:46                       ` Dieter Nützel
2001-09-23  0:15                       ` safemode
     [not found]                       ` <200109222340.BAA37547@blipp.internet5.net>
2001-09-23  0:38                         ` Roger Larsson
2001-09-23  1:42                           ` safemode
2001-09-23  3:02                           ` Robert Love
2001-09-23 16:43                             ` Roger Larsson
2001-09-23  0:42                       ` Dieter Nützel
     [not found]                       ` <200109222341.f8MNfnG25152@zero.tech9.net>
2001-09-23  2:50                         ` Robert Love
2001-09-23  3:14                           ` george anzinger
2001-09-23  4:06                             ` Dieter Nützel
     [not found]                       ` <200109222347.f8MNlMG25157@zero.tech9.net>
2001-09-23  2:54                         ` Robert Love
     [not found]                       ` <200109230016.f8N0G6G25222@zero.tech9.net>
2001-09-23  2:58                         ` Robert Love
     [not found]                     ` <200109222120.f8MLKYG24859@zero.tech9.net>
2001-09-23  2:44                       ` Robert Love
     [not found]     ` <200109200757.JAA60995@blipp.internet5.net>
2001-09-20 17:37       ` Roger Larsson
2001-09-20 21:29         ` Robert Love
2001-09-20 21:53           ` Dieter Nützel
     [not found]     ` <200109200758.f8K7wEG13675@zero.tech9.net>
2001-09-20 21:09       ` Robert Love
2001-09-20 20:01 ` Tobias Diedrich
2001-09-20 22:01   ` Robert Love
2001-09-22  3:57 ` Andre Pang
2001-09-22  6:10   ` Robert Love
2001-09-22  7:22     ` Andre Pang
2001-09-23  3:18       ` george anzinger
2001-09-23  3:21         ` Robert Love
2001-09-23  7:05       ` Robert Love
2001-09-23 12:03         ` Andre Pang
2001-09-23 18:31           ` Robert Love

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox