diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2010-05-31 12:52:35 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2010-06-01 10:43:11 -0400 |
commit | 753fb14dfb0662e1d38758ffc6876c0ab1c7bd9e (patch) | |
tree | d03e024cfd3d815e039a4c2d55f7c35108271af8 /litmus/Kconfig | |
parent | 62c186fde48926a30f4e61332a805430dc1325cd (diff) |
Make platform-specific Feather-Trace depend on !CONFIG_DEBUG_RODATA
Feather-Trace rewrites instructions in the kernel's .text segment.
This segment may be write-protected if CONFIG_DEBUG_RODATA is selected.
In this case, fall back to the default flag-based Feather-Trace
implementation. In the future, we could either adopt the ftrace method
of rewriting .text addresses using non-.text mappings or we could
consider replacing Feather-Trace with ftrace altogether.
For now, this patch avoids unexpected runtime errors.
Diffstat (limited to 'litmus/Kconfig')
-rw-r--r-- | litmus/Kconfig | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/litmus/Kconfig b/litmus/Kconfig index 1c0a96d54992..f3aa7478faf7 100644 --- a/litmus/Kconfig +++ b/litmus/Kconfig | |||
@@ -80,6 +80,15 @@ config FEATHER_TRACE | |||
80 | Feather-Trace basic tracing infrastructure. Includes device file | 80 | Feather-Trace basic tracing infrastructure. Includes device file |
81 | driver and instrumentation point support. | 81 | driver and instrumentation point support. |
82 | 82 | ||
83 | There are actually two implementations of Feather-Trace. | ||
84 | 1) A slower, but portable, default implementation. | ||
85 | 2) Architecture-specific implementations that rewrite kernel .text at runtime. | ||
86 | |||
87 | If enabled, Feather-Trace will be based on 2) if available (currently only for x86). | ||
88 | However, if DEBUG_RODATA=y, then Feather-Trace will choose option 1) in any case | ||
89 | to avoid problems with write-protected .text pages. | ||
90 | |||
91 | Bottom line: to avoid increased overheads, choose DEBUG_RODATA=n. | ||
83 | 92 | ||
84 | config SCHED_TASK_TRACE | 93 | config SCHED_TASK_TRACE |
85 | bool "Trace real-time tasks" | 94 | bool "Trace real-time tasks" |