Steven Rostedt (Red Hat)
e7c15cd8a1
tracing: Added hardware latency tracer
...
The hardware latency tracer has been in the PREEMPT_RT patch for some time.
It is used to detect possible SMIs or any other hardware interruptions that
the kernel is unaware of. Note, NMIs may also be detected, but that may be
good to note as well.
The logic is pretty simple. It simply creates a thread that spins on a
single CPU for a specified amount of time (width) within a periodic window
(window). These numbers may be adjusted by their cooresponding names in
/sys/kernel/tracing/hwlat_detector/
The defaults are window = 1000000 us (1 second)
width = 500000 us (1/2 second)
The loop consists of:
t1 = trace_clock_local();
t2 = trace_clock_local();
Where trace_clock_local() is a variant of sched_clock().
The difference of t2 - t1 is recorded as the "inner" timestamp and also the
timestamp t1 - prev_t2 is recorded as the "outer" timestamp. If either of
these differences are greater than the time denoted in
/sys/kernel/tracing/tracing_thresh then it records the event.
When this tracer is started, and tracing_thresh is zero, it changes to the
default threshold of 10 us.
The hwlat tracer in the PREEMPT_RT patch was originally written by
Jon Masters. I have modified it quite a bit and turned it into a
tracer.
Based-on-code-by: Jon Masters <jcm@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2016-09-02 12:47:51 -04:00
..
bpf
bpf: fix bpf_skb_in_cgroup helper naming
2016-08-12 21:53:33 -07:00
configs
config: add android config fragments
2016-08-02 19:35:42 -04:00
debug
mm/init: Add 'rodata=off' boot cmdline parameter to disable read-only kernel mappings
2016-02-22 08:51:37 +01:00
events
perf/core: Use this_cpu_ptr() when stopping AUX events
2016-08-24 15:03:10 +02:00
gcov
gcov: add support for gcc version >= 6
2016-07-15 14:54:27 +09:00
irq
genirq/affinity: Use get/put_online_cpus around cpumask operations
2016-08-22 11:22:44 +02:00
livepatch
modules: add ro_after_init support
2016-08-04 10:16:55 +09:30
locking
locking/pvqspinlock: Fix a bug in qstat_read()
2016-08-10 14:13:29 +02:00
power
Merge branch 'pm-sleep'
2016-08-18 03:27:08 +02:00
printk
printk: fix parsing of "brl=" option
2016-08-26 17:39:35 -07:00
rcu
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
sched
sched/cputime: Resync steal time when guest & host lose sync
2016-08-18 11:19:48 +02:00
time
timekeeping: Cap array access in timekeeping_debug
2016-08-24 09:34:32 +02:00
trace
tracing: Added hardware latency tracer
2016-09-02 12:47:51 -04:00
.gitignore
acct.c
async.c
audit.c
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
audit.h
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
audit_fsnotify.c
audit_tree.c
audit: cleanup prune_tree_thread
2016-04-04 09:46:47 -04:00
audit_watch.c
don't bother with ->d_inode->i_sb - it's always equal to ->d_sb
2016-04-10 17:11:51 -04:00
auditfilter.c
audit: add fields to exclude filter by reusing user filter
2016-06-27 11:01:00 -04:00
auditsc.c
Merge branch 'stable-4.8' of git://git.infradead.org/users/pcmoore/audit
2016-07-29 17:54:17 -07:00
backtracetest.c
bounds.c
capability.c
kernel: Add noaudit variant of ns_capable()
2016-06-06 20:16:18 +10:00
cgroup.c
Merge branch 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
2016-07-29 14:29:04 -07:00
cgroup_freezer.c
cgroup_pids.c
cgroup: Use lld instead of ld when printing pids controller events_limit
2016-06-21 15:03:36 -04:00
compat.c
configs.c
context_tracking.c
cpu.c
timers/core: Correct callback order during CPU hot plug
2016-07-28 18:56:22 +02:00
cpu_pm.c
cpuset.c
cpuset, mm: fix TIF_MEMDIE check in cpuset_change_task_nodemask
2016-07-28 16:07:41 -07:00
crash_dump.c
cred.c
cred: Reject inodes with invalid ids in set_create_file_as()
2016-06-30 18:05:09 -05:00
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c
kernel/exit.c: quieten greatest stack depth printk
2016-08-02 19:35:23 -04:00
extable.c
fork.c
mm: fix memcg stack accounting for sub-page stacks
2016-07-28 16:07:41 -07:00
freezer.c
freezer, oom: check TIF_MEMDIE on the correct task
2016-07-28 16:07:41 -07:00
futex.c
futex: Assume all mappings are private on !MMU systems
2016-07-29 18:44:14 +02:00
futex_compat.c
groups.c
hung_task.c
kernel/hung_task.c: use timeout diff when timeout is updated
2016-03-22 15:36:02 -07:00
irq_work.c
jump_label.c
powerpc updates for 4.8 #2
2016-08-05 09:00:54 -04:00
kallsyms.c
kallsyms: add support for relative offsets in kallsyms address table
2016-03-15 16:55:16 -07:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kernel/kcov: unproxify debugfs file's fops
2016-06-15 04:56:35 -07:00
kexec.c
kexec: allow architectures to override boot mapping
2016-08-02 19:35:27 -04:00
kexec_core.c
kexec: add restriction on kexec_load() segment sizes
2016-08-02 19:35:31 -04:00
kexec_file.c
kexec: introduce a protection mechanism for the crashkernel reserved memory
2016-05-23 17:04:14 -07:00
kexec_internal.h
kmod.c
kprobes.c
ksysfs.c
kexec: add a kexec_crash_loaded() function
2016-08-02 19:35:30 -04:00
kthread.c
latencytop.c
Makefile
ELF/MIPS build fix
2016-05-23 17:04:14 -07:00
membarrier.c
memremap.c
libnvdimm for 4.8
2016-07-28 17:38:16 -07:00
module-internal.h
module.c
Removed the MODULE_SIG_FORCE-means-no-MODULE_FORCE_LOAD patch.
2016-08-04 09:14:38 -04:00
module_signing.c
KEYS: Move the point of trust determination to __key_link()
2016-04-11 22:43:43 +01:00
notifier.c
nsproxy.c
cgroup: introduce cgroup namespaces
2016-02-16 13:04:58 -05:00
padata.c
kernel/padata.c: hide unused functions
2016-05-19 19:12:14 -07:00
panic.c
kexec: use core_param for crash_kexec_post_notifiers boot option
2016-08-02 19:35:29 -04:00
params.c
pid.c
remove lots of IS_ERR_VALUE abuses
2016-05-27 15:26:11 -07:00
pid_namespace.c
profile.c
profile: Convert to hotplug state machine
2016-07-15 10:41:42 +02:00
ptrace.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
range.c
reboot.c
relay.c
relay: add global mode support for buffer-only channels
2016-08-02 19:35:41 -04:00
resource.c
/proc/iomem: only expose physical resource addresses to privileged users
2016-04-14 12:56:09 -07:00
seccomp.c
tree-wide: replace config_enabled() with IS_ENABLED()
2016-08-04 08:50:07 -04:00
signal.c
signals: Use hrtimer for sigtimedwait()
2016-07-07 10:35:07 +02:00
smp.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
smpboot.c
cpu/hotplug: Unpark smpboot threads from the state machine
2016-03-01 20:36:56 +01:00
smpboot.h
cpu/hotplug: Create hotplug threads
2016-03-01 20:36:56 +01:00
softirq.c
arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections
2016-03-25 16:37:42 -07:00
stacktrace.c
stop_machine.c
stop_machine: Touch_nmi_watchdog() after MULTI_STOP_PREPARE
2016-07-27 11:12:11 +02:00
sys.c
prctl: make PR_SET_THP_DISABLE wait for mmap_sem killable
2016-05-23 17:04:14 -07:00
sys_ni.c
sysctl.c
sysctl: handle error writing UINT_MAX to u32 fields
2016-08-26 17:39:35 -07:00
sysctl_binary.c
kernel/sysctl_binary.c: use generic UUID library
2016-05-20 17:58:30 -07:00
task_work.c
task_work: use READ_ONCE/lockless_dereference, avoid pi_lock if !task_works
2016-08-02 19:35:02 -04:00
taskstats.c
taskstats: use the libnl API to align nlattr on 64-bit
2016-04-23 20:13:25 -04:00
test_kprobes.c
torture.c
torture: Stop onoff task if there is only one cpu
2016-06-14 16:03:28 -07:00
tracepoint.c
kernel/...: convert pr_warning to pr_warn
2016-03-22 15:36:02 -07:00
tsacct.c
time, acct: Drop irq save & restore from __acct_update_integrals()
2016-02-29 09:53:09 +01:00
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
fs: Limit file caps to the user namespace of the super block
2016-06-24 10:40:31 -05:00
utsname.c
utsname_sysctl.c
watchdog.c
Revert "perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86"
2016-07-10 20:58:36 +02:00
workqueue.c
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
workqueue_internal.h
sched/core: Get rid of 'cpu' argument in wq_worker_sleeping()
2016-03-02 10:28:47 -05:00