1. 18 Dec, 2014 1 commit
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-2' of... · 6aaba7c9
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      User visible changes:
      
      - The mmap address range for the ring buffer now is calculated using the
        contents of /proc/sys/kernel/perf_event_mlock_kb.
      
        This fixes an -EPERM case where 'trace' was trying to use more than what
        is configured on perf_event_mlock_kb. (Arnaldo Carvalho de Melo)
      
      Infrastructure changes:
      
      - Move bitops definitions so that they match the header file hierarchy
        in the kernel sources where that code came from. (Arnaldo Carvalho de Melo)
      
      - Adopt round{down,up}_pow_of_two from the kernel and use it instead of
        equivalent code, so that we reuse more kernel code and make tools/ look
        more like kernel source code, to encourage further contributions from
        kernel hackers (Arnaldo Carvalho de Melo)
      
      - Fix use after free in filename__read_build_id (Mitchell Krome)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      6aaba7c9
  2. 17 Dec, 2014 13 commits
  3. 16 Dec, 2014 5 commits
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Do not use hard coded value for a mmap_pages default · 8185e881
      Arnaldo Carvalho de Melo authored
      So far what is in there by default is what we were using: 512KB + the
      control page, but the admin may change that, and if it does to a smaller
      value, all calls to tooling for non root users start failing, requiring
      that the user manually set --mmap_pages/-m.
      
      Use instead what is in /proc/sys/kernel/perf_event_mlock_kb.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-2f6mtm8xu3wo5lhkql6jdblh@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8185e881
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Let the perf_evlist__mmap autosize the number of pages to use · 38d5447d
      Arnaldo Carvalho de Melo authored
      So that normal users can run 'trace', we were using a hardcoded 1024
      pages value that was more than the default /proc/sys/kernel/perf_event_mlock_kb
      setting.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-3banj3yh0sjz41obxtgiel3a@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      38d5447d
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Improve the strerror_mmap method · e965bea1
      Arnaldo Carvalho de Melo authored
      Considering the per user locked pages limit, improve the message when a
      user uses multiple simultaneous perf mmap calls:
      
      When the request is more than the current maximum:
      
        [acme@ssdandy linux]$ trace -m 128 usleep 1
        Error: Operation not permitted.
        Hint:  Check /proc/sys/kernel/perf_event_mlock_kb (516 kB) setting.
        Hint:  Tried using 516 kB.
        Hint:  Try 'sudo sh -c "echo 1032 > /proc/sys/kernel/perf_event_mlock_kb"', or
        Hint:  Try using a smaller -m/--mmap-pages value.
        [acme@ssdandy linux]$
      
      And when the limit is less than that:
      
        [acme@ssdandy linux]$ trace -m 512 usleep 1
        Error: Operation not permitted.
        Hint:  Check /proc/sys/kernel/perf_event_mlock_kb (2056 kB) setting.
        Hint:  Tried using 2052 kB.
        Hint:  Try using a smaller -m/--mmap-pages value.
        [acme@ssdandy linux]$
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-yqdie3c8qvdgenwleri267d4@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e965bea1
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Clarify sterror_mmap variable names · e5d4a290
      Arnaldo Carvalho de Melo authored
      Prep patch for doing further checks like when the number of pages that
      is being attempted is actually below /proc/sys/kernel/perf_event_mlock_kb but
      the operation fails because the user doesn't have CAP_IPC_LOCK.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-wetzlux7mzvofu5cuji5i71i@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e5d4a290
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Fixup brown paper bag on "hint" for --mmap-pages cmdline arg · 0a2138b2
      Arnaldo Carvalho de Melo authored
      When failing due to asking for a number of mmap pages that is more than
      the max, it was suggesting that an even bigger number of mmap pages
      should be specified, doh, au contraire!
      
      Before:
      
        [acme@ssdandy linux]$ trace -m 128 usleep 1
        Error:	Operation not permitted.
        Hint:	Check /proc/sys/kernel/perf_event_mlock_kb (516 kB) setting.
        Hint:	Tried using 516 kB.
        Hint:	Try using a bigger -m/--mmap-pages value.
        [acme@ssdandy linux]$
      
      After:
      
        [acme@ssdandy linux]$ trace -m 128 usleep 1
        Error:	Operation not permitted.
        Hint:	Check /proc/sys/kernel/perf_event_mlock_kb (516 kB) setting.
        Hint:	Tried using 516 kB.
        Hint:	Try using a smaller -m/--mmap-pages value.
        [acme@ssdandy linux]$
      
      And to (really) clarify what happens above, when what the user requests
      is <= max and even then it fails, a changeset is being made to tell that
      this is a per user limit, not per process (in the above example there
      was another 'perf trace' running for this user, which was using all the
      pages it could use).
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-8qope8lxb898narnq5kmu2gf@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      0a2138b2
  4. 12 Dec, 2014 2 commits
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · 41e950c0
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      User visible changes:
      
      - Mark events as (x86 only) in help output for 'perf kvm stat live" (Alexander Yarygin)
      
      - Provide a better explanation when mmap fails in 'trace' (Arnaldo Carvalho de Melo)
      
      - Add --buildid-dir option to set cache directory, i.e. use:
      
            $ perf --buildid-dir /path/to/dir tool --tool-options
      
        (Jiri Olsa)
      
      - Fix memcpy/memset 'perf bench' output (Rabin Vicent)
      
      - Fix 'perf test' attr tests size values to cope with machine state on
        interrupt ABI changes (Jiri Olsa)
      
      - Fixup callchain type parameter handling error message (Kan Liang)
      
      Infrastructure changes and cleanups:
      
      - calloc/xcalloc: Fix argument order (Arjun Sreedharan)
      
      - Move filename__read_int from tools/perf/ to tools/lib, add sysctl__read_int
        there and use it in place of ad-hoc copies (Arnaldo Carvalho de Melo)
      
      - Use single strcmp call instead of two (Jiri Olsa)
      
      - Remove extra debugdir variables in 'perf buildid-cache' (Jiri Olsa)
      
      - Fix -a segfault related to kcore handling in 'perf buildid-cache' (Jiri Olsa)
      
      - Move cpumode resolve code to add_callchain_ip (Kan Liang)
      
      - Merge memset into memcpy 'perf bench' (Rabin Vincent)
      
      - Change print format from %lu to %PRIu64 in the hists browser (Tom Huynh)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      41e950c0
    • Ingo Molnar's avatar
  5. 11 Dec, 2014 7 commits
    • Arnaldo Carvalho de Melo's avatar
      perf trace: Provide a better explanation when mmap fails · e09b18d4
      Arnaldo Carvalho de Melo authored
      If we ask for a mmap lenght than the max configured via the relevant
      sysctl, provide a better warning, instead of just expanding the EPERM
      returned:
      
      [acme@ssdandy ~]$ trace -m 256 -e nanosleep sleep 2
      Error:	Operation not permitted.
      Hint:	Check /proc/sys/kernel/perf_event_mlock_kb (516 kB) setting.
      Hint:	Tried using 1028 kB.
      Hint:	Try using a bigger -m/--mmap-pages value.
      
      [acme@ssdandy ~]$ trace -m 128 -e nanosleep sleep 2
        2001.280 (2000.403 ms): nanosleep(rqtp: 0x7fff89a8a7f0) = 0
      [acme@ssdandy ~]$
      
      An upcoming patch will autotune the request for non-root users when -m
      is not used.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-cdvxfz2gycetbkopm9sna1qp@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      e09b18d4
    • Arnaldo Carvalho de Melo's avatar
      perf evlist: Introduce strerror_mmap method · 956fa571
      Arnaldo Carvalho de Melo authored
      To pretty print hints about perf_evlist__mmap errors. Will be used in
      'trace' in the next patch.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-2g3gczfwyz0xt3we0s15mqqt@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      956fa571
    • Arnaldo Carvalho de Melo's avatar
      perf tools: Use sysctl__read_int instead of ad-hoc copies · ce27309f
      Arnaldo Carvalho de Melo authored
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-pt2u7a3b50oddggecx7rwq2n@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ce27309f
    • Arnaldo Carvalho de Melo's avatar
      tools lib fs: Add sysctl__read_int helper · 42e3c4a1
      Arnaldo Carvalho de Melo authored
      Will come in handy for tools, see next patches.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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-nay9j62ztxpytt4ew1tkl4op@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      42e3c4a1
    • Arnaldo Carvalho de Melo's avatar
      tools lib fs: Adopt filename__read_int from tools/perf/ · 3a351127
      Arnaldo Carvalho de Melo authored
      Will be useful for new helpers to read sysctl values.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.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>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      3a351127
    • Jiri Olsa's avatar
      perf: Fix events installation during moving group · 9fc81d87
      Jiri Olsa authored
      We allow PMU driver to change the cpu on which the event
      should be installed to. This happened in patch:
      
        e2d37cd2 ("perf: Allow the PMU driver to choose the CPU on which to install events")
      
      This patch also forces all the group members to follow
      the currently opened events cpu if the group happened
      to be moved.
      
      This and the change of event->cpu in perf_install_in_context()
      function introduced in:
      
        0cda4c02 ("perf: Introduce perf_pmu_migrate_context()")
      
      forces group members to change their event->cpu,
      if the currently-opened-event's PMU changed the cpu
      and there is a group move.
      
      Above behaviour causes problem for breakpoint events,
      which uses event->cpu to touch cpu specific data for
      breakpoints accounting. By changing event->cpu, some
      breakpoints slots were wrongly accounted for given
      cpu.
      
      Vinces's perf fuzzer hit this issue and caused following
      WARN on my setup:
      
         WARNING: CPU: 0 PID: 20214 at arch/x86/kernel/hw_breakpoint.c:119 arch_install_hw_breakpoint+0x142/0x150()
         Can't find any breakpoint slot
         [...]
      
      This patch changes the group moving code to keep the event's
      original cpu.
      Reported-by: default avatarVince Weaver <vince@deater.net>
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Vince Weaver <vince@deater.net>
      Cc: Yan, Zheng <zheng.z.yan@intel.com>
      Cc: <stable@vger.kernel.org>
      Link: http://lkml.kernel.org/r/1418243031-20367-3-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      9fc81d87
    • Jiri Olsa's avatar
      perf/x86/intel/uncore: Make sure only uncore events are collected · af91568e
      Jiri Olsa authored
      The uncore_collect_events functions assumes that event group
      might contain only uncore events which is wrong, because it
      might contain any type of events.
      
      This bug leads to uncore framework touching 'not' uncore events,
      which could end up all sorts of bugs.
      
      One was triggered by Vince's perf fuzzer, when the uncore code
      touched breakpoint event private event space as if it was uncore
      event and caused BUG:
      
         BUG: unable to handle kernel paging request at ffffffff82822068
         IP: [<ffffffff81020338>] uncore_assign_events+0x188/0x250
         ...
      
      The code in uncore_assign_events() function was looking for
      event->hw.idx data while the event was initialized as a
      breakpoint with different members in event->hw union.
      
      This patch forces uncore_collect_events() to collect only uncore
      events.
      Reported-by: default avatarVince Weaver <vince@deater.net>
      Signed-off-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Yan, Zheng <zheng.z.yan@intel.com>
      Cc: <stable@vger.kernel.org>
      Link: http://lkml.kernel.org/r/1418243031-20367-2-git-send-email-jolsa@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      af91568e
  6. 10 Dec, 2014 9 commits
    • Alexander Yarygin's avatar
      perf kvm stat live: Mark events as (x86 only) in help output · 99d348a8
      Alexander Yarygin authored
      The mmio and ioport events are useful only on x86.
      Signed-off-by: default avatarAlexander Yarygin <yarygin@linux.vnet.ibm.com>
      Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
      Cc: Christian Borntraeger <borntraeger@de.ibm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Link: http://lkml.kernel.org/r/1418218090-20718-1-git-send-email-borntraeger@de.ibm.comSigned-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      99d348a8
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bee2782f
      Linus Torvalds authored
      Pull leftover perf fixes from Ingo Molnar:
       "Two perf fixes left over from the previous cycle"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf session: Do not fail on processing out of order event
        x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and sync_regs
      bee2782f
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5706ffd0
      Linus Torvalds authored
      Pull perf events update from Ingo Molnar:
       "On the kernel side there's few changes, the one that stands out is
        PEBS machine state sampling support on x86, by Stephane Eranian.
      
        On the tooling side:
      
        User visible tooling changes:
      
         - Don't open the DWARF info multiple times, keeping instead a dwfl
           handle in struct dso, greatly speeding up 'perf report' on powerpc.
           (Sukadev Bhattiprolu)
      
         - Introduce PARSE_OPT_DISABLED option flag and use it to avoid
           showing undersired options in tools that provides frontends to
           'perf record', like sched, kvm, etc (Namhyung Kim)
      
         - Fallback to kallsyms when using the minimal 'ELF' loader (Arnaldo
           Carvalho de Melo)
      
         - Fix annotation with kcore (Adrian Hunter)
      
         - Support source line numbers in annotate using a hotkey (Andi Kleen)
      
         - Callchain improvements including:
           * Enable printing the srcline in the history
           * Make get_srcline fall back to sym+offset (Andi Kleen)
      
         - TUI hist_entry browser fixes, including showing missing overhead
           value for first level callchain.  Detected comparing the output of
           --stdio/--gui (that matched) with --tui, that had this problem.
           (Namhyung Kim)
      
         - Support handling complete branch stacks as histograms (Andi Kleen)
      
        Tooling infrastructure changes:
      
         - Prep work for supporting per-pkg and snapshot counters in 'perf
           stat' (Jiri Olsa)
      
         - 'perf stat' refactorings, moving stuff from it to evsel.c to use in
           per-pkg/snapshot format changes (Jiri Olsa)
      
         - Add per-pkg format file parsing (Matt Fleming)
      
         - Clean up libelf feature support code (Namhyung Kim)
      
         - Add gzip decompression support for kernel modules (Namhyung Kim)
      
         - More prep patches for Intel PT, including a a thread stack and more
           stuff made available via the database export mechanism (Adrian
           Hunter)
      
         - More Intel PT work, including a facility to export sample data
           (comms, threads, symbol names, etc) in a database friendly way,
           with an script to use this to create a postgresql database.
           (Adrian Hunter)
      
         - Make sure that thread->mg->machine points to the machine where the
           thread exists (it was being set only for the kmaps kernel modules
           case, do it as well for the mmaps) and use it to shorten function
           signatures (Arnaldo Carvalho de Melo)
      
        ... and lots of other fixes and smaller improvements"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (91 commits)
        perf report: In branch stack mode use address history sorting
        perf report: Add --branch-history option
        perf callchain: Support handling complete branch stacks as histograms
        perf stat: Add support for snapshot counters
        perf stat: Add support for per-pkg counters
        perf tools: Remove perf_evsel__read interface
        perf stat: Use read_counter in read_counter_aggr
        perf stat: Make read_counter work over the thread dimension
        perf stat: Use perf_evsel__read_cb in read_counter
        perf tools: Add snapshot format file parsing
        perf tools: Add per-pkg format file parsing
        perf evsel: Introduce perf_evsel__read_cb function
        perf evsel: Introduce perf_counts_values__scale function
        perf evsel: Introduce perf_evsel__compute_deltas function
        perf tools: Allow to force redirect pr_debug to stderr.
        perf tools: Fix segfault due to invalid kernel dso access
        perf callchain: Make get_srcline fall back to sym+offset
        perf symbols: Move bfd_demangle stubbing to its only user
        perf callchain: Enable printing the srcline in the history
        perf tools: Collapse first level callchain entry if it has sibling
        ...
      5706ffd0
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c3011060
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "These are the main changes in this cycle:
      
          - Streamline RCU's use of per-CPU variables, shifting from "cpu"
            arguments to functions to "this_"-style per-CPU variable
            accessors.
      
          - signal-handling RCU updates.
      
          - real-time updates.
      
          - torture-test updates.
      
          - miscellaneous fixes.
      
          - documentation updates"
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        rcu: Fix FIXME in rcu_tasks_kthread()
        rcu: More info about potential deadlocks with rcu_read_unlock()
        rcu: Optimize cond_resched_rcu_qs()
        rcu: Add sparse check for RCU_INIT_POINTER()
        documentation: memory-barriers.txt: Correct example for reorderings
        documentation: Add atomic_long_t to atomic_ops.txt
        documentation: Additional restriction for control dependencies
        documentation: Document RCU self test boot params
        rcutorture: Fix rcu_torture_cbflood() memory leak
        rcutorture: Remove obsolete kversion param in kvm.sh
        rcutorture: Remove stale test configurations
        rcutorture: Enable RCU self test in configs
        rcutorture: Add early boot self tests
        torture: Run Linux-kernel binary out of results directory
        cpu: Avoid puts_pending overflow
        rcu: Remove "cpu" argument to rcu_cleanup_after_idle()
        rcu: Remove "cpu" argument to rcu_prepare_for_idle()
        rcu: Remove "cpu" argument to rcu_needs_cpu()
        rcu: Remove "cpu" argument to rcu_note_context_switch()
        rcu: Remove "cpu" argument to rcu_preempt_check_callbacks()
        ...
      c3011060
    • Linus Torvalds's avatar
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c37f959
      Linus Torvalds authored
      Pull locking tree changes from Ingo Molnar:
       "Two changes: a documentation update and a ticket locks live lock fix"
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ticketlock: Fix spin_unlock_wait() livelock
        locking/lglocks: Add documentation of current lglocks implementation
      9c37f959
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · a0e44677
      Linus Torvalds authored
      Pull asm-generic asm/io.h rewrite from Arnd Bergmann:
       "While there normally is no reason to have a pull request for
        asm-generic but have all changes get merged through whichever tree
        needs them, I do have a series for 3.19.
      
        There are two sets of patches that change significant portions of
        asm/io.h, and this branch contains both in order to resolve the
        conflicts:
      
         - Will Deacon has done a set of patches to ensure that all
           architectures define {read,write}{b,w,l,q}_relaxed() functions or
           get them by including asm-generic/io.h.
      
           These functions are commonly used on ARM specific drivers to avoid
           expensive L2 cache synchronization implied by the normal
           {read,write}{b,w,l,q}, but we need to define them on all
           architectures in order to share the drivers across architectures
           and to enable CONFIG_COMPILE_TEST configurations for them
      
         - Thierry Reding has done an unrelated set of patches that extends
           the asm-generic/io.h file to the degree necessary to make it useful
           on ARM64 and potentially other architectures"
      
      * tag 'asm-generic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (29 commits)
        ARM64: use GENERIC_PCI_IOMAP
        sparc: io: remove duplicate relaxed accessors on sparc32
        ARM: sa11x0: Use void __iomem * in MMIO accessors
        arm64: Use include/asm-generic/io.h
        ARM: Use include/asm-generic/io.h
        asm-generic/io.h: Implement generic {read,write}s*()
        asm-generic/io.h: Reconcile I/O accessor overrides
        /dev/mem: Use more consistent data types
        Change xlate_dev_{kmem,mem}_ptr() prototypes
        ARM: ixp4xx: Properly override I/O accessors
        ARM: ixp4xx: Fix build with IXP4XX_INDIRECT_PCI
        ARM: ebsa110: Properly override I/O accessors
        ARC: Remove redundant PCI_IOBASE declaration
        documentation: memory-barriers: clarify relaxed io accessor semantics
        x86: io: implement dummy relaxed accessor macros for writes
        tile: io: implement dummy relaxed accessor macros for writes
        sparc: io: implement dummy relaxed accessor macros for writes
        powerpc: io: implement dummy relaxed accessor macros for writes
        parisc: io: implement dummy relaxed accessor macros for writes
        mn10300: io: implement dummy relaxed accessor macros for writes
        ...
      a0e44677
    • Linus Torvalds's avatar
      Merge tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · ed8efd2d
      Linus Torvalds authored
      Pull ARM64 SoC changes from Arnd Bergmann:
       "This adds support for two new ARM64 platforms:
      
         - ARM Juno
         - AMD Seattle
      
        We had submissions for a number of additional platforms from Samsung,
        Freescale and Spreadtrum but are still working out the best process
        for getting these merged"
      
      * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        arm64: amd-seattle: Fix PCI bus range due to SMMU limitation
        arm64: ARM: Fix the Generic Timers interrupt active level description
        arm64: amd-seattle: Adding device tree for AMD Seattle platform
        arm64: Add Juno board device tree.
        arm64: Create link to include/dt-bindings to enable C preprocessor use.
      ed8efd2d
    • Linus Torvalds's avatar
      Merge tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 151cd976
      Linus Torvalds authored
      Pull ARM SoC defconfig changes from Arnd Bergmann:
       "This is a collection of the various changes to defconfig files, most
        importantly enabling some additional platforms in the
        multi_v7_defconfig file.  These are split out into a separate branch
        to avoid most of the merge conflicts in the defconfig files.
      
        This also touches 12 other defconfig files for shmobile, at91,
        hisilicon, keystone, mvebu, omap, and tegra"
      
      * tag 'defconfig-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits)
        ARM: omap2plus_defconfig: enable ECAP and EHRPWM
        ARM: omap2plus_defconfig: enable XHCI
        ARM: omap2plus_defconfig: enable AM33XX SoC sound
        ARM: omap2plus_defconfig: enable EDT FT5X06 touchscreen
        ARM: omap2plus_defconfig: remove unwanted ethernet drivers
        ARM: multi_v7_defconfig: enable MAX77686 PMIC drivers for exynos4412-prime based SoCs
        ARM: at91/defconfig: add DM9000 to at91_dt
        ARM: at91/defconfig: add QT1070 to at91_dt
        ARM: at91/defconfig: add TCB PWM driver selection
        ARM: at91/defconfig: add the XDMA driver
        ARM: at91: sama5: update defconfig
        ARM: defconfig: imx_v6_v7_defconfig updates
        ARM: multi_v7_defconfig: add driver support for hix5hd2
        ARM: exynos_defconfig: Use 16 minors per MMC block device
        ARM: mvebu: add MTD_BLOCK to mvebu_v7_defconfig
        ARM: mvebu: enable i2c device in mvebu_v7_defconfig
        ARM: mvebu: re-enable SDHCI driver for Armada 38x SoC in v7 defconfig
        ARM: tegra: Regenerate default configuration
        ARM: multi_v7_defconfig: Enable cgroups
        ARM: multi_v7_defconfig: Enable Broadcom Cygnus
        ...
      151cd976
    • Linus Torvalds's avatar
      Merge tag 'omap-gpmc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fe78c54b
      Linus Torvalds authored
      Pull ARM SoC/OMAP GPMC driver cleanup and move from Arnd Bergmann:
       "The GPMC driver has traditionally been considered a part of the OMAP
        platform code and tightly interweaved with some of the boards.
      
        With this cleanup, it has finally come to the point where it makes
        sense to move it out of arch/arm into drivers/memory, where we already
        have other drivers for similar hardware.  The cleanups are still
        ongoing, with the goal of eventually having a standalone driver that
        does not require an interface to architecture code.
      
        This is a separate branch because of dependencies on multiple other
        branches, and to keep the drivers changes separate from the normal
        cleanups"
      
      * tag 'omap-gpmc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        memory: gpmc: Move omap gpmc code to live under drivers
        ARM: OMAP2+: Move GPMC initcall to devices.c
        ARM: OMAP2+: Prepare to move GPMC to drivers by platform data header
        ARM: OMAP2+: Remove unnecesary include in GPMC driver
        ARM: OMAP2+: Drop board file for 3430sdp
        ARM: OMAP2+: Drop board file for ti8168evm
        ARM: OMAP2+: Drop legacy code for gpmc-smc91x.c
        ARM: OMAP2+: Require proper GPMC timings for devices
        ARM: OMAP2+: Show bootloader GPMC timings to allow configuring the .dts file
        ARM: OMAP2+: Fix support for multiple devices on a GPMC chip select
        ARM: OMAP2+: gpmc: Sanity check GPMC fck on probe
        ARM: OMAP2+: gpmc: Keep Chip Select disabled while configuring it
        ARM: OMAP2+: gpmc: Always enable A26-A11 for non NAND devices
        ARM: OMAP2+: gpmc: Error out if timings fail in gpmc_probe_generic_child()
        ARM: OMAP2+: gpmc: Print error message in set_gpmc_timing_reg()
      fe78c54b
  7. 09 Dec, 2014 3 commits
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6da31412
      Linus Torvalds authored
      Pull ARM SoC DT updates from Arnd Bergmann:
       "The DT branch adds a lot of new stuff for additional SoC and board
        support.  The branch is the largest one and contains 513 out of the
        total 972 non-merge arm-soc changesets for 3.19.
      
        Most of the changes are about enabling additional on-chip devices for
        existing machines, but there are also an unusual number of new SoC
        types being added this time:
      
         - AMLogic Meson8
         - ARM Realview in DT mode
         - Allwinner A80
         - Broadcom BCM47081
         - Broadcom Cygnus
         - Freescale LS1021A
         - Freescale Vybrid 500 series
         - Mediatek MT6592, MT8127, MT8135
         - STMicroelectronics STiH410
         - Samsung Exynos4415
      
        The level of support for the above differs widely, some are just stubs
        with nothing more than CPU, memory and a UART, but others are fairly
        complete.  As usual, these get extended over time.
      
        There are also many new boards getting added, this is the list of
        model strings that are showing up in new dts files:
      
         - ARM RealView PB1176
         - Altera SOCFPGA Arria 10
         - Asus RT-N18U (BCM47081)
         - Buffalo WZR-1750DHP (BCM4708)
         - Buffalo WZR-600DHP2 (BCM47081)
         - Cygnus Enterprise Phone (BCM911360_ENTPHN)
         - D-Link DIR-665
         - Google Spring
         - IGEP COM MODULE Rev. G (TI OMAP AM/DM37x)
         - IGEPv2 Rev. F (TI OMAP AM/DM37x)
         - LS1021A QDS Board
         - LS1021A TWR Board
         - LeMaker Banana Pi
         - MarsBoard RK3066
         - MediaTek MT8127 Moose Board
         - MediaTek MT8135 evaluation board
         - Mele M3
         - Merrii A80 Optimus Board
         - Netgear R6300 V2 (BCM4708)
         - Nomadik STN8815NHK
         - NovaTech OrionLXm
         - Olimex A20-OLinuXino-LIME2
         - Raspberry Pi Model B+
         - STiH410 B2120
         - Samsung Monk board
         - Samsung Rinato board
         - Synology DS213j
         - Synology DS414
         - TBS2910 Matrix ARM mini PC
         - TI AM5728 BeagleBoard-X15
         - Toradex Colibri VF50 on Colibri Evaluation Board
         - Zynq ZYBO Development Board
      
        Other notable changes include:
      
         - exynos: cleanup of existing dts files
         - mvebu: improved pinctrl support for Armada 370/XP
         - nomadik: restructuring dts files
         - omap: added CAN bus support
         - shmobile: added clock support for some SoCs
         - shmobile: added sound support for some SoCs
         - sirf: reset controller support
         - sunxi: continuing the relicensing under dual GPL/MIT
         - sunxi: lots of new on-chip device support
         - sunxi: working simplefb support (long awaited)
         - various: provide stdout-path property for earlycon"
      
      * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (510 commits)
        ARM: dts: rk3288: add arm,cpu-registers-not-fw-configured
        Revert "ARM: dts: rockchip: temporarily disable smp on rk3288"
        ARM: BCM5301X: Add DT for Buffalo WZR-600DHP2
        ARM: BCM5301X: Add DT for Asus RT-N18U
        ARM: BCM5301X: Add DT for Buffalo WZR-1750DHP
        ARM: BCM5301X: Add DT for Netgear R6300 V2
        ARM: BCM5301X: Add buttons for Netgear R6250
        ARM: dts: rockchip: Add input voltage supply regulators in pmic for Marsboard
        ARM: BCM5301X: Add IRQs to Broadcom's bus-axi in DTS file
        arm: dts: zynq: Add Digilent ZYBO board
        arm: dts: zynq: Move crystal freq. to board level
        doc: dt: vendor-prefixes: Add Digilent Inc
        Documentation: devicetree: Fix Xilinx VDMA specification
        ARM: dts: rockchip: set FIFO size for SDMMC, SDIO and EMMC on rk3066 and rk3188
        ARM: dts: rockchip: add label property for leds on Radxa Rock
        ARM: BCM5301X: Add LEDs for Netgear R6250 V1
        ARM: BCM5301X: Add Broadcom's bus-axi to the DTS file
        ARM: dts: add sysreg phandle to i2c device nodes for exynos
        ARM: dts: Remove unused bootargs from exynos3250-rinato
        ARM: dts: add board dts file for Exynos3250-based Monk board
        ...
      6da31412
    • Linus Torvalds's avatar
      Merge tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 3a647c1d
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "These are changes for drivers that are intimately tied to some SoC and
        for some reason could not get merged through the respective subsystem
        maintainer tree.
      
        The largest single change here this time around is the Tegra
        iommu/memory controller driver, which gets updated to the new iommu DT
        binding.  More drivers like this are likely to follow for the
        following merge window, but we should be able to do those through the
        iommu maintainer.
      
        Other notable changes are:
         - reset controller drivers from the reset maintainer (socfpga, sti,
           berlin)
         - fixes for the keystone navigator driver merged last time
         - at91 rtc driver changes related to the at91 cleanups
         - ARM perf driver changes from Will Deacon
         - updates for the brcmstb_gisb driver"
      
      * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (53 commits)
        clocksource: arch_timer: Allow the device tree to specify uninitialized timer registers
        clocksource: arch_timer: Fix code to use physical timers when requested
        memory: Add NVIDIA Tegra memory controller support
        bus: brcmstb_gisb: Add register offset tables for older chips
        bus: brcmstb_gisb: Look up register offsets in a table
        bus: brcmstb_gisb: Introduce wrapper functions for MMIO accesses
        bus: brcmstb_gisb: Make the driver buildable on MIPS
        of: Add NVIDIA Tegra memory controller binding
        ARM: tegra: Move AHB Kconfig to drivers/amba
        amba: Add Kconfig file
        clk: tegra: Implement memory-controller clock
        serial: samsung: Fix serial config dependencies for exynos7
        bus: brcmstb_gisb: resolve section mismatch
        ARM: common: edma: edma_pm_resume may be unused
        ARM: common: edma: add suspend resume hook
        powerpc/iommu: Rename iommu_[un]map_sg functions
        rtc: at91sam9: add DT bindings documentation
        rtc: at91sam9: use clk API instead of relying on AT91_SLOW_CLOCK
        ARM: at91: add clk_lookup entry for RTT devices
        rtc: at91sam9: rework the Kconfig description
        ...
      3a647c1d
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 6cd94d5e
      Linus Torvalds authored
      Pull ARM SoC platform changes from Arnd Bergmann:
       "New and updated SoC support, notable changes include:
      
         - bcm:
              brcmstb SMP support
              initial iproc/cygnus support
         - exynos:
              Exynos4415 SoC support
              PMU and suspend support for Exynos5420
              PMU support for Exynos3250
              pm related maintenance
         - imx:
              new LS1021A SoC support
              vybrid 610 global timer support
         - integrator:
              convert to using multiplatform configuration
         - mediatek:
              earlyprintk support for mt8127/mt8135
         - meson:
              meson8 soc and l2 cache controller support
         - mvebu:
              Armada 38x CPU hotplug support
              drop support for prerelease Armada 375 Z1 stepping
              extended suspend support, now works on Armada 370/XP
         - omap:
              hwmod related maintenance
              prcm cleanup
         - pxa:
              initial pxa27x DT handling
         - rockchip:
              SMP support for rk3288
              add cpu frequency scaling support
         - shmobile:
              r8a7740 power domain support
              various small restart, timer, pci apmu changes
         - sunxi:
              Allwinner A80 (sun9i) earlyprintk support
         - ux500:
              power domain support
      
        Overall, a significant chunk of changes, coming mostly from the usual
        suspects: omap, shmobile, samsung and mvebu, all of which already
        contain a lot of platform specific code in arch/arm"
      
      * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (187 commits)
        ARM: mvebu: use the cpufreq-dt platform_data for independent clocks
        soc: integrator: Add terminating entry for integrator_cm_match
        ARM: mvebu: add SDRAM controller description for Armada XP
        ARM: mvebu: adjust mbus controller description on Armada 370/XP
        ARM: mvebu: add suspend/resume DT information for Armada XP GP
        ARM: mvebu: synchronize secondary CPU clocks on resume
        ARM: mvebu: make sure MMU is disabled in armada_370_xp_cpu_resume
        ARM: mvebu: Armada XP GP specific suspend/resume code
        ARM: mvebu: reserve the first 10 KB of each memory bank for suspend/resume
        ARM: mvebu: implement suspend/resume support for Armada XP
        clk: mvebu: add suspend/resume for gatable clocks
        bus: mvebu-mbus: provide a mechanism to save SDRAM window configuration
        bus: mvebu-mbus: suspend/resume support
        clocksource: time-armada-370-xp: add suspend/resume support
        irqchip: armada-370-xp: Add suspend/resume support
        ARM: add lolevel debug support for asm9260
        ARM: add mach-asm9260
        ARM: EXYNOS: use u8 for val[] in struct exynos_pmu_conf
        power: reset: imx-snvs-poweroff: add power off driver for i.mx6
        ARM: imx: temporarily remove CONFIG_SOC_FSL from LS1021A
        ...
      6cd94d5e