From: Ingo Molnar <mingo@elte.hu>
To: Dave Jones <davej@redhat.com>, Lee Revell <rlrevell@joe-job.com>,
Hugh Dickins <hugh@veritas.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Linus Torvalds <torvalds@osdl.org>
Subject: Re: [patch] latency tracer, 2.6.15-rc7
Date: Thu, 29 Dec 2005 11:17:36 +0100 [thread overview]
Message-ID: <20051229101736.GA2560@elte.hu> (raw)
In-Reply-To: <20051229100233.GA12056@redhat.com>
* Dave Jones <davej@redhat.com> wrote:
> > could test it by e.g. trying to reproduce the same VM latency as in the
> > -rt tree. [the two zlib patches are needed if you are using 4K stacks,
> > mcount increases stack footprint.]
>
> kernel/latency.c: In function 'add_preempt_count_ti':
> kernel/latency.c:1703: warning: implicit declaration of function 'preempt_count_ti'
> kernel/latency.c:1703: error: invalid lvalue in assignment
> kernel/latency.c: In function 'sub_preempt_count_ti':
> kernel/latency.c:1764: error: invalid lvalue in assignment
indeed - i have fixed this and have uploaded a new version to:
http://redhat.com/~mingo/latency-tracing-patches/
> interesting config options ...
>
> # CONFIG_PREEMPT_NONE is not set
> CONFIG_PREEMPT_VOLUNTARY=y
> # CONFIG_PREEMPT is not set
> CONFIG_PREEMPT_BKL=y
>
> CONFIG_WAKEUP_TIMING=y
> CONFIG_WAKEUP_LATENCY_HIST=y
> CONFIG_CRITICAL_IRQSOFF_TIMING=y
> CONFIG_INTERRUPT_OFF_HIST=y
> CONFIG_LATENCY_TRACE=y
> CONFIG_USE_FRAME_POINTER=y
> CONFIG_FRAME_POINTER=y
these are various things one might be interested in gathering on a live
system. Enabling more of them means higher runtime overhead.
WAKEUP_TIMING only measures the worst-case wakeup cost, it's the
lowest-overhead option. It's activated via resetting the worst-case
cost:
echo 0 > /proc/sys/kernel/preempt_max_latency
The histogram ones are gathering a histogram (but no traces) into
/proc/latency_hist/<cpu_nr>. These have some overhead as they hook into
every preempt-disable/enable call. Output is:
$ head -15 /proc/latency_hist/wakeup_latency/CPU0
#Minimum latency: 2 microseconds.
#Average latency: 7 microseconds.
#Maximum latency: 511 microseconds.
#Total samples: 5241
#There are 0 samples greater or equal than 10240 microseconds
#usecs samples
0 0
1 0
2 7
3 2041
4 921
5 194
6 62
7 502
8 119
...
The LATENCY_TRACING option does full tracing of critical sections
[driven by e.g. WAKEUP_TIMING - but it can also be activated by
interrupts, or be completely user-driven via userspace calls], which
trace is then put into /proc/latency_trace - mcount done for every
function call in the kernel. This can add up to 30% of runtime overhead
[or worse], but is obviously very useful for debugging latencies.
Ingo
next prev parent reply other threads:[~2005-12-29 10:17 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-12-27 23:31 2.6.15-rc5: latency regression vs 2.6.14 in exit_mmap->free_pgtables Lee Revell
2005-12-28 2:46 ` Lee Revell
2005-12-28 22:59 ` Hugh Dickins
2005-12-29 0:00 ` Lee Revell
2005-12-29 8:22 ` [patch] latency tracer, 2.6.15-rc7 Ingo Molnar
2005-12-29 10:02 ` Dave Jones
2005-12-29 10:17 ` Ingo Molnar [this message]
2005-12-29 20:11 ` Lee Revell
2005-12-29 20:26 ` Lee Revell
2005-12-29 20:28 ` Ingo Molnar
2005-12-29 22:18 ` Lee Revell
2005-12-30 0:08 ` Grant Coady
2005-12-30 0:18 ` Lee Revell
2005-12-30 0:42 ` Grant Coady
2005-12-30 8:09 ` Ingo Molnar
2005-12-30 16:51 ` Linus Torvalds
2006-01-02 20:14 ` Ingo Molnar
2006-01-19 1:49 ` Lee Revell
2006-01-19 6:17 ` Lee Revell
2005-12-31 0:20 ` Grant Coady
2005-12-30 2:16 ` Lee Revell
2005-12-30 8:00 ` Ingo Molnar
2005-12-30 18:51 ` Lee Revell
2005-12-31 0:51 ` Lee Revell
2005-12-31 0:59 ` Mark Knecht
2005-12-31 1:16 ` Lee Revell
2005-12-31 1:30 ` Lee Revell
2005-12-31 1:02 ` Linus Torvalds
2005-12-31 1:15 ` Lee Revell
2005-12-31 1:39 ` Linus Torvalds
2005-12-31 3:54 ` Lee Revell
2005-12-31 4:00 ` Lee Revell
2005-12-31 4:29 ` Paul E. McKenney
2005-12-31 4:54 ` Lee Revell
2005-12-31 20:14 ` Paul E. McKenney
2006-01-01 5:46 ` Lee Revell
2006-01-01 18:56 ` Linus Torvalds
2006-01-01 19:02 ` Lee Revell
2006-01-01 19:06 ` Lee Revell
2006-01-03 11:12 ` Dipankar Sarma
2006-01-03 13:28 ` David Lang
2006-01-03 14:11 ` Dipankar Sarma
2006-01-03 14:09 ` Dipankar Sarma
2006-01-03 15:55 ` Paul E. McKenney
2005-12-31 4:48 ` Linus Torvalds
2006-01-01 8:32 ` Lee Revell
2006-01-06 20:28 ` Lee Revell
2005-12-29 0:54 ` 2.6.15-rc5: latency regression vs 2.6.14 in exit_mmap->free_pgtables Lee Revell
2006-01-19 1:42 ` Lee Revell
2006-01-19 7:29 ` Hugh Dickins
2006-01-19 7:32 ` Lee Revell
2006-01-19 7:35 ` Lee Revell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20051229101736.GA2560@elte.hu \
--to=mingo@elte.hu \
--cc=davej@redhat.com \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rlrevell@joe-job.com \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.