Skip to content
  1. Jun 23, 2015
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c58267e9
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side changes mostly consist of work on x86 PMU drivers:
      
         - x86 Intel PT (hardware CPU tracer) improvements (Alexander
           Shishkin)
      
         - x86 Intel CQM (cache quality monitoring) improvements (Thomas
           Gleixner)
      
         - x86 Intel PEBSv3 support (Peter Zijlstra)
      
         - x86 Intel PEBS interrupt batching support for lower overhead
           sampling (Zheng Yan, Kan Liang)
      
         - x86 PMU scheduler fixes and improvements (Peter Zijlstra)
      
        There's too many tooling improvements to list them all - here are a
        few select highlights:
      
        'perf bench':
      
            - Introduce new 'perf bench futex' benchmark: 'wake-parallel', to
              measure parallel waker threads generating contention for kernel
              locks (hb->lock). (Davidlohr Bueso)
      
        'perf top', 'perf report':
      
            - Allow disabling/enabling events dynamicaly in 'perf top':
              a 'perf top' session can instantly become a 'perf report'
              one, i.e. going from dynamic analysis to a static one,
              returning to a dynamic one is possible, to toogle the
              modes, just press 'f' to 'freeze/unfreeze' the sampling. (Arnaldo Carvalho de Melo)
      
            - Make Ctrl-C stop processing on TUI, allowing interrupting the load of big
              perf.data files (Namhyung Kim)
      
        'perf probe': (Masami Hiramatsu)
      
            - Support glob wildcards for function name
            - Support $params special probe argument: Collect all function arguments
            - Make --line checks validate C-style function name.
            - Add --no-inlines option to avoid searching inline functions
            - Greatly speed up 'perf probe --list' by caching debuginfo.
            - Improve --filter support for 'perf probe', allowing using its arguments
              on other commands, as --add, --del, etc.
      
        'perf sched':
      
            - Add option in 'perf sched' to merge like comms to lat output (Josef Bacik)
      
        Plus tons of infrastructure work - in particular preparation for
        upcoming threaded perf report support, but also lots of other work -
        and fixes and other improvements.  See (much) more details in the
        shortlog and in the git log"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (305 commits)
        perf tools: Configurable per thread proc map processing time out
        perf tools: Add time out to force stop proc map processing
        perf report: Fix sort__sym_cmp to also compare end of symbol
        perf hists browser: React to unassigned hotkey pressing
        perf top: Tell the user how to unfreeze events after pressing 'f'
        perf hists browser: Honour the help line provided by builtin-{top,report}.c
        perf hists browser: Do not exit when 'f' is pressed in 'report' mode
        perf top: Replace CTRL+z with 'f' as hotkey for enable/disable events
        perf annotate: Rename source_line_percent to source_line_samples
        perf annotate: Display total number of samples with --show-total-period
        perf tools: Ensure thread-stack is flushed
        perf top: Allow disabling/enabling events dynamicly
        perf evlist: Add toggle_enable() method
        perf trace: Fix race condition at the end of started workloads
        perf probe: Speed up perf probe --list by caching debuginfo
        perf probe: Show usage even if the last event is skipped
        perf tools: Move libtraceevent dynamic list to separated LDFLAGS variable
        perf tools: Fix a problem when opening old perf.data with different byte order
        perf tools: Ignore .config-detected in .gitignore
        perf probe: Fix to return error if no probe is added
        ...
      c58267e9
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1bf7067c
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The main changes are:
      
         - 'qspinlock' support, enabled on x86: queued spinlocks - these are
           now the spinlock variant used by x86 as they outperform ticket
           spinlocks in every category.  (Waiman Long)
      
         - 'pvqspinlock' support on x86: paravirtualized variant of queued
           spinlocks.  (Waiman Long, Peter Zijlstra)
      
         - 'qrwlock' support, enabled on x86: queued rwlocks.  Similar to
           queued spinlocks, they are now the variant used by x86:
      
             CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
             CONFIG_QUEUED_SPINLOCKS=y
             CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
             CONFIG_QUEUED_RWLOCKS=y
      
         - various lockdep fixlets
      
         - various locking primitives cleanups, further WRITE_ONCE()
           propagation"
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        locking/lockdep: Remove hard coded array size dependency
        locking/qrwlock: Don't contend with readers when setting _QW_WAITING
        lockdep: Do not break user-visible string
        locking/arch: Rename set_mb() to smp_store_mb()
        locking/arch: Add WRITE_ONCE() to set_mb()
        rtmutex: Warn if trylock is called from hard/softirq context
        arch: Remove __ARCH_HAVE_CMPXCHG
        locking/rtmutex: Drop usage of __HAVE_ARCH_CMPXCHG
        locking/qrwlock: Rename QUEUE_RWLOCK to QUEUED_RWLOCKS
        locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS
        locking/pvqspinlock: Replace xchg() by the more descriptive set_mb()
        locking/pvqspinlock, x86: Enable PV qspinlock for Xen
        locking/pvqspinlock, x86: Enable PV qspinlock for KVM
        locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching
        locking/pvqspinlock: Implement simple paravirt support for the qspinlock
        locking/qspinlock: Revert to test-and-set on hypervisors
        locking/qspinlock: Use a simple write to grab the lock
        locking/qspinlock: Optimize for smaller NR_CPUS
        locking/qspinlock: Extract out code snippets for the next patch
        locking/qspinlock: Add pending bit
        ...
      1bf7067c
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fc934d40
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
      
       - Continued initialization/Kconfig updates: hide most Kconfig options
         from unsuspecting users.
      
         There's now a single high level configuration option:
      
              *
              * RCU Subsystem
              *
              Make expert-level adjustments to RCU configuration (RCU_EXPERT) [N/y/?] (NEW)
      
         Which if answered in the negative, leaves us with a single
         interactive configuration option:
      
              Offload RCU callback processing from boot-selected CPUs (RCU_NOCB_CPU) [N/y/?] (NEW)
      
         All the rest of the RCU options are configured automatically.  Later
         on we'll remove this single leftover configuration option as well.
      
       - Remove all uses of RCU-protected array indexes: replace the
         rcu_[access|dereference]_index_check() APIs with READ_ONCE() and
         rcu_lockdep_assert()
      
       - RCU CPU-hotplug cleanups
      
       - Updates to Tiny RCU: a race fix and further code shrinkage.
      
       - RCU torture-testing updates: fixes, speedups, cleanups and
         documentation updates.
      
       - Miscellaneous fixes
      
       - Documentation updates
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
        rcutorture: Allow repetition factors in Kconfig-fragment lists
        rcutorture: Display "make oldconfig" errors
        rcutorture: Update TREE_RCU-kconfig.txt
        rcutorture: Make rcutorture scripts force RCU_EXPERT
        rcutorture: Update configuration fragments for rcutree.rcu_fanout_exact
        rcutorture: TASKS_RCU set directly, so don't explicitly set it
        rcutorture: Test SRCU cleanup code path
        rcutorture: Replace barriers with smp_store_release() and smp_load_acquire()
        locktorture: Change longdelay_us to longdelay_ms
        rcutorture: Allow negative values of nreaders to oversubscribe
        rcutorture: Exchange TREE03 and TREE08 NR_CPUS, speed up CPU hotplug
        rcutorture: Exchange TREE03 and TREE04 geometries
        locktorture: fix deadlock in 'rw_lock_irq' type
        rcu: Correctly handle non-empty Tiny RCU callback list with none ready
        rcutorture: Test both RCU-sched and RCU-bh for Tiny RCU
        rcu: Further shrink Tiny RCU by making empty functions static inlines
        rcu: Conditionally compile RCU's eqs warnings
        rcu: Remove prompt for RCU implementation
        rcu: Make RCU able to tolerate undefined CONFIG_RCU_KTHREAD_PRIO
        rcu: Make RCU able to tolerate undefined CONFIG_RCU_FANOUT_LEAF
        ...
      fc934d40
    • Linus Torvalds's avatar
      Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 052b398a
      Linus Torvalds authored
      Pull vfs updates from Al Viro:
       "In this pile: pathname resolution rewrite.
      
         - recursion in link_path_walk() is gone.
      
         - nesting limits on symlinks are gone (the only limit remaining is
           that the total amount of symlinks is no more than 40, no matter how
           nested).
      
         - "fast" (inline) symlinks are handled without leaving rcuwalk mode.
      
         - stack footprint (independent of the nesting) is below kilobyte now,
           about on par with what it used to be with one level of nested
           symlinks and ~2.8 times lower than it used to be in the worst case.
      
         - struct nameidata is entirely private to fs/namei.c now (not even
           opaque pointers are being passed around).
      
         - ->follow_link() and ->put_link() calling conventions had been
           changed; all in-tree filesystems converted, out-of-tree should be
           able to follow reasonably easily.
      
           For out-of-tree conversions, see Documentation/filesystems/porting
           for details (and in-tree filesystems for examples of conversion).
      
        That has sat in -next since mid-May, seems to survive all testing
        without regressions and merges clean with v4.1"
      
      * 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (131 commits)
        turn user_{path_at,path,lpath,path_dir}() into static inlines
        namei: move saved_nd pointer into struct nameidata
        inline user_path_create()
        inline user_path_parent()
        namei: trim do_last() arguments
        namei: stash dfd and name into nameidata
        namei: fold path_cleanup() into terminate_walk()
        namei: saner calling conventions for filename_parentat()
        namei: saner calling conventions for filename_create()
        namei: shift nameidata down into filename_parentat()
        namei: make filename_lookup() reject ERR_PTR() passed as name
        namei: shift nameidata inside filename_lookup()
        namei: move putname() call into filename_lookup()
        namei: pass the struct path to store the result down into path_lookupat()
        namei: uninline set_root{,_rcu}()
        namei: be careful with mountpoint crossings in follow_dotdot_rcu()
        Documentation: remove outdated information from automount-support.txt
        get rid of assorted nameidata-related debris
        lustre: kill unused helper
        lustre: kill unused macro (LOOKUP_CONTINUE)
        ...
      052b398a
  2. Jun 22, 2015
  3. Jun 21, 2015
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · d2228e43
      Linus Torvalds authored
      Pull scsi target fixes from Nicholas Bellinger:
       "Apologies for the late pull request.
      
        Here are the outstanding target-pending fixes for v4.1 code.
      
        The series contains three patches from Sagi + Co that address a few
        iser-target issues that have been uncovered during recent testing at
        Mellanox.
      
        Patch #1 has a v3.16+ stable tag, and #2-3 have v3.10+ stable tags"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
        iser-target: Fix possible use-after-free
        iser-target: release stale iser connections
        iser-target: Fix variable-length response error completion
      d2228e43
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 8f4ce072
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A smattering of fixes,
      
        mgag200:
            don't accept modes that aren't aligned properly as hw can't do it
      
        i915:
            two regression fixes
      
        radeon:
            one query to allow userspace fixes
            one oops fixer for older hw with new options enabled"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/radeon: don't probe MST on hw we don't support it on
        drm/radeon: Add RADEON_INFO_VA_UNMAP_WORKING query
        drm/mgag200: Reject non-character-cell-aligned mode widths
        Revert "drm/i915: Don't skip request retirement if the active list is empty"
        drm/i915: Always reset vma->ggtt_view.pages cache on unbinding
      8f4ce072
  4. Jun 20, 2015
  5. Jun 19, 2015
  6. Jun 18, 2015
    • Ingo Molnar's avatar
      Merge tag 'perf-core-for-mingo-2' of... · 79928928
      Ingo Molnar authored
      Merge tag 'perf-core-for-mingo-2' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
       into perf/core
      
      Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:
      
      User visible changes:
      
        - List perf probes to stdout. (Masami Hiramatsu)
      
        - Return error when none of the requested probes were
          installed. (Masami Hiramatsu)
      
        - Cut off the gcc optimization postfixes from
          function name in 'perf probe'. (Masami Hiramatsu)
      
        - Allow disabling/enabling events dynamicly in 'perf top':
          a 'perf top' session can instantly become a 'perf report'
          one, i.e. going from dynamic analysis to a static one,
          returning to a dynamic one is possible, to toogle the
          modes, just press CTRL+z. (Arnaldo Carvalho de Melo)
      
        - Greatly speed up 'perf probe --list' by caching debuginfo.
          (Masami Hiramatsu)
      
        - Fix 'perf trace' race condition at the end of started
          workloads. (Sukadev Bhattiprolu)
      
        - Fix a problem when opening old perf.data with different
          byte order. (Wang Nan)
      
      Infrastructure changes:
      
        - Replace map->referenced & maps->removed_maps with
          map->refcnt. (Arnaldo Carvalho de Melo)
      
        - Introduce the xyarray__reset() function. (Jiri Olsa)
      
        - Add thread_map__(alloc|realloc)() helpers. (Jiri Olsa)
      
        - Move perf_evsel__(alloc|free|reset)_counts into stat object. (Jiri Olsa)
      
        - Introduce perf_counts__(new|delete|reset)() functions. (Jiri Olsa)
      
        - Ignore .config-detected in .gitignore. (Wang Nan)
      
        - Move libtraceevent dynamic list to separated LDFLAGS
          variable. (Wang Nan)
      
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      79928928
    • Linus Torvalds's avatar
      Merge tag 'trace-fix-filter-4.1-rc8' of... · 17fda38f
      Linus Torvalds authored
      Merge tag 'trace-fix-filter-4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
      
      Pull tracing filter fix from Steven Rostedt:
       "Vince Weaver reported a warning when he added perf event filters into
        his fuzzer tests.  There's a missing check of balanced operations when
        parenthesis are used, and this triggers a WARN_ON() and when reading
        the failure, the filter reports no failure occurred.
      
        The operands were not being checked if they match, this adds that"
      
      * tag 'trace-fix-filter-4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tracing: Have filter check for balanced ops
      17fda38f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 32e0e382
      Linus Torvalds authored
      Pull kvm bugfix from Marcelo Tosatti:
       "Rrestore APIC migration functionality"
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86: fix lapic.timer_mode on restore
      32e0e382
    • Mauro Carvalho Chehab's avatar
      Kconfig: disable Media Controller for DVB · 6cea28d0
      Mauro Carvalho Chehab authored
      
      
      Since when we start discussions about the usage Media Controller for
      complex hardware, one thing become clear: the way it is, MC fails to
      map anything different than capture/output/m2m video-only streaming.
      
      The point is that MC has entities named as devnodes, but the only
      devnode used (before the DVB patches) is MEDIA_ENT_T_DEVNODE_V4L.
      Due to the way MC got implemented, however, this entity actually
      doesn't represent the devnode, but the hardware I/O engine that
      receives data via DMA.
      
      By coincidence, such DMA is associated with the V4L device node
      on webcam hardware, but this is not true even for other V4L2
      devices. For example, on USB hardware, the DMA is done via the
      USB controller. The data passes though a in-kernel filter that
      strips off the URB headers. Other V4L2 devices like radio may not
      even have DMA. When it have, the DMA is done via ALSA, and not
      via the V4L devnode.
      
      In other words, MC is broken as a whole, but tagging it as BROKEN
      right now would do more harm than good.
      
      So, instead, let's mark, for now, the DVB part as broken and
      block all new changes to MC while we fix this mess, whith
      we hopefully will do for the next Kernel version.
      
      Requested-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
      Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6cea28d0
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 49fe9bcc
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes the following issues:
      
         - Crash in caam hash due to uninitialised buffer lengths.
      
         - Alignment issue in caam RNG that may lead to non-random output"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: caam - fix RNG buffer cache alignment
        crypto: caam - improve initalization for context state saves
      49fe9bcc
    • Hugh Dickins's avatar
      mm: shmem_zero_setup skip security check and lockdep conflict with XFS · 66fc1303
      Hugh Dickins authored
      It appears that, at some point last year, XFS made directory handling
      changes which bring it into lockdep conflict with shmem_zero_setup():
      it is surprising that mmap() can clone an inode while holding mmap_sem,
      but that has been so for many years.
      
      Since those few lockdep traces that I've seen all implicated selinux,
      I'm hoping that we can use the __shmem_file_setup(,,,S_PRIVATE) which
      v3.13's commit c7277090
      
       ("security: shmem: implement kernel private
      shmem inodes") introduced to avoid LSM checks on kernel-internal inodes:
      the mmap("/dev/zero") cloned inode is indeed a kernel-internal detail.
      
      This also covers the !CONFIG_SHMEM use of ramfs to support /dev/zero
      (and MAP_SHARED|MAP_ANONYMOUS).  I thought there were also drivers
      which cloned inode in mmap(), but if so, I cannot locate them now.
      
      Reported-and-tested-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Reported-and-tested-by: default avatarDaniel Wagner <wagi@monom.org>
      Reported-and-tested-by: default avatarMorten Stevens <mstevens@fedoraproject.org>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      66fc1303