start tracer disabled
PATCH 1/1 start tracer disabled
Hi,
this tiny patch adds a config option to I-pipe to allow starting the system with the tracer compiled in but disabled. You can then enabled it on demand via /proc/ipipe/tracer/enable. This saves a bit time when booting low-end boxes (I wonder why I didn't hacked this earlier...).
Jan
kernel/ipipe/Kconfig +15 -1
@@ -6,7 +6,7 @@ config IPIPE compiled in. config IPIPE_TRACE - bool "Latency Tracing" + bool "Latency tracing" depends on IPIPE && PROC_FS select FRAME_POINTER default n
@@ -18,6 +18,15 @@ config IPIPE_TRACE in-kernel tracing API. The collected data and runtime control is available via /proc/ipipe/trace/*. +config IPIPE_TRACE_ENABLE + bool "Enable tracing on boot" + depends on IPIPE_TRACE + default y + ---help--- + Disable this option if you want to arm the tracer after booting + manually ("echo 1 > /proc/ipipe/tracer/enable"). This can reduce + boot time on slow embedded devices due to the tracer overhead. + config IPIPE_TRACE_IRQSOFF bool "Trace IRQs-off times" depends on IPIPE_TRACE
@@ -44,3 +53,8 @@ config IPIPE_TRACE_VMALLOC enabled. This can help to start systems that are low on memory, but it slightly degrades overall performance. Try this option when a traced kernel hangs unexpectedly at boot time. + +config IPIPE_TRACE_ENABLE_VALUE + int + default 0 if !IPIPE_TRACE_ENABLE + default 1 if IPIPE_TRACE_ENABLE
kernel/ipipe/tracer.c +2 -2
@@ -105,7 +105,7 @@ enum ipipe_trace_type static struct ipipe_trace_path *trace_paths[NR_CPUS]; #else /* !CONFIG_IPIPE_TRACE_VMALLOC */ -#define IPIPE_DEFAULT_TRACE_STATE 1 +#define IPIPE_DEFAULT_TRACE_STATE CONFIG_IPIPE_TRACE_ENABLE_VALUE static struct ipipe_trace_path trace_paths[NR_CPUS][IPIPE_TRACE_PATHS] = { [0 ... NR_CPUS-1] =
@@ -1217,7 +1217,7 @@ void __init __ipipe_init_tracer(void) trace_paths[cpu][path].end = -1; } } - ipipe_trace_enable =1 ; + ipipe_trace_enable =CONFIG_IPIPE_TRACE_ENABLE_VALUE ;#endif /* CONFIG_IPIPE_TRACE_VMALLOC */ trace_dir =create_proc_entry ("trace" ,S_IFDIR , ipipe_proc_root);
Philippe Gerum
AppliedQuoted 7 lines · Jan Kiszka
Hi,
this tiny patch adds a config option to I-pipe to allow starting the system with the tracer compiled in but disabled. You can then enabled it on demand via
/proc/ipipe/tracer/enable. This saves a bit time when booting low-end boxes (I wonder why I didn't hacked this earlier...).
Merged, thanks.
Quoted 66 lines
Jan
plain text document attachment (tracer-default-off.patch)
Index: linux-2.6.17.8/kernel/ipipe/Kconfig
===================================================================kernel/ipipe/Kconfig +15
-1@@ -6,7 +6,7 @@ config IPIPE compiled in. config IPIPE_TRACE - bool "Latency Tracing" + bool "Latency tracing" depends on IPIPE && PROC_FS select FRAME_POINTER default n@@ -18,6 +18,15 @@ config IPIPE_TRACE in-kernel tracing API. The collected data and runtime control is available via /proc/ipipe/trace/*. +config IPIPE_TRACE_ENABLE + bool "Enable tracing on boot" + depends on IPIPE_TRACE + default y + ---help--- + Disable this option if you want to arm the tracer after booting + manually ("echo 1 > /proc/ipipe/tracer/enable"). This can reduce + boot time on slow embedded devices due to the tracer overhead. + config IPIPE_TRACE_IRQSOFF bool "Trace IRQs-off times" depends on IPIPE_TRACE@@ -44,3 +53,8 @@ config IPIPE_TRACE_VMALLOC enabled. This can help to start systems that are low on memory, but it slightly degrades overall performance. Try this option when a traced kernel hangs unexpectedly at boot time. + +config IPIPE_TRACE_ENABLE_VALUE + int + default 0 if !IPIPE_TRACE_ENABLE + default 1 if IPIPE_TRACE_ENABLEIndex:
linux-2.6.17.8/kernel/ipipe/tracer.c
===================================================================kernel/ipipe/tracer.c +2
-2@@ -105,7 +105,7 @@ enum ipipe_trace_type static struct ipipe_trace_path *trace_paths[NR_CPUS]; #else /* !CONFIG_IPIPE_TRACE_VMALLOC */ -#define IPIPE_DEFAULT_TRACE_STATE 1 +#define IPIPE_DEFAULT_TRACE_STATE CONFIG_IPIPE_TRACE_ENABLE_VALUE static struct ipipe_trace_path trace_paths[NR_CPUS][IPIPE_TRACE_PATHS] = { [0 ... NR_CPUS-1] =@@ -1217,7 +1217,7 @@ void __init __ipipe_init_tracer(void) trace_paths[cpu][path].end = -1; } } - ipipe_trace_enable =1 ; + ipipe_trace_enable =CONFIG_IPIPE_TRACE_ENABLE_VALUE ;#endif /* CONFIG_IPIPE_TRACE_VMALLOC */ trace_dir =create_proc_entry ("trace" ,S_IFDIR , ipipe_proc_root);_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main
Signature · 1 line
Philippe.