1. 24 4月, 2015 1 次提交
  2. 08 4月, 2015 1 次提交
    • N
      tools lib traceevent: Honor operator priority · 3201f0dc
      Namhyung Kim 提交于
      Currently it ignores operator priority and just sets processed args as a
      right operand.  But it could result in priority inversion in case that
      the right operand is also a operator arg and its priority is lower.
      
      For example, following print format is from new kmem events.
      
        "page=%p", REC->pfn != -1UL ? (((struct page *)(0xffffea0000000000UL)) + (REC->pfn)) : ((void *)0)
      
      But this was treated as below:
      
        REC->pfn != ((null - 1UL) ? ((struct page *)0xffffea0000000000UL + REC->pfn) : (void *) 0)
      
      In this case, the right arg was '?' operator which has lower priority.
      But it just sets the whole arg so making the output confusing - page was
      always 0 or 1 since that's the result of logical operation.
      
      With this patch, it can handle it properly like following:
      
        ((REC->pfn != (null - 1UL)) ? ((struct page *)0xffffea0000000000UL + REC->pfn) : (void *) 0)
      Signed-off-by: NNamhyung Kim <namhyung@kernel.org>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Joonsoo Kim <js1304@gmail.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: linux-mm@kvack.org
      Link: http://lkml.kernel.org/r/1428298576-9785-10-git-send-email-namhyung@kernel.org
      [ Replaced 'swap' with 'rotate' in a comment as requested by Steve and agreed by Namhyung ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3201f0dc
  3. 26 3月, 2015 1 次提交
  4. 24 3月, 2015 6 次提交
  5. 22 3月, 2015 1 次提交
  6. 26 1月, 2015 1 次提交
  7. 27 6月, 2014 1 次提交
  8. 08 6月, 2014 1 次提交
  9. 23 4月, 2014 1 次提交
  10. 14 4月, 2014 2 次提交
  11. 17 1月, 2014 2 次提交
  12. 19 12月, 2013 1 次提交
  13. 06 12月, 2013 1 次提交
    • S
      tools lib traceevent: Report better error message on bad function args · 3a3ffa2e
      Steven Rostedt 提交于
      When Jiri Olsa was writing a function callback for
      scsi_trace_parse_cdb(), he thought that the traceevent library had a
      bug in it because he was getting this error:
      
        Error: expected ')' but read ','
        Error: expected ')' but read ','
        Error: expected ')' but read ','
        Error: expected ')' but read ','
      
      But in truth, he didn't have the write number of arguments for the
      function callback, and the error was the library detecting the
      discrepancy. A better error message would have prevented the confusion:
      
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_timeout has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_start has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_error has more
        Error: function 'scsi_trace_parse_cdb()' only expects 2 arguments but event scsi_dispatch_cmd_done has more
      
      Or
      
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_timeout only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_start only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_error only uses 3
        Error: function 'scsi_trace_parse_cdb()' expects 4 arguments but event scsi_dispatch_cmd_done only uses 3
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/n/tip-a4c34w62vl0diitvxb7bt3er@git.kernel.orgSigned-off-by: NJiri Olsa <jolsa@redhat.com>
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3a3ffa2e
  14. 05 12月, 2013 1 次提交
  15. 28 11月, 2013 1 次提交
    • S
      tools lib traceevent: Use helper trace-seq in print functions like kernel does · 12e55569
      Steven Rostedt 提交于
      Jiri Olsa reported that his plugin for scsi was chopping off part of the
      output. Investigating this, I found that Jiri used the same functions as
      what is in the kernel, which adds the following:
      
      	trace_seq_putc(p, 0);
      
      This adds a '\0' to the output string. The reason this works in the
      kernel is that the "p" that is passed to the function helper is a
      temporary trace_seq. But in the libtraceevent library, it's the pointer
      to the trace_seq used to output. By adding the '\0', it truncates the
      line and nothing added after that will be printed.
      
      We can solve this in two ways. One is to have the helper functions for
      the library not add the unnecessary '\0'. The other is to change the
      library to also use a helper trace_seq structure that gets copied to the
      main trace_seq just like the kernel does.
      
      The latter allows the helper functions in the plugins to be the same as
      the kernel, which is the better solution.
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Reported-by: NJiri Olsa <jolsa@redhat.com>
      Tested-by: NJiri Olsa <jolsa@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Link: http://lkml.kernel.org/r/20131119182937.401668e3@gandalf.local.homeSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      12e55569
  16. 20 11月, 2013 1 次提交
    • A
      tools lib traceevent: Fix conversion of pointer to integer of different size · 6b5fa0ba
      Arnaldo Carvalho de Melo 提交于
      gcc complaint on 32-bit system:
      
        /home/acme/git/linux/tools/lib/traceevent/event-parse.c: In function ‘eval_num_arg’:
        /home/acme/git/linux/tools/lib/traceevent/event-parse.c:3468:9: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      
      This is because the eval_num_arg returns everything as an 'unsigned long long',
      so it converts a void pointer to a wider integer, fix it by converting the void
      pointer to an integer of the same size, 'unsigned long', before casting it to
      'unsigned long long'.
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-yllx4aqcg06v5n4vjpwiiuld@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6b5fa0ba
  17. 19 11月, 2013 1 次提交
  18. 13 11月, 2013 1 次提交
  19. 05 11月, 2013 8 次提交
  20. 13 7月, 2013 1 次提交
  21. 25 1月, 2013 5 次提交
  22. 10 11月, 2012 1 次提交
    • A
      tools lib traceevent: Use 'const' in variables pointing to const strings · 27f94d52
      Arnaldo Carvalho de Melo 提交于
      Fixing the build on fedora 14, 32-bit:
      
        tools/lib/traceevent/event-parse.c: In function ‘find_cmdline’:
        tools/lib/traceevent/event-parse.c:183:3: error: return discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c:186:3: error: return discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c:195:2: error: return discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c: In function ‘process_func_handler’:
        tools/lib/traceevent/event-parse.c:2658:9: error: assignment discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c:2660:9: error: assignment discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c: In function ‘print_mac_arg’:
        tools/lib/traceevent/event-parse.c:3892:14: error: initialization discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c:3906:7: error: assignment discards qualifiers from pointer target type
        tools/lib/traceevent/event-parse.c: In function ‘pevent_print_event’:
        tools/lib/traceevent/event-parse.c:4412:24: error: initialization discards qualifiers from pointer target type
      
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Mike Galbraith <efault@gmx.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/n/tip-0k5g8urwu7vwkgbcbt2x05fe@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      27f94d52