1. 31 3月, 2016 1 次提交
  2. 30 3月, 2016 1 次提交
    • A
      perf tools: Add missing initialization of perf_sample.cpumode in synthesized samples · 3ea223ad
      Arnaldo Carvalho de Melo 提交于
      In 473398a2 ("perf tools: Add cpumode to struct perf_sample"), I
      missed some places where perf_sample fields are directly initialized in
      addition to what is done in perf_evsel__parse_sample(), namely when
      synthesizing PERF_RECORD_{MMAP*,COMM,FORK,EXIT} for pre-existing threads
      and also in intel_pt and intel_bts when synthesizing events from
      processor trace, the jitdump code also was affected, fix it.
      
      The problem was noticed with running:
      
        # perf record -e intel_pt//u true
        # perf script
      
      Where the samples wouldn't get resolved because perf_sample.cpumode
      would be left as zero, i.e. PERF_RECORD_MISC_CPUMODE_UNKNOWN, not
      resolving as kernel, hypervisor or user cpu modes.
      
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Fixes: 473398a2 ("perf tools: Add cpumode to struct perf_sample")
      Link: http://lkml.kernel.org/n/tip-n5sdauxgk24d5nun8kuuu2mh@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      3ea223ad
  3. 24 3月, 2016 7 次提交
  4. 23 3月, 2016 6 次提交
  5. 19 3月, 2016 1 次提交
  6. 12 3月, 2016 1 次提交
    • S
      perf test: Remove 'core_id' check in topo test · 4c9d6c18
      Sukadev Bhattiprolu 提交于
      The topology test case of 'perf test' seems to be broken on my x86
      system - due to the comparison of a "core-id" with # of CPUs online.
      
      There are 8 online CPUs:
      
      	$ cat /sys/devices/system/cpu/online
      	0-7
      
      but core-ids are not sequential and some core-ids exceed the number
      of online CPUs.
      
      	$ cat /sys/devices/system/cpu/cpu?/topology/core_id
      	0
      	1
      	9
      	10
      	0
      	1
      	9
      	10
      
      Looks like we can safely remove the check.  Output before:
      
      	$ perf --version
      	perf version 4.4.rc1.g34258a
      
      	$ perf test -v topo
      	36: Test topology in session                                 :
      	--- start ---
      	test child forked, pid 5906
      	templ file: /tmp/perf-test-vCwWG3
      	core_id number is too big.You may need to upgrade the perf tool.
      	test child interrupted
      	---- end ----
      	Test topology in session: FAILED!
      
      and after:
      
      	$ perf test -v topo
      	36: Test topology in session                                 :
      	--- start ---
      	test child forked, pid 6532
      	templ file: /tmp/perf-test-y10wFJ
      	CPU 0, core 0, socket 0
      	CPU 1, core 1, socket 0
      	CPU 2, core 9, socket 0
      	CPU 3, core 10, socket 0
      	CPU 4, core 0, socket 1
      	CPU 5, core 1, socket 1
      	CPU 6, core 9, socket 1
      	CPU 7, core 10, socket 1
      	test child finished with 0
      	---- end ----
      	Test topology in session: Ok
      Signed-off-by: NSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Cc: Jan Stancek <jstancek@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kan Liang <kan.liang@intel.com>
      Link: http://lkml.kernel.org/r/20151203233219.GA27696@us.ibm.comSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      4c9d6c18
  7. 11 3月, 2016 8 次提交
  8. 09 3月, 2016 4 次提交
  9. 08 3月, 2016 10 次提交
  10. 03 3月, 2016 1 次提交
    • J
      x86/asm/decoder: Use explicitly signed chars · 19072f23
      Josh Poimboeuf 提交于
      When running objtool on a ppc64le host to analyze x86 binaries, it
      reports a lot of false warnings like:
      
        ipc/compat_mq.o: warning: objtool: compat_SyS_mq_open()+0x91: can't find jump dest instruction at .text+0x3a5
      
      The warnings are caused by the x86 instruction decoder setting the wrong
      value for the jump instruction's immediate field because it assumes that
      "char == signed char", which isn't true for all architectures.  When
      converting char to int, gcc sign-extends on x86 but doesn't sign-extend
      on ppc64le.
      
      According to the gcc man page, that's a feature, not a bug:
      
        > Each kind of machine has a default for what "char" should be.  It is
        > either like "unsigned char" by default or like "signed char" by
        > default.
        >
        > Ideally, a portable program should always use "signed char" or
        > "unsigned char" when it depends on the signedness of an object.
      
      Conform to the "standards" by changing the "char" casts to "signed
      char".  This results in no actual changes to the object code on x86.
      
      Note: the x86 decoder now lives in three different locations in the
      kernel tree, which are all kept in sync via makefile checks and
      warnings: in-kernel, perf, and objtool.  This fixes all three locations.
      Eventually we should probably try to at least converge the two separate
      "tools" locations into a single shared location.
      Signed-off-by: NJosh Poimboeuf <jpoimboe@redhat.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/9dd4161719b20e6def9564646d68bfbe498c549f.1456962210.git.jpoimboe@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      19072f23