1. 15 Oct, 2014 8 commits
    • Kan Liang's avatar
      perf test: Add test case for pmu event new style format · ffe59788
      Kan Liang authored
      Add test case in automated tests suite. It checks not only the two types
      of pmu event stytle formats "pmu_event_name" and "cpu/pmu_event_name/",
      but also the different formats mixtures which are more likely to trigger
      parse issue.
      
      The patch set including this one has been tested by the perf automated
      test:
      
         ./perf test parse -v"
      
      On haswell, ivybridge and Romley platform.
      
      The patch set also has been tested on haswell by the following script.
      
      Note: please make sure that your test system support TSX and
      L1-dcache-loads events. Otherwise, you may want to change the events to
      other pmu events.
      
        [lk@localhost ~]$ cat perf_style_test.sh
        # hardware events + kernel pmu event with different style
        perf stat -x, -e cycles,mem-stores,tx-start sleep 2
        perf stat -x, -e cpu-cycles,cycles-ct,cycles-t sleep 2
        perf stat -x, -e cycles,cpu/cycles-ct/,cpu/cycles-t/ sleep 2
        perf stat -x, -e instructions,cpu/tx-start/ sleep 2
        perf stat -x, -e '{cycles,tx-start}' sleep 2
        perf stat -x, -e '{cycles,cpu/tx-start/}' sleep 2
      
        # HW Cache event + kernel pmu event with different style
        perf stat -x, -e L1-dcache-loads,cpu/mem-stores/,tx-start sleep 2
        perf stat -x, -e L1-dcache-loads,mem-stores,cpu/tx-start/ sleep 2
        perf stat -x, -e '{L1-dcache-loads,mem-stores}' sleep 2
        perf stat -x, -e '{L1-dcache-loads,cpu/tx-start/}' sleep 2
      
        # Raw event + kernel pmu event with different style:
        perf stat -x, -e cpu/event=0xc0,umask=0x00/,mem-loads,cpu/mem-stores/ sleep 2
        perf stat -x, -e cpu/event=0xc0,umask=0x00/,tx-start,cpu/el-start/ sleep 2
        perf stat -x, -e '{cpu/event=0xc0,umask=0x00/,tx-start}' sleep 2
      Signed-off-by: default avatarKan Liang <kan.liang@intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1412694532-23391-5-git-send-email-kan.liang@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ffe59788
    • Kan Liang's avatar
      perf tools: Add support to new style format of kernel PMU event · ba32a451
      Kan Liang authored
      Add new rules for kernel PMU event.
      
      Currently, the patch only want to handle the PMU event name as "a-b" and
      "a".
      
      event_pmu:
      PE_KERNEL_PMU_EVENT sep_dc
      |
      PE_PMU_EVENT_PRE '-' PE_PMU_EVENT_SUF sep_dc
      
      PE_KERNEL_PMU_EVENT token is for
      cycles-ct/cycles-t/mem-loads/mem-stores.
      
      The prefix cycles is mixed up with cpu-cycles.  loads and stores are
      mixed up with cache event So they have to be hardcode in lex.
      
      PE_PMU_EVENT_PRE and PE_PMU_EVENT_SUF tokens are for other PMU events.
      
      The lex looks generic identifier up in the table and return the matched
      token. If there is no match, generic PE_NAME token will be return.
      
      Using the rules, kernel PMU event could use new style format without //
      
      so you can use:
      
        perf record -e mem-loads ...
      
      instead of:
      
        perf record -e cpu/mem-loads/
      Signed-off-by: default avatarKan Liang <kan.liang@intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1412694532-23391-4-git-send-email-kan.liang@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ba32a451
    • Kan Liang's avatar
      perf tools: Parse the pmu event prefix and suffix · dcb4e102
      Kan Liang authored
      There are two types of event formats for PMU events. E.g. el-abort OR
      cpu/el-abort/. However, the lexer mistakenly recognizes the simple style
      format as two events.
      
      The parse_events_pmu_check function uses bsearch to search the name in
      known pmu event list. It can tell the lexer that the name is a PE_NAME
      or a PMU event name prefix or a PMU event name suffix. All these
      information will be used for accurately parsing kernel PMU events.
      
      The pmu events list will be read from sysfs at runtime.
      
      Note: Currently, the patch only want to handle the PMU event name as
      "a-b" and "a". The only exception, "stalled-cycles-frontend" and
      "stalled-cycles-fronted", are already hardcoded in lexer.
      Signed-off-by: default avatarKan Liang <kan.liang@intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1412694532-23391-3-git-send-email-kan.liang@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      dcb4e102
    • Kan Liang's avatar
      Revert "perf tools: Default to cpu// for events v5" · 42f60c2d
      Kan Liang authored
      This reverts commit 50e200f0 ("perf tools: Default to cpu// for
      events v5")
      
      The fixup cannot handle the case that
      new style format(which without //) mixed with
      other different formats.
      
      For example,
      group events with new style format: {mem-stores,mem-loads}
      some hardware event + new style event: cycles,mem-loads
      Cache event + new style event: LLC-loads,mem-loads
      Raw event + new style event:
      cpu/event=0xc8,umask=0x08/,mem-loads
      old style event and new stytle mixture: mem-stores,cpu/mem-loads/
      Signed-off-by: default avatarKan Liang <kan.liang@intel.com>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Link: http://lkml.kernel.org/r/1412694532-23391-2-git-send-email-kan.liang@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      42f60c2d
    • Cody P Schafer's avatar
      perf Documentation: Remove Ruplicated docs for powerpc cpu specific events · b56d5bef
      Cody P Schafer authored
      Listing specific events doesn't actually help us at all here because:
       - these events actually vary between different ppc processors, they
         aren't garunteed to be present.
       - the documentation of the (generic) file contents is now superceded by the
         docs for arbitrary event file contents.
      Signed-off-by: default avatarCody P Schafer <dev@codyps.com>
      Signed-off-by: default avatarSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
      Cc: Haren Myneni <hbabu@us.ibm.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Michael Ellerman <michaele@au1.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: http://lkml.kernel.org/r/1412143402-26061-5-git-send-email-sukadev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b56d5bef
    • Cody P Schafer's avatar
      perf Documentation: sysfs events/ interfaces · ed90a446
      Cody P Schafer authored
      Add documentation for the <event>, <event>.scale, and <event>.unit
      files in sysfs.
      
      	<event>.scale and <event>.unit were undocumented.
      	<event> was previously documented only for specific powerpc pmu events.
      Signed-off-by: default avatarCody P Schafer <dev@codyps.com>
      Signed-off-by: default avatarSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
      Cc: Cody P Schafer <dev@codyps.com>
      Cc: Haren Myneni <hbabu@us.ibm.com>
      Cc: Haren Myneni <hbabu@us.ibm.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Michael Ellerman <michaele@au1.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: http://lkml.kernel.org/r/1412143402-26061-4-git-send-email-sukadev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      ed90a446
    • Taeung Song's avatar
      perf top: Add a visual cue for toggle zeroing of samples · 1e378ebd
      Taeung Song authored
      When 'perf top' is run, one can't easily find a difference
      between -z option and normal output.
      So I added a visual cue to know whether it is the zeroing or not.
      
      Output is as below.
      
      Before:
       $ perf top
      
       Samples: 61K of event 'cycles', Event count (approx.): 3908136933
       Overhead  Shared Object                       Symbol
          1.42%  firefox                             [.] 0x0000000000011e76
          1.32%  libpthread-2.17.so                  [.] pthread_mutex_lock
      
      If you press key 'z' or run with zero option like '$ perf top --zero', it is as below.
      
      After:
       Samples: 61K of event 'cycles', Event count (approx.): 3908136933 [z]
       Overhead  Shared Object                       Symbol
          1.42%  firefox                             [.] 0x0000000000011e76
          1.32%  libpthread-2.17.so                  [.] pthread_mutex_lock
      Signed-off-by: default avatarTaeung Song <treeze.taeung@gmail.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1412665995-26359-1-git-send-email-treeze.taeung@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      1e378ebd
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo' of... · ec4212d8
      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:
      
      Infrastructure fixes and changes:
      
        * Fix off-by-one bugs in map->end handling (Stephane Eranian)
      
        * Fix off-by-one bug in maps__find(), also related to map->end handling (Namhyung Kim)
      
        * Make struct symbol->end be the first addr after the symbol range, to make it
          match the convention used for struct map->end. (Arnaldo Carvalho de Melo)
      
        * Fix perf_evlist__add_pollfd() error handling in 'perf kvm stat live' (Jiri Olsa)
      
        * Fix python test build by moving callchain_param to an object linked into the
          python binding (Jiri Olsa)
      
        * Do not include a struct hists per perf_evsel, untangling the histogram code
          from perf_evsel, to pave the way for exporting a minimalistic
          tools/lib/api/perf/ library usable by tools/perf and initially by the rasd
          daemon being developed by Borislav Petkov, Robert Richter and Jean Pihet.
          (Arnaldo Carvalho de Melo)
      
        * Make perf_evlist__open(evlist, NULL, NULL), i.e. without cpu and thread
          maps mean syswide monitoring, reducing the boilerplate for tools that
          only want system wide mode. (Arnaldo Carvalho de Melo)
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ec4212d8
  2. 14 Oct, 2014 22 commits
  3. 13 Oct, 2014 10 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f1d0d141
      Linus Torvalds authored
      Pull x86 cpu offlining patch from Ingo Molnar:
       "This tree includes a single commit that speeds up x86 suspend/resume
        by replacing a naive 100msec sleep based polling loop with proper
        completion notification.
      
        This gives some real suspend/resume benefit on servers with larger
        core counts"
      
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smpboot: Speed up suspend/resume by avoiding 100ms sleep for CPU offline during S3
      f1d0d141
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bf10fa85
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Three small cleanups"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tty/serial/8250: Clean up the asm/serial.h include file a bit
        x86/tty/serial/8250: Resolve missing-field-initializers warnings
        x86: Remove obsolete comment in uapi/e820.h
      bf10fa85
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5941fe3b
      Linus Torvalds authored
      Pull x86 build update from Ingo Molnar:
       "A single commit that simplifies the no-FPU-ops build options"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kbuild: Eliminate duplicate command line options
      5941fe3b
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 19e00d59
      Linus Torvalds authored
      Pull x86 bootup updates from Ingo Molnar:
       "The changes in this cycle were:
      
         - Fix rare SMP-boot hang (mostly in virtual environments)
      
         - Fix build warning with certain (rare) toolchains"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/relocs: Make per_cpu_load_addr static
        x86/smpboot: Initialize secondary CPU only if master CPU will wait for it
      19e00d59
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 197fe6b0
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "The changes in this cycle were:
      
         - Speed up the x86 __preempt_schedule() implementation
         - Fix/improve low level asm code debug info annotations"
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Unwind-annotate thunk_32.S
        x86: Improve cmpxchg8b_emu.S
        x86: Improve cmpxchg16b_emu.S
        x86/lib/Makefile: Remove the unnecessary "+= thunk_64.o"
        x86: Speed up ___preempt_schedule*() by using THUNK helpers
      197fe6b0
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · faafcba3
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle were:
      
         - Optimized support for Intel "Cluster-on-Die" (CoD) topologies (Dave
           Hansen)
      
         - Various sched/idle refinements for better idle handling (Nicolas
           Pitre, Daniel Lezcano, Chuansheng Liu, Vincent Guittot)
      
         - sched/numa updates and optimizations (Rik van Riel)
      
         - sysbench speedup (Vincent Guittot)
      
         - capacity calculation cleanups/refactoring (Vincent Guittot)
      
         - Various cleanups to thread group iteration (Oleg Nesterov)
      
         - Double-rq-lock removal optimization and various refactorings
           (Kirill Tkhai)
      
         - various sched/deadline fixes
      
        ... and lots of other changes"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (72 commits)
        sched/dl: Use dl_bw_of() under rcu_read_lock_sched()
        sched/fair: Delete resched_cpu() from idle_balance()
        sched, time: Fix build error with 64 bit cputime_t on 32 bit systems
        sched: Improve sysbench performance by fixing spurious active migration
        sched/x86: Fix up typo in topology detection
        x86, sched: Add new topology for multi-NUMA-node CPUs
        sched/rt: Use resched_curr() in task_tick_rt()
        sched: Use rq->rd in sched_setaffinity() under RCU read lock
        sched: cleanup: Rename 'out_unlock' to 'out_free_new_mask'
        sched: Use dl_bw_of() under RCU read lock
        sched/fair: Remove duplicate code from can_migrate_task()
        sched, mips, ia64: Remove __ARCH_WANT_UNLOCKED_CTXSW
        sched: print_rq(): Don't use tasklist_lock
        sched: normalize_rt_tasks(): Don't use _irqsave for tasklist_lock, use task_rq_lock()
        sched: Fix the task-group check in tg_has_rt_tasks()
        sched/fair: Leverage the idle state info when choosing the "idlest" cpu
        sched: Let the scheduler see CPU idle states
        sched/deadline: Fix inter- exclusive cpusets migrations
        sched/deadline: Clear dl_entity params when setscheduling to different class
        sched/numa: Kill the wrong/dead TASK_DEAD check in task_numa_fault()
        ...
      faafcba3
    • Linus Torvalds's avatar
      Merge branch 'perf-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13ead805
      Linus Torvalds authored
      Pull watchdog fixes from Ingo Molnar:
       "Two small watchdog subsystem fixes"
      
      * 'perf-watchdog-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        watchdog: Fix print-once on enable
        watchdog: Remove unnecessary header files
      13ead805
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ebf546cc
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Two leftover fixes from the v3.17 cycle - these will be forwarded to
        stable as well, if they prove problem-free in wider testing as well"
      
      [ Side note: the "fix perf bug in fork()" fix had also come in through
        Andrew's patch-bomb   - Linus ]
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf: Fix perf bug in fork()
        perf: Fix unclone_ctx() vs. locking
      ebf546cc
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d9420f1
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side updates:
      
         - Fix and enhance poll support (Jiri Olsa)
      
         - Re-enable inheritance optimization (Jiri Olsa)
      
         - Enhance Intel memory events support (Stephane Eranian)
      
         - Refactor the Intel uncore driver to be more maintainable (Zheng
           Yan)
      
         - Enhance and fix Intel CPU and uncore PMU drivers (Peter Zijlstra,
           Andi Kleen)
      
         - [ plus various smaller fixes/cleanups ]
      
        User visible tooling updates:
      
         - Add +field argument support for --field option, so that one can add
           fields to the default list of fields to show, ie now one can just
           do:
      
               perf report --fields +pid
      
           And the pid will appear in addition to the default fields (Jiri
           Olsa)
      
         - Add +field argument support for --sort option (Jiri Olsa)
      
         - Honour -w in the report tools (report, top), allowing to specify
           the widths for the histogram entries columns (Namhyung Kim)
      
         - Properly show submicrosecond times in 'perf kvm stat' (Christian
           Borntraeger)
      
         - Add beautifier for mremap flags param in 'trace' (Alex Snast)
      
         - perf script: Allow callchains if any event samples them
      
         - Don't truncate Intel style addresses in 'annotate' (Alex Converse)
      
         - Allow profiling when kptr_restrict == 1 for non root users, kernel
           samples will just remain unresolved (Andi Kleen)
      
         - Allow configuring default options for callchains in config file
           (Namhyung Kim)
      
         - Support operations for shared futexes.  (Davidlohr Bueso)
      
         - "perf kvm stat report" improvements by Alexander Yarygin:
             -  Save pid string in opts.target.pid
             -  Enable the target.system_wide flag
             -  Unify the title bar output
      
         - [ plus lots of other fixes and small improvements.  ]
      
        Tooling infrastructure changes:
      
         - Refactor unit and scale function parameters for PMU parsing
           routines (Matt Fleming)
      
         - Improve DSO long names lookup with rbtree, resulting in great
           speedup for workloads with lots of DSOs (Waiman Long)
      
         - We were not handling POLLHUP notifications for event file
           descriptors
      
           Fix it by filtering entries in the events file descriptor array
           after poll() returns, refcounting mmaps so that when the last fd
           pointing to a perf mmap goes away we do the unmap (Arnaldo Carvalho
           de Melo)
      
         - Intel PT prep work, from Adrian Hunter, including:
             - Let a user specify a PMU event without any config terms
             - Add perf-with-kcore script
             - Let default config be defined for a PMU
             - Add perf_pmu__scan_file()
             - Add a 'perf test' for tracking with sched_switch
             - Add 'flush' callback to scripting API
      
         - Use ring buffer consume method to look like other tools (Arnaldo
           Carvalho de Melo)
      
         - hists browser (used in top and report) refactorings, getting rid of
           unused variables and reducing source code size by handling similar
           cases in a fewer functions (Namhyung Kim).
      
         - Replace thread unsafe strerror() with strerror_r() accross the
           whole tools/perf/ tree (Masami Hiramatsu)
      
         - Rename ordered_samples to ordered_events and allow setting a queue
           size for ordering events (Jiri Olsa)
      
         - [ plus lots of fixes, cleanups and other improvements ]"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (198 commits)
        perf/x86: Tone down kernel messages when the PMU check fails in a virtual environment
        perf/x86/intel/uncore: Fix minor race in box set up
        perf record: Fix error message for --filter option not coming after tracepoint
        perf tools: Fix build breakage on arm64 targets
        perf symbols: Improve DSO long names lookup speed with rbtree
        perf symbols: Encapsulate dsos list head into struct dsos
        perf bench futex: Sanitize -q option in requeue
        perf bench futex: Support operations for shared futexes
        perf trace: Fix mmap return address truncation to 32-bit
        perf tools: Refactor unit and scale function parameters
        perf tools: Fix line number in the config file error message
        perf tools: Convert {record,top}.call-graph option to call-graph.record-mode
        perf tools: Introduce perf_callchain_config()
        perf callchain: Move some parser functions to callchain.c
        perf tools: Move callchain config from record_opts to callchain_param
        perf hists browser: Fix callchain print bug on TUI
        perf tools: Use ACCESS_ONCE() instead of volatile cast
        perf tools: Modify error code for when perf_session__new() fails
        perf tools: Fix perf record as non root with kptr_restrict == 1
        perf stat: Fix --per-core on multi socket systems
        ...
      9d9420f1
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6d5f0ebf
      Linus Torvalds authored
      Pull core locking updates from Ingo Molnar:
       "The main updates in this cycle were:
      
         - mutex MCS refactoring finishing touches: improve comments, refactor
           and clean up code, reduce debug data structure footprint, etc.
      
         - qrwlock finishing touches: remove old code, self-test updates.
      
         - small rwsem optimization
      
         - various smaller fixes/cleanups"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/lockdep: Revert qrwlock recusive stuff
        locking/rwsem: Avoid double checking before try acquiring write lock
        locking/rwsem: Move EXPORT_SYMBOL() lines to follow function definition
        locking/rwlock, x86: Delete unused asm/rwlock.h and rwlock.S
        locking/rwlock, x86: Clean up asm/spinlock*.h to remove old rwlock code
        locking/semaphore: Resolve some shadow warnings
        locking/selftest: Support queued rwlock
        locking/lockdep: Restrict the use of recursive read_lock() with qrwlock
        locking/spinlocks: Always evaluate the second argument of spin_lock_nested()
        locking/Documentation: Update locking/mutex-design.txt disadvantages
        locking/Documentation: Move locking related docs into Documentation/locking/
        locking/mutexes: Use MUTEX_SPIN_ON_OWNER when appropriate
        locking/mutexes: Refactor optimistic spinning code
        locking/mcs: Remove obsolete comment
        locking/mutexes: Document quick lock release when unlocking
        locking/mutexes: Standardize arguments in lock/unlock slowpaths
        locking: Remove deprecated smp_mb__() barriers
      6d5f0ebf