59 lines
1.9 KiB
Diff
59 lines
1.9 KiB
Diff
|
changeset: 23643:335e96664589
|
||
|
user: George Dunlap <george.dunlap@eu.citrix.com>
|
||
|
date: Fri Jul 01 20:31:18 2011 +0100
|
||
|
files: xen/common/trace.c
|
||
|
description:
|
||
|
xentrace: Allow tracing to be enabled at boot
|
||
|
|
||
|
Add a "tevt_mask" parameter to the xen command-line, allowing
|
||
|
trace records to be gathered early in boot. They will be placed
|
||
|
into the trace buffers, and read when the user runs "xentrace".
|
||
|
|
||
|
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
|
||
|
|
||
|
|
||
|
---
|
||
|
xen/common/trace.c | 20 ++++++++++++++++----
|
||
|
1 file changed, 16 insertions(+), 4 deletions(-)
|
||
|
|
||
|
Index: xen-4.1.2-testing/xen/common/trace.c
|
||
|
===================================================================
|
||
|
--- xen-4.1.2-testing.orig/xen/common/trace.c
|
||
|
+++ xen-4.1.2-testing/xen/common/trace.c
|
||
|
@@ -45,7 +45,9 @@ CHECK_t_buf;
|
||
|
|
||
|
/* opt_tbuf_size: trace buffer size (in pages) for each cpu */
|
||
|
static unsigned int opt_tbuf_size;
|
||
|
+static unsigned int opt_tevt_mask;
|
||
|
integer_param("tbuf_size", opt_tbuf_size);
|
||
|
+integer_param("tevt_mask", opt_tevt_mask);
|
||
|
|
||
|
/* Pointers to the meta-data objects for all system trace buffers */
|
||
|
static struct t_info *t_info;
|
||
|
@@ -338,11 +340,21 @@ void __init init_trace_bufs(void)
|
||
|
{
|
||
|
register_cpu_notifier(&cpu_nfb);
|
||
|
|
||
|
- if ( opt_tbuf_size && alloc_trace_bufs(opt_tbuf_size) )
|
||
|
+ if ( opt_tbuf_size )
|
||
|
{
|
||
|
- printk(XENLOG_INFO "xentrace: allocation size %d failed, disabling\n",
|
||
|
- opt_tbuf_size);
|
||
|
- opt_tbuf_size = 0;
|
||
|
+ if ( alloc_trace_bufs(opt_tbuf_size) )
|
||
|
+ {
|
||
|
+ printk("xentrace: allocation size %d failed, disabling\n",
|
||
|
+ opt_tbuf_size);
|
||
|
+ opt_tbuf_size = 0;
|
||
|
+ }
|
||
|
+ else if ( opt_tevt_mask )
|
||
|
+ {
|
||
|
+ printk("xentrace: Starting tracing, enabling mask %x\n",
|
||
|
+ opt_tevt_mask);
|
||
|
+ tb_event_mask = opt_tevt_mask;
|
||
|
+ tb_init_done=1;
|
||
|
+ }
|
||
|
}
|
||
|
}
|
||
|
|