aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-09-02 16:39:12 -0400
committerSteven Rostedt <rostedt@goodmis.org>2011-09-02 16:39:12 -0400
commit7592b9711d9b43be64bfb93fb2e91e7b2c4b141f (patch)
treec1248d99b7285f2998cfdb005abcfda05d30cd8f
parent890c635e3be43f349bceb9489b073453021464f3 (diff)
trace-cmd: Allow report to ignore the date option
Add --nodate to trace-cmd report to ignore the date offset and give the raw timestamp count of the records. This also adds a flags field to the tracecmd_input struct and is set and cleared with tracecmd_set_flag() and tracecmd_clear_flag() respectively. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-cmd.h6
-rw-r--r--trace-input.c13
-rw-r--r--trace-read.c9
3 files changed, 28 insertions, 0 deletions
diff --git a/trace-cmd.h b/trace-cmd.h
index af0645a..5a7c6c0 100644
--- a/trace-cmd.h
+++ b/trace-cmd.h
@@ -80,6 +80,10 @@ enum {
80 TRACECMD_OPTION_DATE, 80 TRACECMD_OPTION_DATE,
81}; 81};
82 82
83enum {
84 TRACECMD_FL_IGNORE_DATE = 1,
85};
86
83struct tracecmd_ftrace { 87struct tracecmd_ftrace {
84 struct tracecmd_input *handle; 88 struct tracecmd_input *handle;
85 struct event_format *fgraph_ret_event; 89 struct event_format *fgraph_ret_event;
@@ -98,6 +102,8 @@ int tracecmd_long_size(struct tracecmd_input *handle);
98int tracecmd_page_size(struct tracecmd_input *handle); 102int tracecmd_page_size(struct tracecmd_input *handle);
99int tracecmd_cpus(struct tracecmd_input *handle); 103int tracecmd_cpus(struct tracecmd_input *handle);
100int tracecmd_copy_headers(struct tracecmd_input *handle, int fd); 104int tracecmd_copy_headers(struct tracecmd_input *handle, int fd);
105void tracecmd_set_flag(struct tracecmd_input *handle, int flag);
106void tracecmd_clear_flag(struct tracecmd_input *handle, int flag);
101 107
102void tracecmd_print_events(struct tracecmd_input *handle); 108void tracecmd_print_events(struct tracecmd_input *handle);
103 109
diff --git a/trace-input.c b/trace-input.c
index 201f5dd..a567754 100644
--- a/trace-input.c
+++ b/trace-input.c
@@ -77,6 +77,7 @@ struct cpu_data {
77struct tracecmd_input { 77struct tracecmd_input {
78 struct pevent *pevent; 78 struct pevent *pevent;
79 struct plugin_list *plugin_list; 79 struct plugin_list *plugin_list;
80 unsigned long flags;
80 int fd; 81 int fd;
81 int long_size; 82 int long_size;
82 int page_size; 83 int page_size;
@@ -97,6 +98,16 @@ struct tracecmd_input {
97 98
98__thread struct tracecmd_input *tracecmd_curr_thread_handle; 99__thread struct tracecmd_input *tracecmd_curr_thread_handle;
99 100
101void tracecmd_set_flag(struct tracecmd_input *handle, int flag)
102{
103 handle->flags |= flag;
104}
105
106void tracecmd_clear_flag(struct tracecmd_input *handle, int flag)
107{
108 handle->flags &= ~flag;
109}
110
100#if DEBUG_RECORD 111#if DEBUG_RECORD
101static void remove_record(struct page *page, struct record *record) 112static void remove_record(struct page *page, struct record *record)
102{ 113{
@@ -1998,6 +2009,8 @@ static int handle_options(struct tracecmd_input *handle)
1998 * gtod. It is stored as ASCII with '0x' 2009 * gtod. It is stored as ASCII with '0x'
1999 * appended. 2010 * appended.
2000 */ 2011 */
2012 if (handle->flags & TRACECMD_FL_IGNORE_DATE)
2013 break;
2001 offset = strtoll(buf, NULL, 0); 2014 offset = strtoll(buf, NULL, 0);
2002 /* Convert from micro to nano */ 2015 /* Convert from micro to nano */
2003 offset *= 1000; 2016 offset *= 1000;
diff --git a/trace-read.c b/trace-read.c
index 2e45bff..71a58be 100644
--- a/trace-read.c
+++ b/trace-read.c
@@ -826,6 +826,7 @@ static void process_plugin_option(char *option)
826} 826}
827 827
828enum { 828enum {
829 OPT_nodate = 251,
829 OPT_check_event_parsing = 252, 830 OPT_check_event_parsing = 252,
830 OPT_kallsyms = 253, 831 OPT_kallsyms = 253,
831 OPT_events = 254, 832 OPT_events = 254,
@@ -847,6 +848,7 @@ void trace_report (int argc, char **argv)
847 int show_events = 0; 848 int show_events = 0;
848 int print_events = 0; 849 int print_events = 0;
849 int test_filters = 0; 850 int test_filters = 0;
851 int no_date = 0;
850 int raw = 0; 852 int raw = 0;
851 int neg = 0; 853 int neg = 0;
852 int ret = 0; 854 int ret = 0;
@@ -873,6 +875,7 @@ void trace_report (int argc, char **argv)
873 {"kallsyms", required_argument, NULL, OPT_kallsyms}, 875 {"kallsyms", required_argument, NULL, OPT_kallsyms},
874 {"check-events", no_argument, NULL, 876 {"check-events", no_argument, NULL,
875 OPT_check_event_parsing}, 877 OPT_check_event_parsing},
878 {"nodate", no_argument, NULL, OPT_nodate},
876 {"help", no_argument, NULL, '?'}, 879 {"help", no_argument, NULL, '?'},
877 {NULL, 0, NULL, 0} 880 {NULL, 0, NULL, 0}
878 }; 881 };
@@ -956,6 +959,9 @@ void trace_report (int argc, char **argv)
956 case OPT_check_event_parsing: 959 case OPT_check_event_parsing:
957 check_event_parsing = 1; 960 check_event_parsing = 1;
958 break; 961 break;
962 case OPT_nodate:
963 no_date = 1;
964 break;
959 default: 965 default:
960 usage(argv); 966 usage(argv);
961 } 967 }
@@ -981,6 +987,9 @@ void trace_report (int argc, char **argv)
981 die("error reading header for %s", inputs->file); 987 die("error reading header for %s", inputs->file);
982 add_handle(handle, inputs->file); 988 add_handle(handle, inputs->file);
983 989
990 if (no_date)
991 tracecmd_set_flag(handle, TRACECMD_FL_IGNORE_DATE);
992
984 page_size = tracecmd_page_size(handle); 993 page_size = tracecmd_page_size(handle);
985 994
986 if (show_page_size) { 995 if (show_page_size) {