1. 03 8月, 2016 1 次提交
  2. 12 4月, 2016 1 次提交
  3. 23 3月, 2016 1 次提交
  4. 20 2月, 2016 2 次提交
    • A
      perf test: Reduce the sample_freq for the 'object code reading' test · 5243ba76
      Arnaldo Carvalho de Melo 提交于
      Using 4 kHz is not necessary and sometimes is more than what was
      auto-tuned:
      
        # dmesg | grep max_sample_rate | tail -2
        [ 2499.144373] perf interrupt took too long (2501 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
        [ 3592.413606] perf interrupt took too long (5069 > 5000), lowering kernel.perf_event_max_sample_rate to 25000
      
      Simulating a auto-tune of 2000 we make the test fail, as reported
      by Steven Noonan for one of his machines, so reduce it to 500 HZ,
      it is enough to get a good number of samples for this test:
      
        # perf test -v 21 2>&1  | grep '^Reading object code for memory address' | tee /tmp/out | tail -5
        Reading object code for memory address: 0x479f40
        Reading object code for memory address: 0x7f29b7eea80d
        Reading object code for memory address: 0x7f29b7eea80d
        Reading object code for memory address: 0x7f29b7eea800
        Reading object code for memory address: 0xffffffff813b2f23
        [root@jouet ~]# wc -l /tmp/out
        40 /tmp/out
        [root@jouet ~]#
      
      For systems that auto-tune below that, the previous patches will tell the
      user what is happening so that he may either ignore the result of this test or
      bump /proc/sys/kernel/perf_event_max_sample_rate.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Steven Noonan <steven@uplinklabs.net>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-6kufyy1iprdfzrbtuqgxir70@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5243ba76
    • A
      perf tests: Use perf_evlist__strerror_open() to provide hints about max_freq · 6880bbf9
      Arnaldo Carvalho de Melo 提交于
      Before:
      
        # perf test -v "code reading" 2>&1 | tail -4
        perf_evlist__open failed
        test child finished with -1
        ---- end ----
        Test object code reading: FAILED!
        #
      
      After:
      
        # perf test -v "code reading" 2>&1 | tail -7
        perf_evlist__open() failed!
        Error: Invalid argument.
        Hint:  Check /proc/sys/kernel/perf_event_max_sample_rate.
        Hint:  The current value is 1000 and 4000 is being requested.
        test child finished with -1
        ---- end ----
        Test object code reading: FAILED!
        #
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Steven Noonan <steven@uplinklabs.net>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-ifbx7vmrc38loe6317owz2jx@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6880bbf9
  5. 08 12月, 2015 2 次提交
  6. 20 11月, 2015 1 次提交
    • A
      perf tests: Pass the subtest index to each test routine · 721a1f53
      Arnaldo Carvalho de Melo 提交于
      Some tests have sub-tests we want to run, so allow passing this.
      
      Wang tried to avoid having to touch all tests, but then, having the
      test.func in an anonymous union makes the build fail on older compilers,
      like the one in RHEL6, where:
      
        test a = {
      	.func = foo,
        };
      
      fails.
      
      To fix it leave the func pointer in the main structure and pass the subtest
      index to all tests, end result function is the same, but we have just one
      function pointer, not two, with and without the subtest index as an argument.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-5genj0ficwdmelpoqlds0u4y@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      721a1f53
  7. 03 11月, 2015 1 次提交
  8. 01 10月, 2015 2 次提交
  9. 14 9月, 2015 4 次提交
  10. 26 6月, 2015 2 次提交
  11. 20 6月, 2015 1 次提交
  12. 09 5月, 2015 1 次提交
    • A
      perf machine: Protect the machine->threads with a rwlock · b91fc39f
      Arnaldo Carvalho de Melo 提交于
      In addition to using refcounts for the struct thread lifetime
      management, we need to protect access to machine->threads from
      concurrent access.
      
      That happens in 'perf top', where a thread processes events, inserting
      and deleting entries from that rb_tree while another thread decays
      hist_entries, that end up dropping references and ultimately deleting
      threads from the rb_tree and releasing its resources when no further
      hist_entry (or other data structures, like in 'perf sched') references
      it.
      
      So the rule is the same for refcounts + protected trees in the kernel,
      get the tree lock, find object, bump the refcount, drop the tree lock,
      return, use object, drop the refcount if no more use of it is needed,
      keep it if storing it in some other data structure, drop when releasing
      that data structure.
      
      I.e. pair "t = machine__find(new)_thread()" with a "thread__put(t)", and
      "perf_event__preprocess_sample(&al)" with "addr_location__put(&al)".
      
      The addr_location__put() one is because as we return references to
      several data structures, we may end up adding more reference counting
      for the other data structures and then we'll drop it at
      addr_location__put() time.
      Acked-by: NDavid Ahern <dsahern@gmail.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-bs9rt4n0jw3hi9f3zxyy3xln@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b91fc39f
  13. 29 4月, 2015 1 次提交
    • J
      perf tools: Add parse_events_error interface · b39b8393
      Jiri Olsa 提交于
      Adding support to return error information from parse_events function.
      Following struct will be populated by parse_events function on return:
      
        struct parse_events_error {
          int   idx;
          char *str;
          char *help;
        };
      
      where 'idx' is the position in the string where the parsing failed,
      'str' contains dynamically allocated error string describing the error
      and 'help' is optional help string.
      
      The change contains reporting function, which currently does not display
      anything. The code changes to supply error data for specific event types
      are coming in next patches. However this is what the expected output is:
      
        $ sudo perf record -e 'sched:krava' ls
        event syntax error: 'sched:krava'
                             \___ unknown tracepoint
        ...
      
        $ perf record -e 'cpu/even=0x1/' ls
        event syntax error: 'cpu/even=0x1/'
                                 \___ unknown term
      
        valid terms: pc,any,inv,edge,cmask,event,in_tx,ldlat,umask,in_tx_cp,offcore_rsp,config,config1,config2,name,period,branch_type
        ...
      
        $ perf record -e cycles,cache-mises ls
        event syntax error: '..es,cache-mises'
                                       \___ parser error
        ...
      
      The output functions cut the beginning of the event string so the error
      starts up to 10th character and cut the end of the string of it crosses
      the terminal width.
      Signed-off-by: NJiri Olsa <jolsa@kernel.org>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Link: http://lkml.kernel.org/r/1429729824-13932-2-git-send-email-jolsa@kernel.org
      [ Renamed 'error' variables to 'err', not to clash with util.h error() ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      b39b8393
  14. 29 10月, 2014 2 次提交
  15. 12 5月, 2014 1 次提交
  16. 02 5月, 2014 1 次提交
  17. 15 4月, 2014 1 次提交
  18. 13 1月, 2014 3 次提交
  19. 20 12月, 2013 1 次提交
  20. 13 11月, 2013 1 次提交
  21. 12 11月, 2013 1 次提交
  22. 04 11月, 2013 1 次提交
  23. 29 10月, 2013 1 次提交
  24. 29 8月, 2013 1 次提交
  25. 14 8月, 2013 1 次提交
  26. 12 8月, 2013 1 次提交
  27. 08 8月, 2013 3 次提交