1. 20 9月, 2013 2 次提交
  2. 13 9月, 2013 7 次提交
  3. 12 9月, 2013 4 次提交
    • S
      perf/x86: Fix uncore PCI fixed counter handling · dbc33f70
      Stephane Eranian 提交于
      There was a bug in the handling of SNB-EP/IVB-EP uncore PCI
      fixed counters, e.g., IMC.
      
      It would cause erratic values to be returned for the IMC
      clockticks event. This was due to a bogus hwc->config value
      which was then written to PCI config space.
      
      The erratic values can be seen via:
      
        $ perf stat -a -C 0 -e uncore_imc_0/clockticks/ -I 1000 sleep 10
      
      The fixed counter has most fields marked as reserved with
      hw reset values of 0. Yet the kernel was defaulting to a
      hwc->config = ~0 and that was causing the issues.
      
      This patch sets the hwc->config values for fixed uncore event
      to 0. Now, the values of IMC clockticks is correct.
      Signed-off-by: NStephane Eranian <eranian@google.com>
      Reviewed-by: NAndi Kleen <ak@linux.intel.com>
      Cc: peterz@infradead.org
      Cc: zheng.z.yan@intel.com
      Link: http://lkml.kernel.org/r/20130909195350.GA17643@google.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      dbc33f70
    • O
      uprobes: Fix utask->depth accounting in handle_trampoline() · 878b5a6e
      Oleg Nesterov 提交于
      Currently utask->depth is simply the number of allocated/pending
      return_instance's in uprobe_task->return_instances list.
      
      handle_trampoline() should decrement this counter every time we
      handle/free an instance, but due to typo it does this only if
      ->chained == T. This means that in the likely case this counter
      is never decremented and the probed task can't report more than
      MAX_URETPROBE_DEPTH events.
      Reported-by: NMikhail Kulemin <Mikhail.Kulemin@ru.ibm.com>
      Reported-by: NHemant Kumar Shaw <hkshaw@linux.vnet.ibm.com>
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Acked-by: NAnton Arapov <anton@redhat.com>
      Cc: masami.hiramatsu.pt@hitachi.com
      Cc: srikar@linux.vnet.ibm.com
      Cc: systemtap@sourceware.org
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/20130911154726.GA8093@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      878b5a6e
    • S
      perf/x86: Add constraint for IVB CYCLE_ACTIVITY:CYCLES_LDM_PENDING · 6113af14
      Stephane Eranian 提交于
      The IvyBridge event CYCLE_ACTIVITY:CYCLES_LDM_PENDING can only
      be measured on counters 0-3 when HT is off. When HT is on, you
      only have counters 0-3.
      
      If you program it on the eight counters for 1s on a 3GHz
      IVB laptop running a noploop, you see:
      
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
                 2 747 527 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
             3 280 563 608 CYCLE_ACTIVITY:CYCLES_LDM_PENDING
      
      Clearly the last 4 values are bogus.
      Signed-off-by: NStephane Eranian <eranian@google.com>
      Cc: peterz@infradead.org
      Cc: ak@linux.intel.com
      Cc: zheng.z.yan@intel.com
      Cc: dhsharp@google.com
      Link: http://lkml.kernel.org/r/20130911152222.GA28761@google.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      6113af14
    • I
      Merge tag 'perf-urgent-for-mingo' of... · e6d38183
      Ingo Molnar 提交于
      Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/urgent fixes from Arnaldo Carvalho de Melo:
      
       * Handle perf.data files with no tracepoints in 'perf trace', fixing a
         segfault.
      
       * Fix up MMAP2 buffer space reservation, a problem that was caught via
         'perf test' consistency tests.
      
       * Add attr->mmap2 support in the tools, a patch that should've been merged
         together with the kernel counterpart:
      
           13d7a241 "perf: Add attr->mmap2 attribute to an event".
      
         Merging it allowed us to catch the MMAP buffer space reservation problem via
         'perf test'. From Stephane Eranian.
      
         The tools deals with older kernels by disabling this feature, resetting the
         perf_event_attr.mmap2 bit, when -EINVAL is returned by perf_event_open, just
         like with perf_event_attr.{sample_id_all,exclude_{guest,host}}.
      
         When such fallback happens the perf_missing_features.mmap2 flag is set to
         true and can be used by tooling that strictly needs this feature to check
         for its availability on the running kernel.
      
       * Make sure we can find PERF_SAMPLE_ID in the variable part of PERF_RECORD_
         ring buffer records in 'perf kvm', where direct manipulation of sample_type
         was being done.
      
         Fixed by making use of the perf_evlist__set_sample_bit() helper and by
         setting the evlist->id_pos in perf_evlist__open(), from Adrian Hunter.
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      e6d38183
  4. 11 9月, 2013 2 次提交
    • A
      perf: Fix up MMAP2 buffer space reservation · d008d525
      Arnaldo Carvalho de Melo 提交于
      The ino_generation field was added in the PERF_RECORD_MMAP2 record in
      the 13d7a241 cset but no space for it was allocated, corrupting the
      PERF_FORMAT_{TIME,CPU,TID,etc} area (sample_type/sample_id_all), fix it.
      
      Detected with one of the regression tests done by 'perf test':
      
        [root@sandy ~]# perf test -v 7
         7: Validate PERF_RECORD_* events & perf_sample fields     :
        --- start ---
        61315294449606 0 PERF_RECORD_SAMPLE
        61315294453161 0 PERF_RECORD_SAMPLE
        61315294454441 0 PERF_RECORD_SAMPLE
        61315294455709 0 PERF_RECORD_SAMPLE
        61315295600899 0 PERF_RECORD_COMM: sleep:6500
        27917287430500 342521613 PERF_RECORD_MMAP2 6500/6500: [0x400000(0x7000) @ 0 00:1d 311442 9016]: /usr/bin/sleep
        MMAP2 going backwards in time, prev=61315295600899, curr=27917287430500
        MMAP2 with unexpected cpu, expected 0, got 342521613
        MMAP2 with unexpected pid, expected 6500, got 1701606191
        MMAP2 with unexpected tid, expected 6500, got 28773
        27917287430500 342561333 PERF_RECORD_MMAP2 6500/6500: [0x3b7e000000(0x223000) @ 0 00:1d 309186 9016]: /usr/lib64/ld-2.16.so
        MMAP2 with unexpected cpu, expected 0, got 342561333
        MMAP2 with unexpected pid, expected 6500, got 1932408369
        MMAP2 with unexpected tid, expected 6500, got 111
        27917287430500 342600095 PERF_RECORD_MMAP2 6500/6500: [0x7fffbd7dc000(0x1000) @ 0x7fffbd7dc000 00:00 0 0]: [vdso]
        MMAP2 with unexpected cpu, expected 0, got 342600095
        MMAP2 with unexpected pid, expected 6500, got 1935963739
        MMAP2 with unexpected tid, expected 6500, got 23919
        27917287430500 342882834 PERF_RECORD_MMAP2 6500/6500: [0x3b7e400000(0x3b8000) @ 0 00:1d 309187 9016]: /usr/lib64/libc-2.16.so
        MMAP2 with unexpected cpu, expected 0, got 342882834
        MMAP2 with unexpected pid, expected 6500, got 909192754
        MMAP2 with unexpected tid, expected 6500, got 7303982
        61316297195411 0 PERF_RECORD_EXIT(6500:6500):(6500:6500)
        ---- end ----
        Validate PERF_RECORD_* events & perf_sample fields: FAILED!
        [root@sandy ~]#
      
      After this patch:
      
        [root@sandy ~]# perf test 7
         7: Validate PERF_RECORD_* events & perf_sample fields     : Ok
        [root@sandy ~]#
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      Acked-by: NStephane Eranian <eranian@google.com>
      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: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-heeuv986b8ha7whqg4o3he7c@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      d008d525
    • S
      perf tools: Add attr->mmap2 support · 5c5e854b
      Stephane Eranian 提交于
      This patch adds support for the new PERF_RECORD_MMAP2 record type
      exposed by the kernel. This is an extended PERF_RECORD_MMAP record.
      
      It adds for each file-backed mapping the device major, minor number and
      the inode number and generation.
      
      This triplet uniquely identifies the source of a file-backed mapping. It
      can be used to detect identical virtual mappings between processes, for
      instance.
      
      The patch will prefer MMAP2 over MMAP.
      Signed-off-by: NStephane Eranian <eranian@google.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung.kim@lge.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1377079825-19057-3-git-send-email-eranian@google.com
      [ Cope with 314add6b "Change machine__findnew_thread() to set thread pid",
        fix 'perf test' regression test entry affected,
        use perf_missing_features.mmap2 to fallback to not using .mmap2 in older kernels,
        so that new tools can work with kernels where this feature is not present ]
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      5c5e854b
  5. 10 9月, 2013 3 次提交
  6. 06 9月, 2013 7 次提交
  7. 05 9月, 2013 11 次提交
  8. 04 9月, 2013 4 次提交
    • L
      Merge branch 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2a475501
      Linus Torvalds 提交于
      Pull x86/asmlinkage changes from Ingo Molnar:
       "As a preparation for Andi Kleen's LTO patchset (link time
        optimizations using GCC's -flto which build time optimization has
        steadily increased in quality over the past few years and might
        eventually be usable for the kernel too) this tree includes a handful
        of preparatory patches that make function calling convention
        annotations consistent again:
      
         - Mark every function without arguments (or 64bit only) that is used
           by assembly code with asmlinkage()
      
         - Mark every function with parameters or variables that is used by
           assembly code as __visible.
      
        For the vanilla kernel this has documentation, consistency and
        debuggability advantages, for the time being"
      
      * 'x86-asmlinkage-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asmlinkage: Fix warning in xen asmlinkage change
        x86, asmlinkage, vdso: Mark vdso variables __visible
        x86, asmlinkage, power: Make various symbols used by the suspend asm code visible
        x86, asmlinkage: Make dump_stack visible
        x86, asmlinkage: Make 64bit checksum functions visible
        x86, asmlinkage, paravirt: Add __visible/asmlinkage to xen paravirt ops
        x86, asmlinkage, apm: Make APM data structure used from assembler visible
        x86, asmlinkage: Make syscall tables visible
        x86, asmlinkage: Make several variables used from assembler/linker script visible
        x86, asmlinkage: Make kprobes code visible and fix assembler code
        x86, asmlinkage: Make various syscalls asmlinkage
        x86, asmlinkage: Make 32bit/64bit __switch_to visible
        x86, asmlinkage: Make _*_start_kernel visible
        x86, asmlinkage: Make all interrupt handlers asmlinkage / __visible
        x86, asmlinkage: Change dotraplinkage into __visible on 32bit
        x86: Fix sys_call_table type in asm/syscall.h
      2a475501
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3d7e5fc3
      Linus Torvalds 提交于
      Pull x86/asm changes from Ingo Molnar:
       "Main changes:
      
         - Apply low level mutex optimization on x86-64, by Wedson Almeida
           Filho.
      
         - Change bitops to be naturally 'long', by H Peter Anvin.
      
         - Add TSX-NI opcodes support to the x86 (instrumentation) decoder, by
           Masami Hiramatsu.
      
         - Add clang compatibility adjustments/workarounds, by Jan-Simon
           Möller"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, doc: Update uaccess.h comment to reflect clang changes
        x86, asm: Fix a compilation issue with clang
        x86, asm: Extend definitions of _ASM_* with a raw format
        x86, insn: Add new opcodes as of June, 2013
        x86/ia32/asm: Remove unused argument in macro
        x86, bitops: Change bitops to be native operand size
        x86: Use asm-goto to implement mutex fast path on x86-64
      3d7e5fc3
    • L
      Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6924a467
      Linus Torvalds 提交于
      Pull x86/apic changes from Ingo Molnar:
       "Smaller fixes"
      
      * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ioapic: Check attr against the previous setting when programmed more than once
        x86/ioapic/kcrash: Prevent crash_kexec() from deadlocking on ioapic_lock
        x86/acpi: Fix incorrect sanity check in acpi_register_lapic()
      6924a467
    • L
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ac3c1c4f
      Linus Torvalds 提交于
      Pull timer changes from Ingo Molnar:
       "Various clocksource driver updates: extend the core with memory mapped
        hardware (mmio) support and add new (ARM) Moxart SoC and sun4i
        hardware support"
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        clocksource: arch_timer: Add support for memory mapped timers
        clocksource: arch_timer: Push the read/write wrappers deeper
        Documentation: Add memory mapped ARM architected timer binding
        clocksource: arch_timer: Pass clock event to set_mode callback
        clocksource: arch_timer: Make register accessors less error-prone
        ARM: clocksource: moxart: documentation: Update device tree bindings document
        ARM: clocksource: moxart: Add bitops.h include
        ARM: clocksource: moxart: documentation: Fix device tree bindings document
        ARM: clocksource: Add support for MOXA ART SoCs
        clocksource: cadence_ttc: Reuse clocksource as sched_clock
        clocksource: cadence_ttc: Remove unused header
        clocksource: sun4i: Fix bug when switching from periodic to oneshot modes
        clocksource: sun4i: Cleanup parent clock setup
        clocksource: sun4i: Remove TIMER_SCAL variable
        clocksource: sun4i: Factor out some timer code
        clocksource: sun4i: Fix the next event code
        clocksource: sun4i: Don't forget to enable the clock we use
        clocksource: sun4i: Add clocksource and sched clock drivers
        clocksource: sun4i: rename AUTORELOAD define to RELOAD
        clocksource: sun4i: Wrap macros arguments in parenthesis
        ...
      ac3c1c4f