1. 20 Apr, 2015 8 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux · 14aa0244
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Highlights:
      
        Core:
         - Virtual GEM layer merged, this has been around for a long time, and
           it provides a software backed device that allows userspace to use
           it as a GEM shared memory handler.  This makes it a lot easier to
           do certain things when you have no GPU but still have to deal with
           DRI expectations.
         - atomic helper updates.
         - framebuffer modifier interface added.
         - i2c over auxch displayport fixes.
         - fb width/height confusion fixes.
         - new driver for ps8622/ps8625 bridge chips
         - lots of new panels
      
        i915:
         - more plane atomic conversion
         - vGPU guest support for XenGT
         - Skylake workarounds and fixes
         - Y-tiling support
         - work on dynamic pagetable allocation
         - EU count report param for gen9+
         - CHV fixes (no longer prelim)
         - remove ilk rc6
         - frontbuffer tracking for fbc
         - Displayport link rate refactoring
         - sprite colorkey refactor
      
        radeon:
         - Displayport MST support (not enabled by default)
         - non-ATOM native hw auxch support (DCE5+)
         - output csc support
         - new queries for userspace debug support
         - new VCE packet
      
        nouveau:
         - gk20a iommu support
         - gm107 graphics support
         - more gm20x bringup (waiting on signed nvidia fw).
      
        amdkfd:
         - multiple kgd instance support
         - use 64-bit time accessors
      
        msm:
         - stolen memory support
         - DSI and dual-DSI support
         - snapdragon 410 support
      
        exynos:
         - cleanups for atomic and pageflip
      
        imx-drm:
         - more media-bus formats
         - TV output prep
         - drm panel support
      
        tegra:
         - hw vblank counter using host1x syncpoints
      
        omap:
         - universal plane support
         - prep work for atomic modesetting
      
        rcar-du:
         - ported to atomic modesetting
      
        atmel-hlcdc:
         - ported to atomic modesetting
         - added suspend/resume support
      
        sti:
         - ported to atomic modesetting
      
        dwhdmi:
         - more compliant audio support
         - update rockchip phy support
      
        tda998x:
         - DT probing for attached crtcs
         - simplified EDID reading
      
        rockchip:
         - fixes
      
        adv7511:
         - fixes"
      
      * 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux: (689 commits)
        media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format
        drm/i915: Dont enable CS_PARSER_ERROR interrupts at all
        drm/i915: Move drm_framebuffer_unreference out of struct_mutex for takeover
        drm: fix trivial typo mistake
        drm: Make integer overflow checking cover universal cursor updates (v2)
        drm/nouveau/bios: fix fetching from acpi on certain systems
        drm/nouveau/gr/gm206: initial init+ctx code
        drm/nouveau/ce/gm206: enable support via gm204 code
        drm/nouveau/fifo/gm206: enable support via gm204 code
        drm/nouveau/gr/gm204: initial init+ctx code
        drm/nouveau: support for buffer moves via MaxwellDmaCopyA
        drm/nouveau/ce/gm204: initial support
        drm/nouveau: add support for gm20x fifo channels
        drm/nouveau/fifo/gm204: initial support
        drm/nouveau/gr/gk104-: prevent reading non-existent regs in intr handler
        drm/nouveau/gr/gm107: very slightly demagic part of attrib cb setup
        drm/nouveau/gr/gk104-: correct crop/zrop num_active_fbps setting
        drm/nouveau/gr/gf100-: add symbolic names for classes
        drm/nouveau/gr/gm107: support tpc "strand" ctxsw in gpccs ucode
        drm/nouveau/gr/gf100-: support mmio access with gpc offset from gpccs ucode
        ...
      14aa0244
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 79319a05
      Linus Torvalds authored
      Pull IOMMU updates from Joerg Roedel:
       "Not much this time, but the changes include:
      
         - moving domain allocation into the iommu drivers to prepare for the
           introduction of default domains for devices
      
         - fixing the IO page-table code in the AMD IOMMU driver to correctly
           encode large page sizes
      
         - extension of the PCI support in the ARM-SMMU driver
      
         - various fixes and cleanups"
      
      * tag 'iommu-updates-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (34 commits)
        iommu/amd: Correctly encode huge pages in iommu page tables
        iommu/amd: Optimize amd_iommu_iova_to_phys for new fetch_pte interface
        iommu/amd: Optimize alloc_new_range for new fetch_pte interface
        iommu/amd: Optimize iommu_unmap_page for new fetch_pte interface
        iommu/amd: Return the pte page-size in fetch_pte
        iommu/amd: Add support for contiguous dma allocator
        iommu/amd: Don't allocate with __GFP_ZERO in alloc_coherent
        iommu/amd: Ignore BUS_NOTIFY_UNBOUND_DRIVER event
        iommu/amd: Use BUS_NOTIFY_REMOVED_DEVICE
        iommu/tegra: smmu: Compute PFN mask at runtime
        iommu/tegra: gart: Set aperture at domain initialization time
        iommu/tegra: Setup aperture
        iommu: Remove domain_init and domain_free iommu_ops
        iommu/fsl: Make use of domain_alloc and domain_free
        iommu/rockchip: Make use of domain_alloc and domain_free
        iommu/ipmmu-vmsa: Make use of domain_alloc and domain_free
        iommu/shmobile: Make use of domain_alloc and domain_free
        iommu/msm: Make use of domain_alloc and domain_free
        iommu/tegra-gart: Make use of domain_alloc and domain_free
        iommu/tegra-smmu: Make use of domain_alloc and domain_free
        ...
      79319a05
    • Linus Torvalds's avatar
      Merge tag 'cpumask-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux · 6496edfc
      Linus Torvalds authored
      Pull final removal of deprecated cpus_* cpumask functions from Rusty Russell:
       "This is the final removal (after several years!) of the obsolete
        cpus_* functions, prompted by their mis-use in staging.
      
        With these function removed, all cpu functions should only iterate to
        nr_cpu_ids, so we finally only allocate that many bits when cpumasks
        are allocated offstack"
      
      * tag 'cpumask-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux: (25 commits)
        cpumask: remove __first_cpu / __next_cpu
        cpumask: resurrect CPU_MASK_CPU0
        linux/cpumask.h: add typechecking to cpumask_test_cpu
        cpumask: only allocate nr_cpumask_bits.
        Fix weird uses of num_online_cpus().
        cpumask: remove deprecated functions.
        mips: fix obsolete cpumask_of_cpu usage.
        x86: fix more deprecated cpu function usage.
        ia64: remove deprecated cpus_ usage.
        powerpc: fix deprecated CPU_MASK_CPU0 usage.
        CPU_MASK_ALL/CPU_MASK_NONE: remove from deprecated region.
        staging/lustre/o2iblnd: Don't use cpus_weight
        staging/lustre/libcfs: replace deprecated cpus_ calls with cpumask_
        staging/lustre/ptlrpc: Do not use deprecated cpus_* functions
        blackfin: fix up obsolete cpu function usage.
        parisc: fix up obsolete cpu function usage.
        tile: fix up obsolete cpu function usage.
        arm64: fix up obsolete cpu function usage.
        mips: fix up obsolete cpu function usage.
        x86: fix up obsolete cpu function usage.
        ...
      6496edfc
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · b19a42e3
      Linus Torvalds authored
      Pull more s390 updates from Martin Schwidefsky:
       "The big thing in this second merge for s390 is the new eBPF JIT from
        Michael which replaces the old 32-bit backend.
      
        The remaining commits are bug fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/pci: add locking for fmb access
        s390/pci: extract software counters from fmb
        s390/dasd: Fix unresumed device after suspend/resume having no paths
        s390/dasd: fix unresumed device after suspend/resume
        s390/dasd: fix inability to set a DASD device offline
        s390/mm: Fix memory hotplug for unaligned standby memory
        s390/bpf: Add s390x eBPF JIT compiler backend
        s390: Use bool function return values of true/false not 1/0
      b19a42e3
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 5ca08a82
      Linus Torvalds authored
      Pull m68k fixes from Greg Ungerer:
       "Nothing big, spelling fixes and fix/cleanup for ColdFire eth device setup"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68knommu: fix fec setup warning for ColdFire 5271 builds
        m68knommu: ColdFire 5271 only has a single FEC controller
        m68k: Fix trivial typos in comments
      5ca08a82
    • Linus Torvalds's avatar
      smp: don't use 16-bit words for atomic accesses · f4d03bd1
      Linus Torvalds authored
      Yes, it should work, but it's a bad idea.  Not only did ARM64 not have
      the 16-bit access code (there's a separate patch to add it), it's just
      not a good atomic type.  Some architectures fundamentally don't do
      atomic accesses in them (alpha), and it's not like it saves any space
      here anyway because of structure packing issues.
      
      We normally should aim for flags to be "unsigned int" or "unsigned
      long".  And if space is at a premium, use a single byte (although that
      causes problems on alpha again).  There might be very special cases
      where a 16-byte entity is really wanted, but this is not one of them.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f4d03bd1
    • Dave Airlie's avatar
      Merge Linus master into drm-next · 2c33ce00
      Dave Airlie authored
      The merge is clean, but the arm build fails afterwards,
      due to API changes in the regulator tree.
      
      I've included the patch into the merge to fix the build.
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      2c33ce00
    • Philipp Zabel's avatar
      media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format · cec32a47
      Philipp Zabel authored
      Change the constant values for RGB444_1X12, RGB565_1X16, and YUV8_1X24 media
      bus formats in anticipation of a merge conflict with the media tree, where
      the old values are already taken by RBG888_1X24, RGB888_1X32_PADHI, and
      VUY8_1X24, respectively.
      Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      cec32a47
  2. 19 Apr, 2015 6 commits
    • Linus Torvalds's avatar
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · 09d51602
      Linus Torvalds authored
      Pull turbostat update from Len Brown:
       "Updates to the turbostat utility.
      
        Just one kernel dependency in this batch -- added a #define to
        msr-index.h"
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: correct dumped pkg-cstate-limit value
        tools/power turbostat: calculate TSC frequency from CPUID(0x15) on SKL
        tools/power turbostat: correct DRAM RAPL units on recent Xeon processors
        tools/power turbostat: Initial Skylake support
        tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile
        tools/power turbostat: modprobe msr, if needed
        tools/power turbostat: dump MSR_TURBO_RATIO_LIMIT2
        tools/power turbostat: use new MSR_TURBO_RATIO_LIMIT names
        x86 msr-index: define MSR_TURBO_RATIO_LIMIT,1,2
        tools/power turbostat: label base frequency
        tools/power turbostat: update PERF_LIMIT_REASONS decoding
        tools/power turbostat: simplify default output
      09d51602
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 6162e4b0
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "A few bug fixes and add support for file-system level encryption in
        ext4"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (31 commits)
        ext4 crypto: enable encryption feature flag
        ext4 crypto: add symlink encryption
        ext4 crypto: enable filename encryption
        ext4 crypto: filename encryption modifications
        ext4 crypto: partial update to namei.c for fname crypto
        ext4 crypto: insert encrypted filenames into a leaf directory block
        ext4 crypto: teach ext4_htree_store_dirent() to store decrypted filenames
        ext4 crypto: filename encryption facilities
        ext4 crypto: implement the ext4 decryption read path
        ext4 crypto: implement the ext4 encryption write path
        ext4 crypto: inherit encryption policies on inode and directory create
        ext4 crypto: enforce context consistency
        ext4 crypto: add encryption key management facilities
        ext4 crypto: add ext4 encryption facilities
        ext4 crypto: add encryption policy and password salt support
        ext4 crypto: add encryption xattr support
        ext4 crypto: export ext4_empty_dir()
        ext4 crypto: add ext4 encryption Kconfig
        ext4 crypto: reserve codepoints used by the ext4 encryption feature
        ext4 crypto: add ext4_mpage_readpages()
        ...
      6162e4b0
    • Linus Torvalds's avatar
      hexdump: avoid warning in test function · 17974c05
      Linus Torvalds authored
      The test_data_1_le[] array is a const array of const char *.  To avoid
      dropping any const information, we need to use "const char * const *",
      not just "const char **".
      
      I'm not sure why the different test arrays end up having different
      const'ness, but let's make the pointer we use to traverse them as const
      as possible, since we modify neither the array of pointers _or_ the
      pointers we find in the array.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17974c05
    • Jann Horn's avatar
      fs: take i_mutex during prepare_binprm for set[ug]id executables · 8b01fc86
      Jann Horn authored
      This prevents a race between chown() and execve(), where chowning a
      setuid-user binary to root would momentarily make the binary setuid
      root.
      
      This patch was mostly written by Linus Torvalds.
      Signed-off-by: default avatarJann Horn <jann@thejh.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b01fc86
    • Linus Torvalds's avatar
      smp: Fix error case handling in smp_call_function_*() · 5224b961
      Linus Torvalds authored
      Commit 8053871d ("smp: Fix smp_call_function_single_async()
      locking") fixed the locking for the asynchronous smp-call case, but in
      the process of moving the lock handling around, one of the error cases
      ended up not unlocking the call data at all.
      
      This went unnoticed on x86, because this is a "caller is buggy" case,
      where the caller is trying to call a non-existent CPU.  But apparently
      ARM does that (at least under qemu-arm).  Bindly doing cross-cpu calls
      to random CPU's that aren't even online seems a bit fishy, but the error
      handling was clearly not correct.
      
      Simply add the missing "csd_unlock()" to the error path.
      Reported-and-tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Analyzed-by: default avatarRabin Vincent <rabin@rab.in>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5224b961
    • Rusty Russell's avatar
      cpumask: remove __first_cpu / __next_cpu · e4afa120
      Rusty Russell authored
      They were for use by the deprecated first_cpu() and next_cpu() wrappers,
      but sparc used them directly.
      
      They're now replaced by cpumask_first / cpumask_next.  And __next_cpu_nr
      is completely obsolete.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      e4afa120
  3. 18 Apr, 2015 26 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 64fb1d0e
      Linus Torvalds authored
      Pull sparc fixes from David Miller
       "Unfortunately, I brown paper bagged the generic iommu pool allocator
        by applying the wrong revision of the patch series.
      
        This reverts the bad one, and puts the right one in"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        iommu-common: Fix PARISC compile-time warnings
        sparc: Make LDC use common iommu poll management functions
        sparc: Make sparc64 use scalable lib/iommu-common.c functions
        Break up monolithic iommu table/lock into finer graularity pools and lock
        sparc: Revert generic IOMMU allocator.
      64fb1d0e
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · dba94f21
      Linus Torvalds authored
      Pull 9pfs updates from Eric Van Hensbergen:
       "Some accumulated cleanup patches for kerneldoc and unused variables as
        well as some lock bug fixes and adding privateport option for RDMA"
      
      * tag 'for-linus-4.1-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        net/9p: add a privport option for RDMA transport.
        fs/9p: Initialize status in v9fs_file_do_lock.
        net/9p: Initialize opts->privport as it should be.
        net/9p: use memcpy() instead of snprintf() in p9_mount_tag_show()
        9p: use unsigned integers for nwqid/count
        9p: do not crash on unknown lock status code
        9p: fix error handling in v9fs_file_do_lock
        9p: remove unused variable in p9_fd_create()
        9p: kerneldoc warning fixes
      dba94f21
    • David S. Miller's avatar
      Merge branch 'iommu-generic-allocator' · ccb30186
      David S. Miller authored
      Sowmini Varadhan says:
      
      ====================
      Generic IOMMU pooled allocator
      
      Investigation of network performance on Sparc shows a high
      degree of locking contention in the IOMMU allocator, and it
      was noticed that the PowerPC code has a better locking model.
      
      This patch series tries to extract the generic parts of the
      PowerPC code so that it can be shared across multiple PCI
      devices and architectures.
      
      v10: resend patchv9 without RFC tag, and a new mail Message-Id,
      (previous non-RFC attempt did not show up on the patchwork queue?)
      
      Full revision history below:
      v2 changes:
        - incorporate David Miller editorial comments: sparc specific
          fields moved from iommu-common into sparc's iommu_64.h
        - make the npools value an input parameter, for the case when
          the iommu map size is not very large
        - cookie_to_index mapping, and optimizations for span-boundary
          check, for use case such as LDC.
      
      v3: eliminate iommu_sparc, rearrange the ->demap indirection to
          be invoked under the pool lock.
      
      v4: David Miller review changes:
        - s/IOMMU_ERROR_CODE/DMA_ERROR_CODE
        - page_table_map_base and page_table_shift are unsigned long, not u32.
      
      v5: removed ->cookie_to_index and ->demap indirection from the
          iommu_tbl_ops The caller needs to call these functions as needed,
          before invoking the generic arena allocator functions.
          Added the "skip_span_boundary" argument to iommu_tbl_pool_init() for
          those callers like LDC which do no care about span boundary checks.
      
      v6: removed iommu_tbl_ops, and instead pass the ->flush_all as
          an indirection to iommu_tbl_pool_init(); only invoke ->flush_all
          when there is no large_pool, based on the assumption that large-pool
          usage is infrequently encountered
      
      v7: moved pool_hash initialization to lib/iommu-common.c and cleaned up
          code duplication from sun4v/sun4u/ldc.
      
      v8: Addresses BenH comments with one exception: I've left the
          IOMMU_POOL_HASH as is, so that powerpc can tailor it to their
          convenience.  Discard trylock for simple spin_lock to acquire pool
      
      v9: Addresses latest BenH comments: need_flush checks, add support
          for dma mask and align_order.
      
      v10: resend without RFC tag, and new mail Message-Id.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccb30186
    • Sowmini Varadhan's avatar
      iommu-common: Fix PARISC compile-time warnings · 2f0c0fdc
      Sowmini Varadhan authored
      Fixes warnings due to
      - no DMA_ERROR_CODE on PARISC,
      - sizeof (unsigned long) == 4 bytes on PARISC.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f0c0fdc
    • Sowmini Varadhan's avatar
      sparc: Make LDC use common iommu poll management functions · 0ae53ed1
      Sowmini Varadhan authored
      Note that this conversion is only being done to consolidate the
      code and ensure that the common code provides the sufficient
      abstraction. It is not expected to result in any noticeable
      performance improvement, as there is typically one ldc_iommu
      per vnet_port, and each one has 8k entries, with a typical
      request for 1-4 pages.  Thus LDC uses npools == 1.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ae53ed1
    • Sowmini Varadhan's avatar
      sparc: Make sparc64 use scalable lib/iommu-common.c functions · bb620c3d
      Sowmini Varadhan authored
      In iperf experiments running linux as the Tx side (TCP client) with
      10 threads results in a severe performance drop when TSO is disabled,
      indicating a weakness in the software that can be avoided by using
      the scalable IOMMU arena DMA allocation.
      
      Baseline numbers before this patch:
         with default settings (TSO enabled) :    9-9.5 Gbps
         Disable TSO using ethtool- drops badly:  2-3 Gbps.
      
      After this patch, iperf client with 10 threads, can give a
      throughput of at least 8.5 Gbps, even when TSO is disabled.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bb620c3d
    • Sowmini Varadhan's avatar
      Break up monolithic iommu table/lock into finer graularity pools and lock · ff7d37a5
      Sowmini Varadhan authored
      Investigation of multithreaded iperf experiments on an ethernet
      interface show the iommu->lock as the hottest lock identified by
      lockstat, with something of the order of  21M contentions out of
      27M acquisitions, and an average wait time of 26 us for the lock.
      This is not efficient. A more scalable design is to follow the ppc
      model, where the iommu_map_table has multiple pools, each stretching
      over a segment of the map, and with a separate lock for each pool.
      This model allows for better parallelization of the iommu map search.
      
      This patch adds the iommu range alloc/free function infrastructure.
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ff7d37a5
    • David S. Miller's avatar
      sparc: Revert generic IOMMU allocator. · c12f048f
      David S. Miller authored
      I applied the wrong version of this patch series, V4 instead
      of V10, due to a patchwork bundling snafu.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c12f048f
    • Len Brown's avatar
      tools/power turbostat: correct dumped pkg-cstate-limit value · e9257f5f
      Len Brown authored
      HSW expanded MSR_PKG_CST_CONFIG_CONTROL.Package-C-State-Limit,
      from bits[2:0] used by previous implementations, to [3:0].
      The value 1000b is unlimited, and is used by BDW and SKL too.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      e9257f5f
    • Len Brown's avatar
      tools/power turbostat: calculate TSC frequency from CPUID(0x15) on SKL · 8a5bdf41
      Len Brown authored
      turbostat --debug
      ...
      CPUID(0x15): eax_crystal: 2 ebx_tsc: 100 ecx_crystal_hz: 0
      TSC: 1200 MHz (24000000 Hz * 100 / 2 / 1000000)
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      8a5bdf41
    • Andrey Semin's avatar
      tools/power turbostat: correct DRAM RAPL units on recent Xeon processors · 40ee8e3b
      Andrey Semin authored
      While not yet documented in the Software Developer's Manual,
      the data-sheet for modern Xeon states that DRAM RAPL ENERGY units
      are fixed at 15.3 uJ, rather than being discovered via MSR.
      
      Before this patch, DRAM energy on these products is over-stated by turbostat
      because the RAPL units are 4x larger.
      
      ref: "Xeon E5-2600 v3/E5-1600 v3 Datasheet Volume 2"
      http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xeon-e5-v3-datasheet-vol-2.pdfSigned-off-by: default avatarAndrey Semin <andrey.semin@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      40ee8e3b
    • Len Brown's avatar
      tools/power turbostat: Initial Skylake support · 0b2bb692
      Len Brown authored
      Skylake adds some additional residency counters.
      
      Skylake supports a different mix of RAPL registers
      from any previous product.
      
      In most other ways, Skylake is like Broadwell.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      0b2bb692
    • Thomas D's avatar
      tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile · f82263c6
      Thomas D authored
      Since commit ee0778a3
      ("tools/power: turbostat: make Makefile a bit more capable")
      turbostat's Makefile is using
      
        [...]
        BUILD_OUTPUT    := $(PWD)
        [...]
      
      which obviously causes trouble when building "turbostat" with
      
        make -C /usr/src/linux/tools/power/x86/turbostat ARCH=x86 turbostat
      
      because GNU make does not update nor guarantee that $PWD is set.
      
      This patch changes the Makefile to use $CURDIR instead, which GNU make
      guarantees to set and update (i.e. when using "make -C ...") and also
      adds support for the O= option (see "make help" in your root of your
      kernel source tree for more details).
      
      Link: https://bugs.gentoo.org/show_bug.cgi?id=533918
      Fixes: ee0778a3 ("tools/power: turbostat: make Makefile a bit more capable")
      Signed-off-by: default avatarThomas D. <whissi@whissi.de>
      Cc: Mark Asselstine <mark.asselstine@windriver.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      f82263c6
    • Len Brown's avatar
      tools/power turbostat: modprobe msr, if needed · a21d38c8
      Len Brown authored
      Some distros (Ubuntu) ship the msr driver as a module.
      If turbosat is run as root on those systems, and discovers
      that there is no /dev/cpu/cpu0/msr, it will now "modprobe msr"
      for the user.
      
      If not root, the modprobe attempt will fail, and turbostat will exit as before:
      
      turbostat: no /dev/cpu/0/msr, Try "# modprobe msr" : No such file or directory
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      a21d38c8
    • Len Brown's avatar
      tools/power turbostat: dump MSR_TURBO_RATIO_LIMIT2 · fcd17211
      Len Brown authored
      and up to 18 cores of turbo ratio limit
      when using the turbostat --debug option.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      fcd17211
    • Len Brown's avatar
      tools/power turbostat: use new MSR_TURBO_RATIO_LIMIT names · 12bb43c6
      Len Brown authored
      s/MSR_NHM_TURBO_RATIO_LIMIT/MSR_TURBO_RATIO_LIMIT/
      s/MSR_IVT_TURBO_RATIO_LIMIT/MSR_TURBO_RATIO_LIMIT1/
      
      syntax only -- use the documented strings describing these registers.
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      12bb43c6
    • Linus Torvalds's avatar
      Merge branch 'x86-pmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 34a984f7
      Linus Torvalds authored
      Pull PMEM driver from Ingo Molnar:
       "This is the initial support for the pmem block device driver:
        persistent non-volatile memory space mapped into the system's physical
        memory space as large physical memory regions.
      
        The driver is based on Intel code, written by Ross Zwisler, with fixes
        by Boaz Harrosh, integrated with x86 e820 memory resource management
        and tidied up by Christoph Hellwig.
      
        Note that there were two other separate pmem driver submissions to
        lkml: but apparently all parties (Ross Zwisler, Boaz Harrosh) are
        reasonably happy with this initial version.
      
        This version enables minimal support that enables persistent memory
        devices out in the wild to work as block devices, identified through a
        magic (non-standard) e820 flag and auto-discovered if
        CONFIG_X86_PMEM_LEGACY=y, or added explicitly through manipulating the
        memory maps via the "memmap=..." boot option with the new, special '!'
        modifier character.
      
        Limitations: this is a regular block device, and since the pmem areas
        are not struct page backed, they are invisible to the rest of the
        system (other than the block IO device), so direct IO to/from pmem
        areas, direct mmap() or XIP is not possible yet.  The page cache will
        also shadow and double buffer pmem contents, etc.
      
        Initial support is for x86"
      
      * 'x86-pmem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        drivers/block/pmem: Fix 32-bit build warning in pmem_alloc()
        drivers/block/pmem: Add a driver for persistent memory
        x86/mm: Add support for the non-standard protected e820 type
      34a984f7
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90d1c087
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "This tree includes:
      
         - an FPU related crash fix
      
         - a ptrace fix (with matching testcase in tools/testing/selftests/)
      
         - an x86 Kconfig DMA-config defaults tweak to better avoid
           non-working drivers"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
        x86/fpu: Load xsave pointer *after* initialization
        x86/ptrace: Fix the TIF_FORCED_TF logic in handle_signal()
        x86, selftests: Add single_step_syscall test
      90d1c087
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 96b90f27
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "This update has mostly fixes, but also other bits:
      
         - perf tooling fixes
      
         - PMU driver fixes
      
         - Intel Broadwell PMU driver HW-enablement for LBR callstacks
      
         - a late coming 'perf kmem' tool update that enables it to also
           analyze page allocation data.  Note, this comes with MM tracepoint
           changes that we believe to not break anything: because it changes
           the formerly opaque 'struct page *' field that uniquely identifies
           pages to 'pfn' which identifies pages uniquely too, but isn't as
           opaque and can be used for other purposes as well"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
        perf/x86/intel: Add Broadwell support for the LBR callstack
        perf/x86/intel/rapl: Fix energy counter measurements but supporing per domain energy units
        perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
        perf/x86: Fix hw_perf_event::flags collision
        perf probe: Fix segfault when probe with lazy_line to file
        perf probe: Find compilation directory path for lazy matching
        perf probe: Set retprobe flag when probe in address-based alternative mode
        perf kmem: Analyze page allocator events also
        tracing, mm: Record pfn instead of pointer to struct page
      96b90f27
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 396c9df2
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "Two fixes: an smp-call fix and a lockdep fix"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        smp: Fix smp_call_function_single_async() locking
        lockdep: Make print_lock() robust against concurrent release
      396c9df2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 8f502d5b
      Linus Torvalds authored
      Pull usernamespace mount fixes from Eric Biederman:
       "Way back in October Andrey Vagin reported that umount(MNT_DETACH)
        could be used to defeat MNT_LOCKED.  As I worked to fix this I
        discovered that combined with mount propagation and an appropriate
        selection of shared subtrees a reference to a directory on an
        unmounted filesystem is not necessary.
      
        That MNT_DETACH is allowed in user namespace in a form that can break
        MNT_LOCKED comes from my early misunderstanding what MNT_DETACH does.
      
        To avoid breaking existing userspace the conflict between MNT_DETACH
        and MNT_LOCKED is fixed by leaving mounts that are locked to their
        parents in the mount hash table until the last reference goes away.
      
        While investigating this issue I also found an issue with
        __detach_mounts.  The code was unnecessarily and incorrectly
        triggering mount propagation.  Resulting in too many mounts going away
        when a directory is deleted, and too many cpu cycles are burned while
        doing that.
      
        Looking some more I realized that __detach_mounts by only keeping
        mounts connected that were MNT_LOCKED it had the potential to still
        leak information so I tweaked the code to keep everything locked
        together that possibly could be.
      
        This code was almost ready last cycle but Al invented fs_pin which
        slightly simplifies this code but required rewrites and retesting, and
        I have not been in top form for a while so it took me a while to get
        all of that done.  Similiarly this pull request is late because I have
        been feeling absolutely miserable all week.
      
        The issue of being able to escape a bind mount has not yet been
        addressed, as the fixes are not yet mature"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        mnt: Update detach_mounts to leave mounts connected
        mnt: Fix the error check in __detach_mounts
        mnt: Honor MNT_LOCKED when detaching mounts
        fs_pin: Allow for the possibility that m_list or s_list go unused.
        mnt: Factor umount_mnt from umount_tree
        mnt: Factor out unhash_mnt from detach_mnt and umount_tree
        mnt: Fail collect_mounts when applied to unmounted mounts
        mnt: Don't propagate unmounts to locked mounts
        mnt: On an unmount propagate clearing of MNT_LOCKED
        mnt: Delay removal from the mount hash.
        mnt: Add MNT_UMOUNT flag
        mnt: In umount_tree reuse mnt_list instead of mnt_hash
        mnt: Don't propagate umounts in __detach_mounts
        mnt: Improve the umount_tree flags
        mnt: Use hlist_move_list in namespace_unlock
      8f502d5b
    • Linus Torvalds's avatar
      Merge tag 'for-f2fs-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 06a60dec
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "New features:
         - in-memory extent_cache
         - fs_shutdown to test power-off-recovery
         - use inline_data to store symlink path
         - show f2fs as a non-misc filesystem
      
        Major fixes:
         - avoid CPU stalls on sync_dirty_dir_inodes
         - fix some power-off-recovery procedure
         - fix handling of broken symlink correctly
         - fix missing dot and dotdot made by sudden power cuts
         - handle wrong data index during roll-forward recovery
         - preallocate data blocks for direct_io
      
        ... and a bunch of minor bug fixes and cleanups"
      
      * tag 'for-f2fs-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (71 commits)
        f2fs: pass checkpoint reason on roll-forward recovery
        f2fs: avoid abnormal behavior on broken symlink
        f2fs: flush symlink path to avoid broken symlink after POR
        f2fs: change 0 to false for bool type
        f2fs: do not recover wrong data index
        f2fs: do not increase link count during recovery
        f2fs: assign parent's i_mode for empty dir
        f2fs: add F2FS_INLINE_DOTS to recover missing dot dentries
        f2fs: fix mismatching lock and unlock pages for roll-forward recovery
        f2fs: fix sparse warnings
        f2fs: limit b_size of mapped bh in f2fs_map_bh
        f2fs: persist system.advise into on-disk inode
        f2fs: avoid NULL pointer dereference in f2fs_xattr_advise_get
        f2fs: preallocate fallocated blocks for direct IO
        f2fs: enable inline data by default
        f2fs: preserve extent info for extent cache
        f2fs: initialize extent tree with on-disk extent info of inode
        f2fs: introduce __{find,grab}_extent_tree
        f2fs: split set_data_blkaddr from f2fs_update_extent_cache
        f2fs: enable fast symlink by utilizing inline data
        ...
      06a60dec
    • Linus Torvalds's avatar
      Merge tag 'docs-for-linus' of git://git.lwn.net/linux-2.6 · d6a24d06
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "Numerous fixes, the overdue removal of the i2o docs, some new Chinese
        translations, and, hopefully, the README fix that will end the flow of
        identical patches to that file"
      
      * tag 'docs-for-linus' of git://git.lwn.net/linux-2.6: (34 commits)
        Documentation/memcg: update memcg/kmem status
        Documentation: blackfin: Makefile: Typo building issue
        Documentation/vm/pagemap.txt: correct location of page-types tool
        Documentation/memory-barriers.txt: typo fix
        doc: Add guest_nice column to example output of `cat /proc/stat'
        Documentation/kernel-parameters: Move "eagerfpu" to its right place
        Documentation: gpio: Update ACPI part of the document to mention _DSD
        docs/completion.txt: Various tweaks and corrections
        doc: completion: context, scope and language fixes
        Documentation:Update Documentation/zh_CN/arm64/memory.txt
        Documentation:Update Documentation/zh_CN/arm64/booting.txt
        Documentation: Chinese translation of arm64/legacy_instructions.txt
        DocBook media: fix broken EIA hyperlink
        Documentation: tweak the maintainers entry
        README: Change gzip/bzip2 to xz compression format
        README: Update version number reference
        doc:pci: Fix typo in Documentation/PCI
        Documentation: drm: Use '->' when describing access through pointers.
        Documentation: Remove mentioning of block barriers
        Documentation/email-clients.txt: Fix one grammar mistake, add extra info about TB
        ...
      d6a24d06
    • Marcel Holtmann's avatar
      Bluetooth: hidp: Fix regression with older userspace and flags validation · 1f5014d6
      Marcel Holtmann authored
      While it is not used by newer userspace anymore, the older userspace was
      utilizing HIDP_VIRTUAL_CABLE_UNPLUG and HIDP_BOOT_PROTOCOL_MODE flags
      when adding a new HIDP connection.
      
      The flags validation is important, but we can not break older userspace
      and with that allow providing these flags even if newer userspace does
      not use them anymore.
      Reported-and-tested-by: default avatarJörg Otte <jrg.otte@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      1f5014d6
    • Konrad Rzeszutek Wilk's avatar
      config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected · a6dfa128
      Konrad Rzeszutek Wilk authored
      A huge amount of NIC drivers use the DMA API, however if
      compiled under 32-bit an very important part of the DMA API can
      be ommitted leading to the drivers not working at all
      (especially if used with 'swiotlb=force iommu=soft').
      
      As Prashant Sreedharan explains it: "the driver [tg3] uses
      DEFINE_DMA_UNMAP_ADDR(), dma_unmap_addr_set() to keep a copy of
      the dma "mapping" and dma_unmap_addr() to get the "mapping"
      value. On most of the platforms this is a no-op, but ... with
      "iommu=soft and swiotlb=force" this house keeping is required,
      ... otherwise we pass 0 while calling pci_unmap_/pci_dma_sync_
      instead of the DMA address."
      
      As such enable this even when using 32-bit kernels.
      Reported-by: default avatarIan Jackson <Ian.Jackson@eu.citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
      Acked-by: default avatarPrashant Sreedharan <prashant@broadcom.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: boris.ostrovsky@oracle.com
      Cc: cascardo@linux.vnet.ibm.com
      Cc: david.vrabel@citrix.com
      Cc: sanjeevb@broadcom.com
      Cc: siva.kallam@broadcom.com
      Cc: vyasevich@gmail.com
      Cc: xen-devel@lists.xensource.com
      Link: http://lkml.kernel.org/r/20150417190448.GA9462@l.oracle.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      a6dfa128
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux · 75052566
      Linus Torvalds authored
      Pull devicetree changes from Grant Likely:
       "Here are the devicetree changes queued up for v4.1.  Nothing really
        exciting here.  Rob has another few commits for big-endian attached
        UARTs, but those will be sent in a separate merge request since they
        haven't been as thoroughly tested as this batch.
      
        Here are the highlights:
      
         - lots of unittest cleanup from Frank Rowand
      
         - bugfixes and updates to the of_graph code
      
         - tighten up of_get_mac_address() code
      
         - documentation updates"
      
      * tag 'devicetree-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/glikely/linux:
        of/unittest: Fix of_platform_depopulate test case
        of/unittest: early return from test skips tests
        of/unittest: breadcrumbs to reduce pain of future maintainers
        of/unittest: reduce checkpatch noise - line after declarations
        of/unittest: typo in error string
        of/unittest: add const where needed
        of_net: factor out repetitive code from of_get_mac_address()
        drivers/of: Add empty ranges quirk for PA-Semi
        of: Allow selection of OF_DYNAMIC and OF_OVERLAY if OF_UNITTEST
        of: Empty node & property flag accessors when !OF
        of: Explicitly include linux/types.h in of_graph.h
        dt-bindings: brcm: rationalize Broadcom documentation naming
        of/unittest: replace 'selftest' with 'unittest'
        Documentation: rename of_selftest.txt to of_unittest.txt
        Documentation: update the of_selftest.txt
        dt: OF_UNITTEST make dependency broken
        MAINTAINERS: Pantelis Antoniou device tree overlay maintainer
        of: Add of_graph_get_port_by_id function
        of: Add for_each_endpoint_of_node helper macro
        of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint
      75052566