Skip to content
  1. May 08, 2013
    • Davidlohr Bueso's avatar
      rwsem: check counter to avoid cmpxchg calls · 9607a85b
      Davidlohr Bueso authored
      This patch tries to reduce the amount of cmpxchg calls in the writer
      failed path by checking the counter value first before issuing the
      instruction.  If ->count is not set to RWSEM_WAITING_BIAS then there is
      no point wasting a cmpxchg call.
      
      Furthermore, Michel states "I suppose it helps due to the case where
      someone else steals the lock while we're trying to acquire
      sem->wait_lock."
      
      Two very different workloads and machines were used to see how this
      patch improves throughput: pgbench on a quad-core laptop and aim7 on a
      large 8 socket box with 80 cores.
      
      Some results comparing Michel's fast-path write lock stealing
      (tps-rwsem) on a quad-core laptop running pgbench:
      
        | db_size | clients  |  tps-rwsem     |   tps-patch  |
        +---------+----------+----------------+--------------+
        | 160 MB   |       1 |           6906 |         9153 | + 32.5
        | 160 MB   |       2 |          15931 |        22487 | + 41.1%
        | 160 MB   |       4 |          33021 |        32503 |
        | 160 MB   |       8 |          34626 |        34695 |
        | 160 MB   |      16 |          33098 |        34003 |
        | 160 MB   |      20 |          31343 |        31440 |
        | 160 MB   |      30 |          28961 |        28987 |
        | 160 MB   |      40 |          26902 |        26970 |
        | 160 MB   |      50 |          25760 |        25810 |
        ------------------------------------------------------
        | 1.6 GB   |       1 |           7729 |         7537 |
        | 1.6 GB   |       2 |          19009 |        23508 | + 23.7%
        | 1.6 GB   |       4 |          33185 |        32666 |
        | 1.6 GB   |       8 |          34550 |        34318 |
        | 1.6 GB   |      16 |          33079 |        32689 |
        | 1.6 GB   |      20 |          31494 |        31702 |
        | 1.6 GB   |      30 |          28535 |        28755 |
        | 1.6 GB   |      40 |          27054 |        27017 |
        | 1.6 GB   |      50 |          25591 |        25560 |
        ------------------------------------------------------
        | 7.6 GB   |       1 |           6224 |         7469 | + 20.0%
        | 7.6 GB   |       2 |          13611 |        12778 |
        | 7.6 GB   |       4 |          33108 |        32927 |
        | 7.6 GB   |       8 |          34712 |        34878 |
        | 7.6 GB   |      16 |          32895 |        33003 |
        | 7.6 GB   |      20 |          31689 |        31974 |
        | 7.6 GB   |      30 |          29003 |        28806 |
        | 7.6 GB   |      40 |          26683 |        26976 |
        | 7.6 GB   |      50 |          25925 |        25652 |
        ------------------------------------------------------
      
      For the aim7 worloads, they overall improved on top of Michel's
      patchset.  For full graphs on how the rwsem series plus this patch
      behaves on a large 8 socket machine against a vanilla kernel:
      
        http://stgolabs.net/rwsem-aim7-results.tar.gz
      
      
      
      Signed-off-by: default avatarDavidlohr Bueso <davidlohr.bueso@hp.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9607a85b
    • Anatol Pomozov's avatar
      kref: minor cleanup · 2d864e41
      Anatol Pomozov authored
       - make warning smp-safe
       - result of atomic _unless_zero functions should be checked by caller
         to avoid use-after-free error
       - trivial whitespace fix.
      
      Link: https://lkml.org/lkml/2013/4/12/391
      
      
      
      Tested: compile x86, boot machine and run xfstests
      Signed-off-by: default avatarAnatol Pomozov <anatol.pomozov@gmail.com>
      [ Removed line-break, changed to use WARN_ON_ONCE()  - Linus ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2d864e41
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 292088ee
      Linus Torvalds authored
      Pull more vfs updates from Al Viro:
       "A couple of fixes + getting rid of __blkdev_put() return value"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        proc: Use PDE attribute setting accessor functions
        make blkdev_put() return void
        block_device_operations->release() should return void
        mtd_blktrans_ops->release() should return void
        hfs: SMP race on directory close()
      292088ee
    • Linus Torvalds's avatar
      Merge branch 'parisc-for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · bc2d968f
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "Main fixes and updates in this patch series are:
         - we faced kernel stack corruptions because of multiple delivery of
           interrupts
         - added kernel stack overflow checks
         - added possibility to use dedicated stacks for irq processing
         - initial support for page sizes > 4k
         - more information in /proc/interrupts (e.g.  TLB flushes and number
           of IPI calls)
         - documented how the parisc gateway page works
         - and of course quite some other smaller cleanups and fixes."
      
      * 'parisc-for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: tlb flush counting fix for SMP and UP
        parisc: more irq statistics in /proc/interrupts
        parisc: implement irq stacks
        parisc: add kernel stack overflow check
        parisc: only re-enable interrupts if we need to schedule or deliver signals when returning to userspace
        parisc: implement atomic64_dec_if_positive()
        parisc: use long branch in fork_like macro
        parisc: fix NATIVE set up in build
        parisc: document the parisc gateway page
        parisc: fix partly 16/64k PAGE_SIZE boot
        parisc: Provide default implementation for dma_{alloc, free}_attrs
        parisc: fix whitespace errors in arch/parisc/kernel/traps.c
        parisc: remove the second argument of kmap_atomic
      bc2d968f
    • Linus Torvalds's avatar
      Merge tag '3.9-rc3-smp-6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen · d75e2f90
      Linus Torvalds authored
      Pull ARM Xen SMP updates from Stefano Stabellini:
       "This contains a bunch of Xen/ARM specific changes, including some
        fixes, SMP support for Xen on ARM, and moving the xenvm machine from
        mach-vexpress to mach-virt.
      
        The non-Xen files that are touched are arch/arm/Kconfig, to select
        ARM_PSCI on XEN, and arch/arm/boot/dts/Makefile, to build the xenvm
        DTB if CONFIG_ARCH_VIRT.
      
        Highlights:
      
         - Move xenvm to mach-virt.
      
         - Implement SMP support in Xen on ARM.
      
         - Add support for machine reboot and power off via Xen hypercalls"
      
      * tag '3.9-rc3-smp-6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen:
        xen/arm: remove duplicated include from enlighten.c
        xen/arm: use sched_op hypercalls for machine reboot and power off
        xenvm: add a simple PSCI node and a second cpu
        xen/arm: XEN selects ARM_PSCI
        xen: move the xenvm machine to mach-virt
        xen/arm: SMP support
        xen/arm: implement HYPERVISOR_vcpu_op
        xen/arm: actually pass a non-NULL percpu pointer to request_percpu_irq
      d75e2f90
    • Helge Deller's avatar
      parisc: tlb flush counting fix for SMP and UP · 0fc537d1
      Helge Deller authored
      
      
      Fix up build error on UP and show correctly number of function call
      (ipi) irqs.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      0fc537d1
    • Linus Torvalds's avatar
      Merge tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc · de9c9f86
      Linus Torvalds authored
      Pull remoteproc update from Ohad Ben-Cohen:
      
       - Some refactoring, cleanups and small improvements from Sjur
         Brændeland.  The improvements are mainly about better supporting
         varios virtio properties (such as virtio's config space, status and
         features).  I now see that I messed up while commiting one of Sjur's
         patches and erroneously put myself as the author, as well as letting
         a nasty typo sneak in.  I will not fix this in order to avoid
         rebasing the patches.  Sjur - sorry!
      
       - A new remoteproc driver for OMAP-L13x (technically a DaVinci
         platform) from Robert Tivy.
      
       - Extend OMAP support to OMAP5 as well, from Vincent Stehlé.
      
       - Fix Kconfig VIRTUALIZATION dependency, from Suman Anna (a
         non-critical fix which arrived late during the rc cycle).
      
      * tag 'remoteproc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc:
        remoteproc: fix kconfig dependencies for VIRTIO
        remoteproc/davinci: add a remoteproc driver for OMAP-L13x DSP
        remoteproc: support default firmware name in rproc_alloc()
        remoteproc/omap: support OMAP5 too
        remoteproc: set vring addresses in resource table
        remoteproc: support virtio config space.
        remoteproc: perserve resource table data
        remoteproc: calculate max_notifyid by counting vrings
        remoteproc: code cleanup of resource parsing
        remoteproc: parse STE-firmware and find resource table address
        remoteproc: add find_loaded_rsc_table firmware ops
        remoteproc: refactor rproc_elf_find_rsc_table()
      de9c9f86
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg · 3e11a00d
      Linus Torvalds authored
      Pull rpmsg changes from Ohad Ben-Cohen:
       "A small pull request consisting of:
      
         - Make rpmsg process all pending messages instead of just one, from
           Robert Tivy
      
         - Fix Kconfig dependency on VIRTUALIZATION, from Suman.
      
           Note: this was submitted late during the 3.9 rc cycle and it seemed
           appropriate to wait with it for the merge window.
      
         - Belated addition of an rpmsg entry to the MAINTAINERS file.  People
           seem to look for this"
      
      * tag 'rpmsg-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/rpmsg:
        rpmsg: fix kconfig dependencies for VIRTIO
        MAINTAINERS: add rpmsg entry
        rpmsg: process _all_ pending messages in rpmsg_recv_done
      3e11a00d
    • Linus Torvalds's avatar
      Merge tag 'hwspinlock-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock · c807b173
      Linus Torvalds authored
      Pullhwspinlock update from Ohad Ben-Cohen:
       "A single patch from Vincent extending OMAP's hwspinlock support to
        OMAP5"
      
      * tag 'hwspinlock-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ohad/hwspinlock:
        hwspinlock/omap: support OMAP5 as well
      c807b173
    • Linus Torvalds's avatar
      Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 1b5feb4c
      Linus Torvalds authored
      Pull libata maintainership change from Tejun Heo.
      
      Tejun is taking over from Jeff, after many many years. Thanks Jeff.
      
      * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        libata: change maintainer
      1b5feb4c
    • Helge Deller's avatar
      parisc: more irq statistics in /proc/interrupts · cd85d551
      Helge Deller authored
      
      
      Add framework and initial values for more fine grained statistics in
      /proc/interrupts.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      cd85d551
    • Helge Deller's avatar
      parisc: implement irq stacks · 200c8804
      Helge Deller authored
      
      
      Default kernel stack size on parisc is 16k.  During tests we found that the
      kernel stack can easily grow beyond 13k, which leaves 3k left for irq
      processing.
      
      This patch adds the possibility to activate an additional stack of 16k per CPU
      which is being used during irq processing.  This implementation does not yet
      uses this irq stack for the irq bh handler.
      
      The assembler code for call_on_stack was heavily cleaned up by John
      David Anglin.
      
      CC: John David Anglin <dave.anglin@bell.net>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      200c8804
    • Helge Deller's avatar
      parisc: add kernel stack overflow check · 9372450c
      Helge Deller authored
      
      
      Add the CONFIG_DEBUG_STACKOVERFLOW config option to enable checks to
      detect kernel stack overflows.
      
      Stack overflows can not be detected reliable since we do not want to
      introduce too much overhead.
      
      Instead, during irq processing in do_cpu_irq_mask() we check kernel
      stack usage of the interrupted kernel process. Kernel threads can be
      easily detected by checking the value of space register 7 (sr7) which
      is zero when running inside the kernel.
      
      Since THREAD_SIZE is 16k and PAGE_SIZE is 4k, reduce the alignment of
      the init thread to the lower value (PAGE_SIZE) in the kernel
      vmlinux.ld.S linker script.
      
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      9372450c
    • Geert Uytterhoeven's avatar
      proc: Use PDE attribute setting accessor functions · 254844d3
      Geert Uytterhoeven authored
      arch/arm/mach-msm/last_radio_log.c: In function 'msm_init_last_radio_log':
      arch/arm/mach-msm/last_radio_log.c:69:7: error: dereferencing pointer to incomplete type
      
      arch/cris/kernel/profile.c: In function 'init_cris_profile':
      arch/cris/kernel/profile.c:79:8: error: dereferencing pointer to incomplete type
      
      Use proc_set_size(), cfr. commit 271a15ea
      
      
      ("proc: Supply PDE attribute setting accessor functions")
      
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      254844d3
    • John David Anglin's avatar
      parisc: only re-enable interrupts if we need to schedule or deliver signals... · c207a76b
      John David Anglin authored
      
      parisc: only re-enable interrupts if we need to schedule or deliver signals when returning to userspace
      
      Helge and I have found that we have a kernel stack overflow problem
      which causes a variety of random failures.
      Currently, we re-enable interrupts when returning from an external
      interrupt incase we need to schedule or delivery
      signals.  As a result, a potentially unlimited number of interrupts
      can occur while we are running on the kernel
      stack.  It is very limited in space (currently, 16k).  This change
      defers enabling interrupts until we have
      actually decided to schedule or delivery signals.  This only occurs
      when we about to return to userspace.  This
      limits the number of interrupts on the kernel stack to one.  In other
      cases, interrupts remain disabled until the
      final return from interrupt (rfi).
      
      Signed-off-by: default avatarJohn David Anglin <dave.anglin@bell.net>
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      c207a76b
    • Linus Torvalds's avatar
      Merge tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · bb9055b2
      Linus Torvalds authored
      Pull late ARM Exynos multiplatform changes from Arnd Bergmann:
       "These continue the multiplatform support for exynos, adding support
        for building most of the essential drivers (clocksource, clk, irqchip)
        when combined with other platforms.  As a result, it should become
        really easy to add full multiplatform exynos support in 3.11, although
        we don't yet enable it for 3.10.
      
        The changes were not included in the earlier multiplatform series in
        order to avoid clashes with the other Exynos updates.
      
        This also includes work from Tomasz Figa to fix the pwm clocksource
        code on Exynos, which is not strictly required for multiplatform, but
        related to the other patches in this set and needed as a bug fix for
        at least one board."
      
      * tag 'multiplatform-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (22 commits)
        ARM: dts: exynops4210: really add universal_c210 dts
        ARM: dts: exynos4210: Add basic dts file for universal_c210 board
        ARM: dts: exynos4: Add node for PWM device
        ARM: SAMSUNG: Do not register legacy timer interrupts on Exynos
        clocksource: samsung_pwm_timer: Work around rounding errors in clockevents core
        clocksource: samsung_pwm_timer: Correct programming of clock events
        clocksource: samsung_pwm_timer: Use proper clockevents max_delta
        clocksource: samsung_pwm_timer: Add support for non-DT platforms
        clocksource: samsung_pwm_timer: Drop unused samsung_pwm struct
        clocksource: samsung_pwm_timer: Keep all driver data in a structure
        clocksource: samsung_pwm_timer: Make PWM spinlock global
        clocksource: samsung_pwm_timer: Let platforms select the driver
        Documentation: Add device tree bindings for Samsung PWM timers
        clocksource: add samsung pwm timer driver
        irqchip: exynos: look up irq using irq_find_mapping
        irqchip: exynos: pass irq_base from platform
        irqchip: exynos: localize irq lookup for ATAGS
        irqchip: exynos: allocate combiner_data dynamically
        irqchip: exynos: pass max combiner number to combiner_init
        ARM: exynos: add missing properties for combiner IRQs
        ...
      bb9055b2
    • Linus Torvalds's avatar
      Merge tag 'cleanup-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 1bf25e78
      Linus Torvalds authored
      Pull ARM SoC late cleanups from Arnd Bergmann:
       "These are cleanups and smaller changes that either depend on earlier
        feature branches or came in late during the development cycle.  We
        normally try to get all cleanups early, so these are the exceptions:
      
         - A follow-up on the clocksource reworks, hopefully the last time we
           need to merge clocksource subsystem changes through arm-soc.
      
           A first set of patches was part of the original 3.10 arm-soc
           cleanup series because of interdependencies with timer drivers now
           moved out of arch/arm.
      
         - Migrating the SPEAr13xx platform away from using auxdata for DMA
           channel descriptions towards using information in device tree,
           based on the earlier SPEAr multiplatform series
      
         - A few follow-ups on the Atmel SAMA5 support and other changes for
           Atmel at91 based on the larger at91 reworks.
      
         - Moving the armada irqchip implementation to drivers/irqchip
      
         - Several OMAP cleanups following up on the larger series already
           merged in 3.10."
      
      * tag 'cleanup-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits)
        ARM: OMAP4: change the device names in usb_bind_phy
        ARM: OMAP2+: Fix mismerge for timer.c between ff931c82 and da4a686a
        ARM: SPEAr: conditionalize SMP code
        ARM: arch_timer: Silence debug preempt warnings
        ARM: OMAP: remove unused variable
        serial: amba-pl011: fix !CONFIG_DMA_ENGINE case
        ata: arasan: remove the need for platform_data
        ARM: at91/sama5d34ek.dts: remove not needed compatibility string
        ARM: at91: dts: add MCI DMA support
        ARM: at91: dts: add i2c dma support
        ARM: at91: dts: set #dma-cells to the correct value
        ARM: at91: suspend both memory controllers on at91sam9263
        irqchip: armada-370-xp: slightly cleanup irq controller driver
        irqchip: armada-370-xp: move IRQ handler to avoid forward declaration
        irqchip: move IRQ driver for Armada 370/XP
        ARM: mvebu: move L2 cache initialization in init_early()
        devtree: add binding documentation for sp804
        ARM: integrator-cp: convert use CLKSRC_OF for timer init
        ARM: versatile: use OF init for sp804 timer
        ARM: versatile: add versatile dtbs to dtbs target
        ...
      1bf25e78
    • Linus Torvalds's avatar
      Merge tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 38f56f33
      Linus Torvalds authored
      Pull ARM SoC device tree updates (part 2) from Arnd Bergmann:
       "These are mostly new device tree bindings for existing drivers, as
        well as changes to the device tree source files to add support for
        those devices, and a couple of new boards, most notably Samsung's
        Exynos5 based Chromebook.
      
        The changes depend on earlier platform specific updates and touch the
        usual platforms: omap, exynos, tegra, mxs, mvebu and davinci."
      
      * tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits)
        ARM: exynos: dts: cros5250: add EC device
        ARM: dts: Add sbs-battery for exynos5250-snow
        ARM: dts: Add i2c-arbitrator bus for exynos5250-snow
        ARM: dts: add mshc controller node for Exynos4x12 SoCs
        ARM: dts: Add chip-id controller node on Exynos4/5 SoC
        ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree
        ARM: davinci: da850-evm: add SPI flash support
        ARM: davinci: da850: override SPI DT node device name
        ARM: davinci: da850: add SPI1 DT node
        spi/davinci: add DT binding documentation
        spi/davinci: no wildcards in DT compatible property
        ARM: dts: mvebu: Convert mvebu device tree files to 64 bits
        ARM: dts: mvebu: introduce internal-regs node
        ARM: dts: mvebu: Convert all the mvebu files to use the range property
        ARM: dts: mvebu: move all peripherals inside soc
        ARM: dts: mvebu: fix cpus section indentation
        ARM: davinci: da850: add EHRPWM & ECAP DT node
        ARM/dts: OMAP3: fix pinctrl-single configuration
        ARM: dts: Add OMAP3430 SDP NOR flash memory binding
        ARM: dts: Add NOR flash bindings for OMAP2420 H4
        ...
      38f56f33
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · fcba9145
      Linus Torvalds authored
      Pull ARM SoC platform updates (part 3) from Arnd Bergmann:
       "This is the third and smallest of the SoC specific updates.  Changes
        include:
      
         - SMP support for the Xilinx zynq platform
         - Smaller imx changes
         - LPAE support for mvebu
         - Moving the orion5x, kirkwood, dove and mvebu platforms to a common
           "mbus" driver for their internal devices.
      
        It would be good to get feedback on the location of the "mbus" driver.
        Since this is used on multiple platforms may potentially get shared
        with other architectures (powerpc and arm64), it was moved to
        drivers/bus/.  We expect other similar drivers to get moved to the
        same place in order to avoid creating more top-level directories under
        drivers/ or cluttering up the messy drivers/misc/ even more."
      
      * tag 'soc-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits)
        ARM: imx: reset_controller may be disabled
        ARM: mvebu: Align the internal registers virtual base to support LPAE
        ARM: mvebu: Limit the DMA zone when LPAE is selected
        arm: plat-orion: remove addr-map code
        arm: mach-mv78xx0: convert to use the mvebu-mbus driver
        arm: mach-orion5x: convert to use mvebu-mbus driver
        arm: mach-dove: convert to use mvebu-mbus driver
        arm: mach-kirkwood: convert to use mvebu-mbus driver
        arm: mach-mvebu: convert to use mvebu-mbus driver
        ARM i.MX53: set CLK_SET_RATE_PARENT flag on the tve_ext_sel clock
        ARM i.MX53: tve_di clock is not part of the CCM, but of TVE
        ARM i.MX53: make tve_ext_sel propagate rate change to PLL
        ARM i.MX53: Remove unused tve_gate clkdev entry
        ARM i.MX5: Remove tve_sel clock from i.MX53 clock tree
        ARM: i.MX5: Add PATA and SRTC clocks
        ARM: imx: do not bring up unavailable cores
        ARM: imx: add initial imx6dl support
        ARM: imx1: mm: add call to mxc_device_init
        ARM: imx_v4_v5_defconfig: Add CONFIG_GPIO_SYSFS
        ARM: imx_v6_v7_defconfig: Select CONFIG_PERF_EVENTS
        ...
      fcba9145
    • Linus Torvalds's avatar
      Merge tag 'soc-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · a8c4b90e
      Linus Torvalds authored
      Pull ARM SoC platform updates (part 2) from Arnd Bergmann:
       "These patches are all for Renesas shmobile, and depend on the earlier
        pinctrl updates.  Remarkably, this adds support for three new SoCs:
        r8a73a4, r8a73a4 and r8a7778.  The bulk of the code added for these is
        for pinctrl (using the new subsystem) and for clocks (not yet using
        the common clock subsystem).  The latter will have to get converted in
        one of the upcoming releases, but shmobile is not ready for that yet.
      
        The series also contains Renesas shmobile board changes, adding one
        board file for each of the three new SoCs.  These boards are using a
        mix of classic and device-tree based probing, as there is still a lot
        of infrastructure in shmobile that has not been converted to DT yet.
        Once those are resolved to the degree that no board specific setup
        code is needed, they can get folded into the respective SoC setup files."
      
      * tag 'soc-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (78 commits)
        ARM: shmobile: use r8a7790 timer setup code on Lager
        ARM: shmobile: force enable of r8a7790 arch timer
        ARM: shmobile: Add second I/O range for r8a7790 PFC
        ARM: shmobile: bockw: enable network settings on bootargs
        ARM: shmobile: bockw: add SMSC ethernet support
        ARM: shmobile: R8A7778: add Ether support
        ARM: shmobile: bockw: enable SMSC ethernet on defconfig
        ARM: shmobile: r8a7778: add r8a7778_init_irq_extpin()
        ARM: shmobile: r8a7778: remove pointless PLATFORM_INFO()
        ARM: shmobile: mackerel: clean up MMCIF vs. SDHI1 selection
        ARM: shmobile: mackerel: add interrupt names for SDHI0
        ARM: shmobile: mackerel: switch SDHI and MMCIF interfaces to slot-gpio
        ARM: shmobile: mackerel: remove OCR masks, where regulators are used
        ARM: shmobile: mackerel: SDHI resources do not have to be numbered
        ARM: shmobile: Initial r8a7790 Lager board support
        ARM: shmobile: APE6EVM LAN9220 support
        ARM: shmobile: APE6EVM PFC support
        ARM: shmobile: APE6EVM base support
        ARM: shmobile: kzm9g-reference: add ethernet support
        ARM: shmobile: add R-Car M1A Bock-W platform support
        ...
      a8c4b90e
    • Tejun Heo's avatar
      libata: change maintainer · 3d9b9350
      Tejun Heo authored
      
      
      Jeff is leaving for something more interesting and I'm inheriting the
      maintainership of libata.  Thanks a lot for the good work and have
      fun, Jeff!
      
      v2: The original path forgot to update git tree URL.  Updated.
          Spotted by Sergei.
      
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      3d9b9350
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · eac84105
      Linus Torvalds authored
      Pull more vhost fixes from Michael Tsirkin:
       "This fixes some minor issues in the patches that have been merged.
      
        We also finally drop the workaround disabling event_idx for scsi: it
        was always questionable, and now we know it's not needed.
      
        There's also a memory leak fix"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        vhost-scsi: Enable VIRTIO_RING_F_EVENT_IDX
        vhost: drop virtio_net.h dependency
        vhost-net: Cleanup vhost_ubuf and vhost_zcopy
        vhost: Remove vhost_enable_zcopy in vhost.h
        vhost: Remove comments for hdr in vhost.h
        vhost: Move VHOST_NET_FEATURES to net.c
        vhost-net: Free ubuf when vhost_dev_set_owner fails
        vhost: Export vhost_dev_set_owner
      eac84105
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · a26ea93a
      Linus Torvalds authored
      Pull fuse updates from Miklos Szeredi:
       "This contains two patchsets from Maxim Patlasov.
      
        The first reworks the request throttling so that only async requests
        are throttled.  Wakeup of waiting async requests is also optimized.
      
        The second series adds support for async processing of direct IO which
        optimizes direct IO and enables the use of the AIO userspace
        interface."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: add flag to turn on async direct IO
        fuse: truncate file if async dio failed
        fuse: optimize short direct reads
        fuse: enable asynchronous processing direct IO
        fuse: make fuse_direct_io() aware about AIO
        fuse: add support of async IO
        fuse: move fuse_release_user_pages() up
        fuse: optimize wake_up
        fuse: implement exclusive wakeup for blocked_waitq
        fuse: skip blocking on allocations of synchronous requests
        fuse: add flag fc->initialized
        fuse: make request allocations for background processing explicit
      a26ea93a
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · c818c778
      Linus Torvalds authored
      Pull powerpc updates from Benjamin Herrenschmidt:
       "Here are a few more powerpc bits that I would like in 3.10.
      
        Mostly remaining bolts & screw tightening of power8 support such as
        actually exposing the new features via the previously added AT_HWCAP2,
        and a few fixes, some of them for problems exposed recently like
        irqdomain warnings or sysfs access permission issues, some exposed by
        power8 hardware.
      
        The only change outside of arch/powerpc is a small one to irqdomain.c
        to allow silent failure to fix a problem on Cell where we get a dozen
        WARN_ON's tripping at boot for what is basically a normal case."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc: Make hard_irq_disable() do the right thing vs. irq tracing
        powerpc/topology: Fix spurr attribute permission
        powerpc/pci: Support per-aperture memory offset
        powerpc/cell/iommu: Improve error message for missing node
        powerpc/cell/spufs: Fix status attribute permission
        irqdomain: Allow quiet failure mode
        powerpc/pnv: Fix "compatible" property for P8 PHB
        powerpc/pci: Don't add bogus empty resources to PHBs
        powerpc/powerpnv: Properly handle failure starting CPUs
        powerpc/cputable: Advertise support for ISEL/HTM/DSCR/TAR on POWER8
        powerpc/cputable: Advertise ISEL support on appropriate embedded processors
        powerpc/cputable: Advertise DSCR support on P7/P7+
        powerpc/cputable: Reserve bits in HWCAP2 for new features
        powerpc/pseries: Perform proper max_bus_speed detection
        powerpc/pseries: Force 32 bit MSIs for devices that require it
        powerpc/tm: Fix null pointer deference in flush_hash_page
        powerpc/powernv: Defer OPAL exception handler registration
        powerpc: Emulate non privileged DSCR read and write
      c818c778
    • Linus Torvalds's avatar
      Merge branch 'rwsem-optimizations' · c8de2fa4
      Linus Torvalds authored
      Merge rwsem optimizations from Michel Lespinasse:
       "These patches extend Alex Shi's work (which added write lock stealing
        on the rwsem slow path) in order to provide rwsem write lock stealing
        on the fast path (that is, without taking the rwsem's wait_lock).
      
        I have unfortunately been unable to push this through -next before due
        to Ingo Molnar / David Howells / Peter Zijlstra being busy with other
        things.  However, this has gotten some attention from Rik van Riel and
        Davidlohr Bueso who both commented that they felt this was ready for
        v3.10, and Ingo Molnar has said that he was OK with me pushing
        directly to you.  So, here goes :)
      
        Davidlohr got the following test results from pgbench running on a
        quad-core laptop:
      
          | db_size | clients  |  tps-vanilla   |   tps-rwsem  |
          +---------+----------+----------------+--------------+
          | 160 MB   |       1 |           5803 |         6906 | + 19.0%
          | 160 MB   |       2 |          13092 |        15931 |
          | 160 MB   |       4 |          29412 |        33021 |
          | 160 MB   |       8 |          32448 |        34626 |
          | 160 MB   |      16 |          32758 |        33098 |
          | 160 MB   |      20 |          26940 |        31343 | + 16.3%
          | 160 MB   |      30 |          25147 |        28961 |
          | 160 MB   |      40 |          25484 |        26902 |
          | 160 MB   |      50 |          24528 |        25760 |
          ------------------------------------------------------
          | 1.6 GB   |       1 |           5733 |         7729 | + 34.8%
          | 1.6 GB   |       2 |           9411 |        19009 | + 101.9%
          | 1.6 GB   |       4 |          31818 |        33185 |
          | 1.6 GB   |       8 |          33700 |        34550 |
          | 1.6 GB   |      16 |          32751 |        33079 |
          | 1.6 GB   |      20 |          30919 |        31494 |
          | 1.6 GB   |      30 |          28540 |        28535 |
          | 1.6 GB   |      40 |          26380 |        27054 |
          | 1.6 GB   |      50 |          25241 |        25591 |
          ------------------------------------------------------
          | 7.6 GB   |       1 |           5779 |         6224 |
          | 7.6 GB   |       2 |          10897 |        13611 | + 24.9%
          | 7.6 GB   |       4 |          32683 |        33108 |
          | 7.6 GB   |       8 |          33968 |        34712 |
          | 7.6 GB   |      16 |          32287 |        32895 |
          | 7.6 GB   |      20 |          27770 |        31689 | + 14.1%
          | 7.6 GB   |      30 |          26739 |        29003 |
          | 7.6 GB   |      40 |          24901 |        26683 |
          | 7.6 GB   |      50 |          17115 |        25925 | + 51.5%
          ------------------------------------------------------
      
        (Davidlohr also has one additional patch which further improves
        throughput, though I will ask him to send it directly to you as I have
        suggested some minor changes)."
      
      * emailed patches from Michel Lespinasse <walken@google.com>:
        rwsem: no need for explicit signed longs
        x86 rwsem: avoid taking slow path when stealing write lock
        rwsem: do not block readers at head of queue if other readers are active
        rwsem: implement support for write lock stealing on the fastpath
        rwsem: simplify __rwsem_do_wake
        rwsem: skip initial trylock in rwsem_down_write_failed
        rwsem: avoid taking wait_lock in rwsem_down_write_failed
        rwsem: use cmpxchg for trying to steal write lock
        rwsem: more agressive lock stealing in rwsem_down_write_failed
        rwsem: simplify rwsem_down_write_failed
        rwsem: simplify rwsem_down_read_failed
        rwsem: move rwsem_down_failed_common code into rwsem_down_{read,write}_failed
        rwsem: shorter spinlocked section in rwsem_down_failed_common()
        rwsem: make the waiter type an enumeration rather than a bitmask
      c8de2fa4
  2. May 07, 2013