x86: mmiotrace, preview 2
Kconfig.debug, Makefile and testmmiotrace.c style fixes.
Use real mutex instead of mutex.
Fix failure path in register probe func.
kmmio: RCU read-locked over single stepping.
Generate mapping id's.
Make mmio-mod.c built-in and rewrite its locking.
Add debugfs file to enable/disable mmiotracing.
kmmio: use irqsave spinlocks.
Lots of cleanups in mmio-mod.c
Marker file moved from /proc into debugfs.
Call mmiotrace entrypoints directly from ioremap.c.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
index 9491c0a..aa0d6462 100644
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -170,22 +170,19 @@
config MMIOTRACE_HOOKS
bool
- default n
config MMIOTRACE
- tristate "Memory mapped IO tracing"
+ bool "Memory mapped IO tracing"
depends on DEBUG_KERNEL && RELAY && DEBUG_FS
select MMIOTRACE_HOOKS
- default n
+ default y
help
- This will build a kernel module called mmiotrace.
- Making this a built-in is heavily discouraged.
-
- Mmiotrace traces Memory Mapped I/O access and is meant for debugging
- and reverse engineering. The kernel module offers wrapped
- versions of the ioremap family of functions. The driver to be traced
- must be modified to call these wrappers. A user space program is
- required to collect the MMIO data.
+ Mmiotrace traces Memory Mapped I/O access and is meant for
+ debugging and reverse engineering. It is called from the ioremap
+ implementation and works via page faults. A user space program is
+ required to collect the MMIO data from debugfs files.
+ Tracing is disabled by default and can be enabled from a debugfs
+ file.
See http://nouveau.freedesktop.org/wiki/MmioTrace
If you are not helping to develop drivers, say N.
@@ -193,7 +190,6 @@
config MMIOTRACE_TEST
tristate "Test module for mmiotrace"
depends on MMIOTRACE && m
- default n
help
This is a dumb module for testing mmiotrace. It is very dangerous
as it will write garbage to IO memory starting at a given address.