09 Jul, 2013

12 commits

  • In the Power7 PMU guide:
    https://www.power.org/documentation/commonly-used-metrics-for-performance-analysis/
    PM_BRU_MPRED is referred to as PM_BR_MPRED.

    It fixed the typo by changing the name of the event in kernel and
    documentation accordingly.

    This patch changes the ABI, there are some reasons I think it's ok:

    - It is relatively new interface, specific to the Power7 platform.

    - No tools that we know of actually use this interface at this point
    (none are listed near the interface).

    - Users of this interface (eg oprofile users migrating to perf)
    would be more used to the "PM_BR_MPRED" rather than "PM_BRU_MPRED".

    - These are in the ABI/testing at this point rather than ABI/stable,
    so hoping we have some wiggle room.

    Signed-off-by: Runzhen Wang
    Acked-by: Michael Ellerman
    Cc: icycoder@gmail.com
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: Michael Ellerman
    Cc: Paul Mackerras
    Cc: Runzhen Wang
    Cc: Sukadev Bhattiprolu
    Cc: Xiao Guangrong
    Link: http://lkml.kernel.org/r/1372407297-6996-2-git-send-email-runzhen@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Runzhen Wang
     
  • Currently we have symbol_conf.exclude_other being set as true every time
    so the -x/--exclude-other has nothing to do.

    Also we have no way to see the data with symbol_conf.exclude_other being
    false which is useful sometimes.

    Fixing it by making symbol_conf.exclude_other false by default.

    1) Example without -x option:

    $ perf report -i perf.data.delete -p perf_session__delete -s parent

    + 99.91% [other]
    + 0.08% perf_session__delete
    + 0.00% perf_session__delete_dead_threads
    + 0.00% perf_session__delete_threads

    2) Example with -x option:

    $ ./perf report -i perf.data.delete -p perf_session__delete -s parent -x

    + 96.22% perf_session__delete
    + 1.89% perf_session__delete_dead_threads
    + 1.89% perf_session__delete_threads

    In Example 1) we get the sorted out data together with the rest
    "[other]". This could help us estimate how much time we spent in the
    sorted data.

    In Example 2) the total is just the sorted data.

    Signed-off-by: Jiri Olsa
    Cc: Andi Kleen
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-sg8fvu0fyqohf9ur9l38lhkw@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • When perf tries to start a workload, it relies on a pipe which the
    workload was blocked for reading. After closing the pipe on the parent,
    the workload (child) can start the actual work via exec().

    However, if another process was forked after creating a workload, this
    mechanism cannot work since the other process (child) also inherits the
    pipe, so that closing the pipe in parent cannot unblock the workload.
    Fix it by using explicit write call can then closing it.

    For similar reason, the pipe fd on parent should be marked as CLOEXEC so
    that it can be closed after another child exec'ed.

    Signed-off-by: Namhyung Kim
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Cc: Stephane Eranian
    Cc: Steven Rostedt
    Link: http://lkml.kernel.org/r/1372230862-15861-13-git-send-email-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Namhyung Kim
     
  • It no longer have any affect on the processing and is marked as obsolete
    anyway.

    Signed-off-by: Jiri Olsa
    Cc: Andi Kleen
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-tvwyspiqr4getzfib2lw06ty@git.kernel.org
    Link: http://lkml.kernel.org/r/1372307120-737-1-git-send-email-namhyung@kernel.org
    [ combined patch removing the -f usage in various sub-commands, such as 'perf sched', etc, by Namhyung Kim ]
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • It's no longer working and needed.

    Quite straightforward discussion/vote was in here:
    http://marc.info/?t=137028288300004&r=1&w=2

    Signed-off-by: Jiri Olsa
    Cc: Andi Kleen
    Cc: Corey Ashford
    Cc: David Ahern
    Cc: Frederic Weisbecker
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/n/tip-8fgdva12hl8w3xzzpsvvg7nx@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Jiri Olsa
     
  • This patch fixes a problem with perf stat whereby on termination it may
    send a SIGTERM signal to random processes on systems with high PID
    recycling. I got some actual bug reports on this.

    There is race between the SIGCHLD and sig_atexit() handlers. This patch
    addresses this problem by clearing child_pid in the SIGCHLD handler.

    Signed-off-by: Stephane Eranian
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Namhyung Kim
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/20130604154426.GA2928@quad
    Signed-off-by: Arnaldo Carvalho de Melo

    Stephane Eranian
     
  • Currently, lib lk doesn't use CROSS_COMPILE environment variable, so
    cross build always fails.

    This is a quick fix for this problem.

    Signed-off-by: Joonsoo Kim
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1371603750-15053-2-git-send-email-iamjoonsoo.kim@lge.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Joonsoo Kim
     
  • Building perf for android fails because it can't find the definition of
    struct winsize.

    This definition is in termios.h, so I add this header to util.h to solve
    the problem.

    It is missed by commit '2c803e52' which moves get_term_dimensions() from
    builtin-top.c to util.c, but missed to move termios.h header.

    Signed-off-by: Joonsoo Kim
    Acked-by: David Ahern
    Cc: David Ahern
    Cc: Ingo Molnar
    Cc: Namhyung Kim
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1371603750-15053-3-git-send-email-iamjoonsoo.kim@lge.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Joonsoo Kim
     
  • Addresses of allocated memory areas saved to '*src' and '*dst', so we
    need to check them for NULL, not 'src' and 'dst'.

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Hitoshi Mitake
    Cc: Hitoshi Mitake
    Cc: Ingo Molnar
    Cc: Paul Mackerras
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1370518503-4230-1-git-send-email-kirill.shutemov@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo

    Kirill A. Shutemov
     
  • Fixing build errors with O and DESTDIR make vars set:

    $ make prefix=/usr/local O=$builddir DESTDIR=$destdir -C tools/ perf
    ...
    make[1]: Entering directory `.../.source/perf/tools/perf'
    CC .../.build/perf/perf/util/parse-events.o
    util/parse-events.c:14:32: fatal error: parse-events-bison.h: No such file or directory
    compilation terminated.
    make[1]: *** [.../.build/perf/perf/util/parse-events.o] Error 1
    ...

    and:

    LINK /.../.build/perf/perf/perf
    gcc: error: /.../.build/perf/perf//.../.source/perf/tools/lib/lk/liblk.a: No such file or directory

    Signed-off-by: Robert Richter
    Signed-off-by: Robert Richter
    Cc: Ingo Molnar
    Cc: Jiri Olsa
    Cc: Robert Richter
    Link: http://lkml.kernel.org/r/1370964158-4135-1-git-send-email-rric@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Robert Richter
     
  • The OUTPUT directory is wrongly determind leading to:

    make[3]: *** No rule to make target `.../.build/perf/PERF-VERSION-FILE'. Stop.

    Fixing this by using the generic approach in script/Makefile.include.

    Signed-off-by: Robert Richter
    Link: http://lkml.kernel.org/r/1367865614-30876-1-git-send-email-rric@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo

    Robert Richter
     
  • Fix having verbose build with V=0, e.g:

    make V=0 -C tools/ perf

    Signed-off-by: Robert Richter
    Link: http://lkml.kernel.org/r/20130503134953.GU8356@rric.localhost
    Signed-off-by: Arnaldo Carvalho de Melo

    Robert Richter
     

05 Jul, 2013

2 commits

  • This patch fixes a serious bug in:

    14c63f17b1fd perf: Drop sample rate when sampling is too slow

    There was an misunderstanding on the API of the do_div()
    macro. It returns the remainder of the division and this
    was not what the function expected leading to disabling the
    interrupt latency watchdog.

    This patch also remove a duplicate assignment in
    perf_sample_event_took().

    Signed-off-by: Stephane Eranian
    Cc: peterz@infradead.org
    Cc: dave.hansen@linux.intel.com
    Cc: ak@linux.intel.com
    Cc: jolsa@redhat.com
    Link: http://lkml.kernel.org/r/20130704223010.GA30625@quad
    Signed-off-by: Ingo Molnar

    Stephane Eranian
     
  • As Linus said its not an error to not have an AMD IOMMU; esp.
    when you're not even running on an AMD platform.

    Reported-by: Linus Torvalds
    Signed-off-by: Peter Zijlstra
    Acked-by: Suravee Suthikulpanit
    Cc: Arnaldo Carvalho de Melo
    Link: http://lkml.kernel.org/r/20130703075542.GF23916@twins.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

03 Jul, 2013

26 commits

  • Pull x86 UV update from Ingo Molnar:
    "There's a single commit in this tree, which adds support for a new SGI
    UV GRU (Global Reference Unit - fast NUMA messaging ASIC) hardware
    feature to scale up and beyond: an optional distributed mode that will
    allow per-node address mapping of local GRU space, as opposed to
    mapping all GRU hardware to the same contiguous high space"

    * 'x86-uv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/UV: Add GRU distributed mode mappings

    Linus Torvalds
     
  • Pull x86 tracing updates from Ingo Molnar:
    "This tree adds IRQ vector tracepoints that are named after the handler
    and which output the vector #, based on a zero-overhead approach that
    relies on changing the IDT entries, by Seiji Aguchi.

    The new tracepoints look like this:

    # perf list | grep -i irq_vector
    irq_vectors:local_timer_entry [Tracepoint event]
    irq_vectors:local_timer_exit [Tracepoint event]
    irq_vectors:reschedule_entry [Tracepoint event]
    irq_vectors:reschedule_exit [Tracepoint event]
    irq_vectors:spurious_apic_entry [Tracepoint event]
    irq_vectors:spurious_apic_exit [Tracepoint event]
    irq_vectors:error_apic_entry [Tracepoint event]
    irq_vectors:error_apic_exit [Tracepoint event]
    [...]"

    * 'x86-tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tracing: Add config option checking to the definitions of mce handlers
    trace,x86: Do not call local_irq_save() in load_current_idt()
    trace,x86: Move creation of irq tracepoints from apic.c to irq.c
    x86, trace: Add irq vector tracepoints
    x86: Rename variables for debugging
    x86, trace: Introduce entering/exiting_irq()
    tracing: Add DEFINE_EVENT_FN() macro

    Linus Torvalds
     
  • Pull x86 RAS update from Ingo Molnar:
    "The changes in this tree are:

    - ACPI APEI (ACPI Platform Error Interface) improvements, by Chen
    Gong
    - misc MCE fixes/cleanups"

    * 'x86-ras-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/mce: Update MCE severity condition check
    mce: acpi/apei: Add comments to clarify usage of the various bitfields in the MCA subsystem
    ACPI/APEI: Update einj documentation for param1/param2
    ACPI/APEI: Add parameter check before error injection
    ACPI, APEI, EINJ: Fix error return code in einj_init()
    x86, mce: Fix "braodcast" typo

    Linus Torvalds
     
  • Pull x86 platform updates from Ingo Molnar:
    "Two changes:

    - A Kconfig dependency fix/cleanup

    - Introduce the 'make kvmconfig' KVM configuration helper utility
    that turns the current .config into a KVM-bootable config. Useful
    for debugging specific native kernel configs that have no KVM
    config options enabled on VM setups."

    * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/platform: Make X86_GOLDFISH depend on X86_EXTENDED_PLATFORM
    x86/platform: Add kvmconfig to the phony targets
    x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs

    Linus Torvalds
     
  • Pull x86 mm changes from Ingo Molnar:
    "Misc improvements:

    - Fix /proc/mtrr reporting
    - Fix ioremap printout
    - Remove the unused pvclock fixmap entry on 32-bit
    - misc cleanups"

    * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ioremap: Correct function name output
    x86: Fix /proc/mtrr with base/size more than 44bits
    ix86: Don't waste fixmap entries
    x86/mm: Drop unneeded include
    x86_64: Correct phys_addr in cleanup_highmap comment

    Linus Torvalds
     
  • Pull x86 microcode loading update from Ingo Molnar:
    "Two main changes that improve microcode loading on AMD CPUs:

    - Add support for all-in-one binary microcode files that concatenate
    the microcode images of multiple processor families, by Jacob Shin

    - Add early microcode loading (embedded in the initrd) support, also
    by Jacob Shin"

    * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, microcode, amd: Another early loading fixup
    x86, microcode, amd: Allow multiple families' bin files appended together
    x86, microcode, amd: Make find_ucode_in_initrd() __init
    x86, microcode, amd: Fix warnings and errors on with CONFIG_MICROCODE=m
    x86, microcode, amd: Early microcode patch loading support for AMD
    x86, microcode, amd: Refactor functions to prepare for early loading
    x86, microcode: Vendor abstract out save_microcode_in_initrd()
    x86, microcode, intel: Correct typo in printk

    Linus Torvalds
     
  • Pull x86 FPU changes from Ingo Molnar:
    "There are two bigger changes in this tree:

    - Add an [early-use-]safe static_cpu_has() variant and other
    robustness improvements, including the new X86_DEBUG_STATIC_CPU_HAS
    configurable debugging facility, motivated by recent obscure FPU
    code bugs, by Borislav Petkov

    - Reimplement FPU detection code in C and drop the old asm code, by
    Peter Anvin."

    * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, fpu: Use static_cpu_has_safe before alternatives
    x86: Add a static_cpu_has_safe variant
    x86: Sanity-check static_cpu_has usage
    x86, cpu: Add a synthetic, always true, cpu feature
    x86: Get rid of ->hard_math and all the FPU asm fu

    Linus Torvalds
     
  • Pull x86 EFI changes from Ingo Molnar:
    "Two fixes that should in principle increase robustness of our
    interaction with the EFI firmware, and a cleanup"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, efi: retry ExitBootServices() on failure
    efi: Convert runtime services function ptrs
    UEFI: Don't pass boot services regions to SetVirtualAddressMap()

    Linus Torvalds
     
  • Pull x86 debug update from Ingo Molnar:
    "Misc debuggability improvements:

    - Optimize the x86 CPU register printout a bit
    - Expose the tboot TXT log via debugfs
    - Small do_debug() cleanup"

    * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tboot: Provide debugfs interfaces to access TXT log
    x86: Remove weird PTR_ERR() in do_debug
    x86/debug: Only print out DR registers if they are not power-on defaults

    Linus Torvalds
     
  • Pull x86 cpu updates from Ingo Molnar:
    "Two changes:

    - Extend 32-bit double fault debugging aid to 64-bit
    - Fix a build warning"

    * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/intel/cacheinfo: Shut up last long-standing warning
    x86: Extend #DF debugging aid to 64-bit

    Linus Torvalds
     
  • Pull x86 cleanups from Ingo Molnar:
    "Misc x86 cleanups"

    * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, reloc: Use xorl instead of xorq in relocate_kernel_64.S
    x86, cleanups: Remove extra tab in __flush_tlb_one()
    x86/mce: Remove check for CONFIG_X86_MCE_P4THERMAL

    Linus Torvalds
     
  • Pull x86 boot build fix from Ingo Molnar:
    "Small fixlet for the build process"

    * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/boot: Close opened file descriptor

    Linus Torvalds
     
  • Pull asm/x86 changes from Ingo Molnar:
    "Misc changes, with a bigger processor-flags cleanup/reorganization by
    Peter Anvin"

    * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, asm, cleanup: Replace open-coded control register values with symbolic
    x86, processor-flags: Fix the datatypes and add bit number defines
    x86: Rename X86_CR4_RDWRGSFS to X86_CR4_FSGSBASE
    x86, flags: Rename X86_EFLAGS_BIT1 to X86_EFLAGS_FIXED
    linux/const.h: Add _BITUL() and _BITULL()
    x86/vdso: Convert use of typedef ctl_table to struct ctl_table
    x86: __force_order doesn't need to be an actual variable

    Linus Torvalds
     
  • Pull voluntary preemption fixes from Ingo Molnar:
    "This tree contains a speedup which is achieved through better
    might_sleep()/might_fault() preemption point annotations for uaccess
    functions, by Michael S Tsirkin:

    1. The only reason uaccess routines might sleep is if they fault.
    Make this explicit for all architectures.

    2. A voluntary preemption point in uaccess functions means compiler
    can't inline them efficiently, this breaks assumptions that they
    are very fast and small that e.g. net code seems to make. Remove
    this preemption point so behaviour matches with what callers
    assume.

    3. Accesses (e.g through socket ops) to kernel memory with KERNEL_DS
    like net/sunrpc does will never sleep. Remove an unconditinal
    might_sleep() in the might_fault() inline in kernel.h (used when
    PROVE_LOCKING is not set).

    4. Accesses with pagefault_disable() return EFAULT but won't cause
    caller to sleep. Check for that and thus avoid might_sleep() when
    PROVE_LOCKING is set.

    These changes offer a nice speedup for CONFIG_PREEMPT_VOLUNTARY=y
    kernels, here's a network bandwidth measurement between a virtual
    machine and the host:

    before:
    incoming: 7122.77 Mb/s
    outgoing: 8480.37 Mb/s

    after:
    incoming: 8619.24 Mb/s [ +21.0% ]
    outgoing: 9455.42 Mb/s [ +11.5% ]

    I kept these changes in a separate tree, separate from scheduler
    changes, because it's a mixed MM and scheduler topic"

    * 'sched-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    mm, sched: Allow uaccess in atomic with pagefault_disable()
    mm, sched: Drop voluntary schedule from might_fault()
    x86: uaccess s/might_sleep/might_fault/
    tile: uaccess s/might_sleep/might_fault/
    powerpc: uaccess s/might_sleep/might_fault/
    mn10300: uaccess s/might_sleep/might_fault/
    microblaze: uaccess s/might_sleep/might_fault/
    m32r: uaccess s/might_sleep/might_fault/
    frv: uaccess s/might_sleep/might_fault/
    arm64: uaccess s/might_sleep/might_fault/
    asm-generic: uaccess s/might_sleep/might_fault/

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "The main changes:

    - load-calculation cleanups and improvements, by Alex Shi
    - various nohz related tidying up of statisics, by Frederic
    Weisbecker
    - factor out /proc functions to kernel/sched/proc.c, by Paul
    Gortmaker
    - simplify the RT policy scheduler, by Kirill Tkhai
    - various fixes and cleanups"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
    sched/debug: Remove CONFIG_FAIR_GROUP_SCHED mask
    sched/debug: Fix formatting of /proc//sched
    sched: Fix typo in struct sched_avg member description
    sched/fair: Fix typo describing flags in enqueue_entity
    sched/debug: Add load-tracking statistics to task
    sched: Change get_rq_runnable_load() to static and inline
    sched/tg: Remove tg.load_weight
    sched/cfs_rq: Change atomic64_t removed_load to atomic_long_t
    sched/tg: Use 'unsigned long' for load variable in task group
    sched: Change cfs_rq load avg to unsigned long
    sched: Consider runnable load average in move_tasks()
    sched: Compute runnable load avg in cpu_load and cpu_avg_load_per_task
    sched: Update cpu load after task_tick
    sched: Fix sleep time double accounting in enqueue entity
    sched: Set an initial value of runnable avg for new forked task
    sched: Move a few runnable tg variables into CONFIG_SMP
    Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking"
    sched: Don't mix use of typedef ctl_table and struct ctl_table
    sched: Remove WARN_ON(!sd) from init_sched_groups_power()
    sched: Fix memory leakage in build_sched_groups()
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Kernel improvements:

    - watchdog driver improvements by Li Zefan
    - Power7 CPI stack events related improvements by Sukadev Bhattiprolu
    - event multiplexing via hrtimers and other improvements by Stephane
    Eranian
    - kernel stack use optimization by Andrew Hunter
    - AMD IOMMU uncore PMU support by Suravee Suthikulpanit
    - NMI handling rate-limits by Dave Hansen
    - various hw_breakpoint fixes by Oleg Nesterov
    - hw_breakpoint overflow period sampling and related signal handling
    fixes by Jiri Olsa
    - Intel Haswell PMU support by Andi Kleen

    Tooling improvements:

    - Reset SIGTERM handler in workload child process, fix from David
    Ahern.
    - Makefile reorganization, prep work for Kconfig patches, from Jiri
    Olsa.
    - Add automated make test suite, from Jiri Olsa.
    - Add --percent-limit option to 'top' and 'report', from Namhyung
    Kim.
    - Sorting improvements, from Namhyung Kim.
    - Expand definition of sysfs format attribute, from Michael Ellerman.

    Tooling fixes:

    - 'perf tests' fixes from Jiri Olsa.
    - Make Power7 CPI stack events available in sysfs, from Sukadev
    Bhattiprolu.
    - Handle death by SIGTERM in 'perf record', fix from David Ahern.
    - Fix printing of perf_event_paranoid message, from David Ahern.
    - Handle realloc failures in 'perf kvm', from David Ahern.
    - Fix divide by 0 in variance, from David Ahern.
    - Save parent pid in thread struct, from David Ahern.
    - Handle JITed code in shared memory, from Andi Kleen.
    - Fixes for 'perf diff', from Jiri Olsa.
    - Remove some unused struct members, from Jiri Olsa.
    - Add missing liblk.a dependency for python/perf.so, fix from Jiri
    Olsa.
    - Respect CROSS_COMPILE in liblk.a, from Rabin Vincent.
    - No need to do locking when adding hists in perf report, only 'top'
    needs that, from Namhyung Kim.
    - Fix alignment of symbol column in in the hists browser (top,
    report) when -v is given, from NAmhyung Kim.
    - Fix 'perf top' -E option behavior, from Namhyung Kim.
    - Fix bug in isupper() and islower(), from Sukadev Bhattiprolu.
    - Fix compile errors in bp_signal 'perf test', from Sukadev
    Bhattiprolu.

    ... and more things"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (102 commits)
    perf/x86: Disable PEBS-LL in intel_pmu_pebs_disable()
    perf/x86: Fix shared register mutual exclusion enforcement
    perf/x86/intel: Support full width counting
    x86: Add NMI duration tracepoints
    perf: Drop sample rate when sampling is too slow
    x86: Warn when NMI handlers take large amounts of time
    hw_breakpoint: Introduce "struct bp_cpuinfo"
    hw_breakpoint: Simplify *register_wide_hw_breakpoint()
    hw_breakpoint: Introduce cpumask_of_bp()
    hw_breakpoint: Simplify the "weight" usage in toggle_bp_slot() paths
    hw_breakpoint: Simplify list/idx mess in toggle_bp_slot() paths
    perf/x86/intel: Add mem-loads/stores support for Haswell
    perf/x86/intel: Support Haswell/v4 LBR format
    perf/x86/intel: Move NMI clearing to end of PMI handler
    perf/x86/intel: Add Haswell PEBS support
    perf/x86/intel: Add simple Haswell PMU support
    perf/x86/intel: Add Haswell PEBS record support
    perf/x86/intel: Fix sparse warning
    perf/x86/amd: AMD IOMMU Performance Counter PERF uncore PMU implementation
    perf/x86/amd: Add IOMMU Performance Counter resource management
    ...

    Linus Torvalds
     
  • Pull core irq changes from Ingo Molnar:
    "The main changes:

    - generic-irqchip driver additions, cleanups and fixes

    - 3 new irqchip drivers: ARMv7-M NVIC, TB10x and Marvell Orion SoCs

    - irq_get_trigger_type() simplification and cross-arch cleanup

    - various cleanups, simplifications

    - documentation updates"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits)
    softirq: Use _RET_IP_
    genirq: Add the generic chip to the genirq docbook
    genirq: generic-chip: Export some irq_gc_ functions
    genirq: Fix can_request_irq() for IRQs without an action
    irqchip: exynos-combiner: Staticize combiner_init
    irqchip: Add support for ARMv7-M NVIC
    irqchip: Add TB10x interrupt controller driver
    irqdomain: Use irq_get_trigger_type() to get IRQ flags
    MIPS: octeon: Use irq_get_trigger_type() to get IRQ flags
    arm: orion: Use irq_get_trigger_type() to get IRQ flags
    mfd: stmpe: use irq_get_trigger_type() to get IRQ flags
    mfd: twl4030-irq: Use irq_get_trigger_type() to get IRQ flags
    gpio: mvebu: Use irq_get_trigger_type() to get IRQ flags
    genirq: Add irq_get_trigger_type() to get IRQ flags
    genirq: Irqchip: document gcflags arg of irq_alloc_domain_generic_chips
    genirq: Set irq thread to RT priority on creation
    irqchip: Add support for Marvell Orion SoCs
    genirq: Add kerneldoc for irq_disable.
    genirq: irqchip: Add mask to block out invalid irqs
    genirq: Generic chip: Add linear irq domain support
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The major changes:

    - Simplify RCU's grace-period and callback processing based on the new
    numbering for callbacks.

    - Removal of TINY_PREEMPT_RCU in favor of TREE_PREEMPT_RCU for
    single-CPU low-latency systems.

    - SRCU-related changes and fixes.

    - Miscellaneous fixes, including converting a few remaining printk()
    calls to pr_*().

    - Documentation updates"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
    rcu: Shrink TINY_RCU by reworking CPU-stall ifdefs
    rcu: Shrink TINY_RCU by moving exit_rcu()
    rcu: Remove TINY_PREEMPT_RCU tracing documentation
    rcu: Consolidate rcutiny_plugin.h ifdefs
    rcu: Remove rcu_preempt_note_context_switch()
    rcu: Remove the CONFIG_TINY_RCU ifdefs in rcutiny.h
    rcu: Remove check_cpu_stall_preempt()
    rcu: Simplify RCU_TINY RCU callback invocation
    rcu: Remove rcu_preempt_process_callbacks()
    rcu: Remove rcu_preempt_remove_callbacks()
    rcu: Remove rcu_preempt_check_callbacks()
    rcu: Remove show_tiny_preempt_stats()
    rcu: Remove TINY_PREEMPT_RCU
    powerpc,kvm: fix imbalance srcu_read_[un]lock()
    rcu: Remove srcu_read_lock_raw() and srcu_read_unlock_raw().
    rcu: Apply Dave Jones's NOCB Kconfig help feedback
    rcu: Merge adjacent identical ifdefs
    rcu: Drive quiescent-state-forcing delay from HZ
    rcu: Remove "Experimental" flags
    kthread: Add kworker kthreads to OS-jitter documentation
    ...

    Linus Torvalds
     
  • Pull WW mutex support from Ingo Molnar:
    "This tree adds support for wound/wait style locks, which the graphics
    guys would like to make use of in the TTM graphics subsystem.

    Wound/wait mutexes are used when other multiple lock acquisitions of a
    similar type can be done in an arbitrary order. The deadlock handling
    used here is called wait/wound in the RDBMS literature: The older
    tasks waits until it can acquire the contended lock. The younger
    tasks needs to back off and drop all the locks it is currently
    holding, ie the younger task is wounded.

    See this LWN.net description of W/W mutexes:

    https://lwn.net/Articles/548909/

    The comments there outline specific usecases for this facility (which
    have already been implemented for the DRM tree).

    Also see Documentation/ww-mutex-design.txt for more details"

    * 'core-mutexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking-selftests: Handle unexpected failures more strictly
    mutex: Add more w/w tests to test EDEADLK path handling
    mutex: Add more tests to lib/locking-selftest.c
    mutex: Add w/w tests to lib/locking-selftest.c
    mutex: Add w/w mutex slowpath debugging
    mutex: Add support for wound/wait style locks
    arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not

    Linus Torvalds
     
  • Pull locking changes from Ingo Molnar:
    "Four miscellanous standalone fixes for futexes, rtmutexes and
    Kconfig.locks."

    * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    futex: Use freezable blocking call
    futex: Take hugepages into account when generating futex_key
    rtmutex: Document rt_mutex_adjust_prio_chain()
    locking: Fix copy/paste errors of "ARCH_INLINE_*_UNLOCK_BH"

    Linus Torvalds
     
  • Pull ARM SoC late changes from Arnd Bergmann:
    "These are changes that arrived a little late before the merge window
    or that have multiple dependencies on previous branches so they did
    not fit into one of the earlier ones. There are 10 branches merged
    here, a total of 39 non-merge commits. Contents are a mixed bag for
    the above reasons:

    * Two new SoC platforms: ST microelectronics stixxxx and the TI
    'Nspire' graphing calculator. These should have been in the 'soc'
    branch but were a little late
    * Support for the Exynos 5420 variant in mach-exynos, which is based
    on the other exynos branches to avoid conflicts.
    * Various small changes for sh-mobile, ux500 and davinci
    * Common clk support for MSM"

    * tag 'late-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (39 commits)
    ARM: ux500: bail out on alien cpus
    ARM: davinci: da850: adopt to pinctrl-single change for configuring multiple pins
    serial: sh-sci: Initialise variables before access in sci_set_termios()
    ARM: stih41x: Add B2020 board support
    ARM: stih41x: Add B2000 board support
    ARM: sti: Add DEBUG_LL console support
    ARM: sti: Add STiH416 SOC support
    ARM: sti: Add STiH415 SOC support
    ARM: msm: Migrate to common clock framework
    ARM: msm: Make proc_comm clock control into a platform driver
    ARM: msm: Prepare clk_get() users in mach-msm for clock-pcom driver
    ARM: msm: Remove clock-7x30.h include file
    ARM: msm: Remove custom clk_set_{max,min}_rate() API
    ARM: msm: Remove custom clk_set_flags() API
    msm: iommu: Use clk_set_rate() instead of clk_set_min_rate()
    msm: iommu: Convert to clk_prepare/unprepare
    msm_sdcc: Convert to clk_prepare/unprepare
    usb: otg: msm: Convert to clk_prepare/unprepare
    msm_serial: Use devm_clk_get() and properly return errors
    msm_serial: Convert to clk_prepare/unprepare
    ...

    Linus Torvalds
     
  • Pull ARM SoC driver specific changes from Arnd Bergmann:
    "These changes are all driver specific and cross over between arm-soc
    contents and some other subsystem, in these cases cpufreq, crypto,
    dma, pinctrl, mailbox and usb, and the subsystem owners agreed to have
    these changes merged through arm-soc.

    As we proceed to untangle the dependencies between platform code and
    driver code, the amount of changes in this category is fortunately
    shrinking, for 3.11 we have 16 branches here and 101 non-merge
    changesets, the majority of which are for the stedma40 dma engine
    driver used in the ux500 platform. Cleaning up that code touches
    multiple subsystems, but gets rid of the dependency in the end.

    The mailbox code moved out from mach-omap2 to drivers/mailbox is an
    intermediate step and is still omap specific at the moment. Patches
    exist to generalize the subsystem and add other drivers with the same
    API, but those did not make it for 3.11."

    * tag 'drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (101 commits)
    crypto: ux500: use dmaengine_submit API
    crypto: ux500: use dmaengine_prep_slave_sg API
    crypto: ux500: use dmaengine_device_control API
    crypto: ux500/crypt: add missing __iomem qualifiers
    crypto: ux500/hash: add missing static qualifiers
    crypto: ux500/hash: use readl on iomem addresses
    dmaengine: ste_dma40: Declare memcpy config as static
    ARM: ux500: Remove mop500_snowball_ethernet_clock_enable()
    ARM: ux500: Correct the EN_3v3 regulator's on/off GPIO
    ARM: ux500: Provide a AB8500 GPIO Device Tree node
    gpio: rcar: fix gpio_rcar_of_table
    gpio-rcar: Remove #ifdef CONFIG_OF around OF-specific sections
    gpio-rcar: Reference core gpio documentation in the DT bindings
    clk: exynos5250: Add enum entries for divider clock of i2s1 and i2s2
    ARM: dts: Update Samsung I2S documentation
    ARM: dts: add clock provider information for i2s controllers in Exynos5250
    ARM: dts: add Exynos audio subsystem clock controller node
    clk: samsung: register audio subsystem clocks using common clock framework
    ARM: dts: use #include for all device trees for Samsung
    pinctrl: s3c24xx: use correct header for chained_irq functions
    ...

    Linus Torvalds
     
  • Pull ARM SoC device tree changes from Arnd Bergmann:
    "These changes from 30 individual branches for the most part update
    device tree files, but there are also a few source code changes that
    have crept in this time, usually in order to atomically move over a
    driver from using hardcoded data to DT probing.

    A number of platforms change their DT files to use the C preprocessor,
    which is causing a bit of churn, but that is hopefully only this once"

    * tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (372 commits)
    ARM: at91: dt: rm9200ek: add spi support
    ARM: at91: dt: rm9200: add spi support
    ARM: at91/DT: at91sam9n12: add SPI DMA client infos
    ARM: at91/DT: sama5d3: add SPI DMA client infos
    ARM: at91/DT: fix SPI compatibility string
    ARM: Kirkwood: Fix the internal register ranges translation
    ARM: dts: bcm281xx: change comment to C89 style
    ARM: mmc: bcm281xx SDHCI driver (dt mods)
    ARM: nomadik: add the new clocks to the device tree
    clk: nomadik: implement the Nomadik clocks properly
    ARM: dts: omap5-uevm: Provide USB Host PHY clock frequency
    ARM: dts: omap4-panda: Fix DVI EDID reads
    ARM: dts: omap4-panda: Add USB Host support
    arm: mvebu: enable mini-PCIe connectors on Armada 370 RD
    ARM: shmobile: irqpin: add a DT property to enable masking on parent
    ARM: dts: AM43x EPOS EVM support
    ARM: dts: OMAP5: Add bandgap DT entry
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to am335x EVM
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to EVMsk
    ARM: dts: AM33XX: Add pinmux configuration for CPSW to beaglebone
    ...

    Linus Torvalds
     
  • Pull ARM SoC board specific changes from Arnd Bergmann:
    "These are 18 branches on 9 platforms with board specific changes,
    mostly for defconfig files, but nothing really exciting in here.

    Since the shmobile platform still uses board files for some of the
    newer machines, we get a few changes there as the result of drivers
    getting enabled for those boards. This causes some conflicts with
    contents getting added from multiple branches in sh-mobile specific
    files. Renesas is putting a lot of work into migrating to device-tree
    based setup, which will make all those files obsolete in the future
    and avoid both the conflicts and the need to have these files in the
    first place."

    * tag 'boards-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (49 commits)
    arm: multi_v7_defconfig: Enable initrd/initramfs support
    arm: multi_v7_defconfig: Enable Zynq UART driver
    ARM: omap2plus_defconfig: enable USB_PHY and NOP_USB_XCEIV
    ARM: OMAP1: nokia770: enable Tahvo
    ARM: OMAP3EVM: Marking omap3_evm_display_init() with CONFIG_BROKEN
    arm: omap: board-overo: reset GPIO for SMSC911x
    ARM: shmobile: BOCK-W: change Ether device name
    ARM: ux500: board-mop500: remove unused pin modes
    ARM: shmobile: bockw: add MMCIF support
    ARM: shmobile: bockw: add SPI FLASH support
    ARM: shmobile: bockw: add I2C device support
    ARM: shmobile: BOCK-W: add Ether support
    ARM: tegra: defconfig updates
    ARM: shmobile: bockw defconfig: add MMCIF support
    ARM: shmobile: bockw defconfig: add M25P80 support
    ARM: shmobile: bockw defconfig: add RTC RX8581 support
    ARM: shmobile: marzen: keep local function as static
    ARM: shmobile: bockw: add SDHI0 support
    ARM: shmobile: marzen: Use INTC External IRQ pin driver for SMSC
    ARM: shmobile: lager: support GPIO switches
    ...

    Linus Torvalds
     
  • Pull ARM SoC specific changes from Arnd Bergmann:
    "These changes are all to SoC-specific code, a total of 33 branches on
    17 platforms were pulled into this. Like last time, Renesas sh-mobile
    is now the platform with the most changes, followed by OMAP and
    EXYNOS.

    Two new platforms, TI Keystone and Rockchips RK3xxx are added in this
    branch, both containing almost no platform specific code at all, since
    they are using generic subsystem interfaces for clocks, pinctrl,
    interrupts etc. The device drivers are getting merged through the
    respective subsystem maintainer trees.

    One more SoC (u300) is now multiplatform capable and several others
    (shmobile, exynos, msm, integrator, kirkwood, clps711x) are moving
    towards that goal with this series but need more work.

    Also noteworthy is the work on PCI here, which is traditionally part
    of the SoC specific code. With the changes done by Thomas Petazzoni,
    we can now more easily have PCI host controller drivers as loadable
    modules and keep them separate from the platform code in
    drivers/pci/host. This has already led to the discovery that three
    platforms (exynos, spear and imx) are actually using an identical PCIe
    host controller and will be able to share a driver once support for
    spear and imx is added."

    * tag 'soc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (480 commits)
    ARM: integrator: let pciv3 use mem/premem from device tree
    ARM: integrator: set local side PCI addresses right
    ARM: dts: Add pcie controller node for exynos5440-ssdk5440
    ARM: dts: Add pcie controller node for Samsung EXYNOS5440 SoC
    ARM: EXYNOS: Enable PCIe support for Exynos5440
    pci: Add PCIe driver for Samsung Exynos
    ARM: OMAP5: voltagedomain data: remove temporary OMAP4 voltage data
    ARM: keystone: Move CPU bringup code to dedicated asm file
    ARM: multiplatform: always pick one CPU type
    ARM: imx: select syscon for IMX6SL
    ARM: keystone: select ARM_ERRATA_798181 only for SMP
    ARM: imx: Synertronixx scb9328 needs to select SOC_IMX1
    ARM: OMAP2+: AM43x: resolve SMP related build error
    dmaengine: edma: enable build for AM33XX
    ARM: edma: Add EDMA crossbar event mux support
    ARM: edma: Add DT and runtime PM support to the private EDMA API
    dmaengine: edma: Add TI EDMA device tree binding
    arm: add basic support for Rockchip RK3066a boards
    arm: add debug uarts for rockchip rk29xx and rk3xxx series
    arm: Add basic clocks for Rockchip rk3066a SoCs
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Arnd Bergmann:
    "This contains cleanups as preparation for other branches adding new
    features, we pulled 16 branches for 9 platforms into this one.

    Most notable here is the removal of support for ATAGS based OMAP4
    systems. Since all OMAP4 machines are fully functional with DT based
    booting in 3.10, we can remove a lot of code here.

    Also noteworthy is Maxime Ripard's cleanup of the machine descriptors,
    which means we need no machine descriptors in a lot more cases and can
    boot additional machines by just having the respective device drivers
    enabled."

    * tag 'cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (76 commits)
    ARM: picoxcell: remove .nr_irqs reference
    ARM: s5p64x0: avoid build warning for uncompress.h
    ARM: SAMSUNG: Remove unused plat/regs-watchdog.h header
    ARM: SAMSUNG: Remove legacy watchdog reset code
    ARM: SAMSUNG: Let platforms use the new watchdog reset driver
    ARM: SAMSUNG: Add watchdog reset driver
    ARM: SAMSUNG: Use local definitions of watchdog registers
    watchdog: s3c2410_wdt: Use local register definitions
    ARM: S5P64X0: Use common uncompress.h part for plat-samsung
    ARM: SAMSUNG: Consolidate uncompress subroutine
    ARM: at91: drop rm9200dk board support
    ARM: dts: msm: Fix merge resolution
    ARM: OMAP1: Remove dma.h
    ARM: OMAP1: Remove legacy irda.h and irda setup from board files
    ARM: OMAP1: Remove duplicated DMA channel definitions
    ARM: OMAP1: Remove McBSP DMA channel definitions
    ARM: OMAP2+: Remove dma.h
    ARM: OMAP2+: hwmod: Remove remaining DMA channel definitions
    ARM: OMAP2+: Remove duplicated DMA channel definitions
    ARM: OMAP2+: Remove AES crypto device DMA channel definitions
    ...

    Linus Torvalds