1. 17 Aug, 2015 1 commit
    • Dave Chinner's avatar
      writeback: plug writeback at a high level · d353d758
      Dave Chinner authored
      Doing writeback on lots of little files causes terrible IOPS storms
      because of the per-mapping writeback plugging we do. This
      essentially causes imeediate dispatch of IO for each mapping,
      regardless of the context in which writeback is occurring.
      
      IOWs, running a concurrent write-lots-of-small 4k files using fsmark
      on XFS results in a huge number of IOPS being issued for data
      writes.  Metadata writes are sorted and plugged at a high level by
      XFS, so aggregate nicely into large IOs. However, data writeback IOs
      are dispatched in individual 4k IOs, even when the blocks of two
      consecutively written files are adjacent.
      
      Test VM: 8p, 8GB RAM, 4xSSD in RAID0, 100TB sparse XFS filesystem,
      metadata CRCs enabled.
      
      Kernel: 3.10-rc5 + xfsdev + my 3.11 xfs queue (~70 patches)
      
      Test:
      
      $ ./fs_mark  -D  10000  -S0  -n  10000  -s  4096  -L  120  -d
      /mnt/scratch/0  -d  /mnt/scratch/1  -d  /mnt/scratch/2  -d
      /mnt/scratch/3  -d  /mnt/scratch/4  -d  /mnt/scratch/5  -d
      /mnt/scratch/6  -d  /mnt/scratch/7
      
      Result:
      
      		wall	sys	create rate	Physical write IO
      		time	CPU	(avg files/s)	 IOPS	Bandwidth
      		-----	-----	------------	------	---------
      unpatched	6m56s	15m47s	24,000+/-500	26,000	130MB/s
      patched		5m06s	13m28s	32,800+/-600	 1,500	180MB/s
      improvement	-26.44%	-14.68%	  +36.67%	-94.23%	+38.46%
      
      If I use zero length files, this workload at about 500 IOPS, so
      plugging drops the data IOs from roughly 25,500/s to 1000/s.
      3 lines of code, 35% better throughput for 15% less CPU.
      
      The benefits of plugging at this layer are likely to be higher for
      spinning media as the IO patterns for this workload are going make a
      much bigger difference on high IO latency devices.....
      Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
      Signed-off-by: default avatarJosef Bacik <jbacik@fb.com>
      Reviewed-by: default avatarJan Kara <jack@suse.cz>
      Tested-by: default avatarDave Chinner <dchinner@redhat.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      d353d758
  2. 11 Aug, 2015 1 commit
    • Linus Torvalds's avatar
      Merge tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux · edf15b4d
      Linus Torvalds authored
      Pull fbdev fixes from Tomi Valkeinen:
       - fix display regression on Versatile boards
       - fix OF node refcount bugs on omapdss
       - fix WARN about clock prepare on pxa3xx_gcu
       - fix mem leak in videomode helpers
       - fix fbconsole related boot problem on sun7i-a20-olinuxino-micro
      
      * tag 'fbdev-fixes-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:
        fbcon: unconditionally initialize cursor blink interval
        video: Fix possible leak in of_get_videomode()
        video: fbdev: pxa3xx_gcu: prepare the clocks
        OMAPDSS: Fix omap_dss_find_output_by_port_node() port refcount decrement
        OMAPDSS: Fix node refcount leak in omapdss_of_get_next_port()
        fbdev: select versatile helpers for the integrator
      edf15b4d
  3. 10 Aug, 2015 11 commits
  4. 09 Aug, 2015 13 commits
    • Kees Cook's avatar
      ntb: avoid format string in dev_set_name · e15f9409
      Kees Cook authored
      Avoid any chance of format string expansion when calling dev_set_name.
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      e15f9409
    • Allen Hubbe's avatar
      NTB: Fix dereference before check · 30a4bb1e
      Allen Hubbe authored
      Remove early dereference of a pointer that is checked later in the code.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      30a4bb1e
    • Allen Hubbe's avatar
      NTB: Fix zero size or integer overflow in ntb_set_mw · 8c9edf63
      Allen Hubbe authored
      A plain 32 bit integer will overflow for values over 4GiB.
      
      Change the plain integer size to the appropriate size type in
      ntb_set_mw.  Change the type of the size parameter and two local
      variables used for size.
      
      Even if there is no overflow, a size of zero is invalid here.
      Reported-by: default avatarJuyoung Jung <jjung@micron.com>
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      8c9edf63
    • Allen Hubbe's avatar
      NTB: Schedule to receive on QP link up · 8b5a22d8
      Allen Hubbe authored
      Schedule to receive on QP link up, to make sure that the doorbell is
      properly cleared for interrupts.
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      8b5a22d8
    • Dave Jiang's avatar
      NTB: Fix oops in debugfs when transport is half-up · 260bee94
      Dave Jiang authored
      When the remote side is not up, we do not have all the context for the
      transport, and that causes NULL ptr access. Have the debugfs reads check
      to see if transport is up before we make access.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      260bee94
    • Dave Jiang's avatar
      NTB: ntb_netdev not covering all receive errors · da4eb27a
      Dave Jiang authored
      ntb_netdev is allowing the link to come up even when -ENOMEM is returned
      from ntb_transport_rx_enqueue.  Fix to cover all possible errors.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      da4eb27a
    • Dave Jiang's avatar
      NTB: Fix transport stats for multiple devices · c8650fd0
      Dave Jiang authored
      Currently the debugfs does not have files for all NTB transport queue
      pairs.  When there are multiple NTBs present in a system, the QP names
      of the last transport clobber the names of previously added transport
      QPs.  Only the last added QPs can be observed via debugfs.
      
      Create a directory per NTB transport to associate the QPs with that
      transport.  Name the directory the same as the PCI device.
      Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      c8650fd0
    • Allen Hubbe's avatar
      NTB: Fix ntb_transport out-of-order RX update · da2e5ae5
      Allen Hubbe authored
      It was possible for a synchronous update of the RX index in the error
      case to get ahead of the asynchronous RX index update in the normal
      case.  Change the RX processing to preserve an RX completion order.
      
      There were two error cases.  First, if a buffer is not present to
      receive data, there would be no queue entry to preserve the RX
      completion order.  Instead of dropping the RX frame, leave the RX frame
      in the ring.  Schedule RX processing when RX entries are enqueued, in
      case there are RX frames waiting in the ring to be received.
      
      Second, if a buffer is too small to receive data, drop the frame in the
      ring, mark the RX entry as done, and indicate the error in the RX entry
      length.  Check for a negative length in the receive callback in
      ntb_netdev, and count occurrences as rx_length_errors.
      Signed-off-by: default avatarAllen Hubbe <Allen.Hubbe@emc.com>
      Signed-off-by: default avatarJon Mason <jdmason@kudzu.us>
      da2e5ae5
    • Linus Torvalds's avatar
      Linux 4.2-rc6 · f7644cbf
      Linus Torvalds authored
      f7644cbf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · a230e95c
      Linus Torvalds authored
      Pull input subsystem fixes from Dmitry Torokhov:
       "Just small ALPS and Elan touchpads, and other driver fixups"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: elantech - add special check for fw_version 0x470f01 touchpad
        Input: twl4030-vibra - fix ERROR: Bad of_node_put() warning
        Input: alps - only Dell laptops have separate button bits for v2 dualpoint sticks
        Input: axp20x-pek - add module alias
        Input: turbografx - fix potential out of bound access
      a230e95c
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 3fbdc379
      Linus Torvalds authored
      Pull MIPS fixes from Ralf Baechle:
       "Another round of MIPS fixes for 4.2.  No area does particularly stand
        out but we have a two unpleasant ones:
      
         - Kernel ptes are marked with a global bit which allows the kernel to
           share kernel TLB entries between all processes.  For this to work
           both entries of an adjacent even/odd pte pair need to have the
           global bit set.  There has been a subtle race in setting the other
           entry's global bit since ~ 2000 but it take particularly
           pathological workloads that essentially do mostly vmalloc/vfree to
           trigger this.
      
           This pull request fixes the 64-bit case but leaves the case of 32
           bit CPUs with 64 bit ptes unsolved for now.  The unfixed cases
           affect hardware that is not available in the field yet.
      
         - Instruction emulation requires loading instructions from user space
           but the current fast but simplistic approach will fail on pages
           that are PROT_EXEC but !PROT_READ.  For this reason we temporarily
           do not permit this permission and will map pages with PROT_EXEC |
           PROT_READ.
      
        The remainder of this pull request is more or less across the field
        and the short log explains them well"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: Make set_pte() SMP safe.
        MIPS: Replace add and sub instructions in relocate_kernel.S with addiu
        MIPS: Flush RPS on kernel entry with EVA
        Revert "MIPS: BCM63xx: Provide a plat_post_dma_flush hook"
        MIPS: BMIPS: Delete unused Kconfig symbol
        MIPS: Export get_c0_perfcount_int()
        MIPS: show_stack: Fix stack trace with EVA
        MIPS: do_mcheck: Fix kernel code dump with EVA
        MIPS: SMP: Don't increment irq_count multiple times for call function IPIs
        MIPS: Partially disable RIXI support.
        MIPS: Handle page faults of executable but unreadable pages correctly.
        MIPS: Malta: Don't reinitialise RTC
        MIPS: unaligned: Fix build error on big endian R6 kernels
        MIPS: Fix sched_getaffinity with MT FPAFF enabled
        MIPS: Fix build with CONFIG_OF=y for non OF-enabled targets
        CPUFREQ: Loongson2: Fix broken build due to incorrect include.
      3fbdc379
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · af0b3152
      Linus Torvalds authored
      Pull btrfs fix from Chris Mason:
       "We have a btrfs quota regression fix.
      
        I merged this one on Thursday and have run it through tests against
        current master.
      
        Normally I wouldn't have sent this while you were finalizing rc6, but
        I'm feeding mosquitoes in the adirondacks next week, so I wanted to
        get this one out before leaving.  I'll leave longer tests running and
        check on things during the week, but I don't expect any problems"
      
      * 'for-linus-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        btrfs: qgroup: Fix a regression in qgroup reserved space.
      af0b3152
    • Linus Torvalds's avatar
      Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · bae1577e
      Linus Torvalds authored
      Pull thermal management fixes from Zhang Rui:
       "Specifics:
      
         - fix an error that "weight_attr" sysfs attribute is not removed
           while unbinding.  From: Viresh Kumar.
      
         - fix power allocator governor tracing to return the real request.
           From Javi Merino.
      
         - remove redundant owner assignment of hisi platform thermal driver.
           From Krzysztof Kozlowski.
      
         - a couple of small fixes of Exynos thermal driver.  From Krzysztof
           Kozlowski and Chanwoo Choi"
      
      * 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: Drop owner assignment from platform_driver
        thermal: exynos: Remove unused code related to platform_data on probe()
        thermal: exynos: Add the dependency of CONFIG_THERMAL_OF instead of CONFIG_OF
        thermal: exynos: Disable the regulator on probe failure
        thermal: power_allocator: trace the real requested power
        thermal: remove dangling 'weight_attr' device file
      bae1577e
  5. 08 Aug, 2015 9 commits
    • Linus Torvalds's avatar
      Merge tag 'arc-v4.2-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · dd2384a7
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
       "Here's a late pull request for accumulated ARC fixes which came out of
        extended testing of the new ARCv2 port with LTP etc.  llock/scond
        livelock workaround has been reviewed by PeterZ.  The changes look a
        lot but I've crafted them into finer grained patches for better
        tracking later.
      
        I have some more fixes (ARC Futex backend) ready to go but those will
        have to wait for tglx to return from vacation.
      
        Summary:
         - Enable a reduced config of HS38 (w/o div-rem, ll64...)
         - Add software workaround for LLOCK/SCOND livelock
         - Fallout of a recent pt_regs update"
      
      * tag 'arc-v4.2-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARCv2: spinlock/rwlock/atomics: reduce 1 instruction in exponential backoff
        ARC: Make pt_regs regs unsigned
        ARCv2: spinlock/rwlock: Reset retry delay when starting a new spin-wait cycle
        ARCv2: spinlock/rwlock/atomics: Delayed retry of failed SCOND with exponential backoff
        ARC: LLOCK/SCOND based rwlock
        ARC: LLOCK/SCOND based spin_lock
        ARC: refactor atomic inline asm operands with symbolic names
        Revert "ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock"
        ARCv2: [axs103_smp] Reduce clk for Quad FPGA configs
        ARCv2: Fix the peripheral address space detection
        ARCv2: allow selection of page size for MMUv4
        ARCv2: lib: memset: Don't assume 64-bit load/stores
        ARCv2: lib: memcpy: Missing PREFETCHW
        ARCv2: add knob for DIV_REV in Kconfig
        ARC/time: Migrate to new 'set-state' interface
      dd2384a7
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · b3b98a55
      Linus Torvalds authored
      Pull virtio fix from Michael Tsirkin:
       "A last minute fix for the new virtio input driver.  It seems pretty
         obvious, and the problem it's fixing would be quite hard to debug"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        virtio-input: reset device and detach unused during remove
      b3b98a55
    • Linus Torvalds's avatar
      Merge tag 'dm-4.2-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 39171c86
      Linus Torvalds authored
      Pull device mapper fixes from Mike Snitzer:
      
       - stable fix for a dm_merge_bvec() regression on 32 bit Fedora systems.
      
       - fix for a 4.2 DM thinp discard regression due to inability to
         properly delete a range of blocks in a data mapping btree.
      
      * tag 'dm-4.2-fixes-4' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm btree remove: fix bug in remove_one()
        dm: fix dm_merge_bvec regression on 32 bit systems
      39171c86
    • Linus Torvalds's avatar
      Merge tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · f0943013
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "The only bulk changes in this request is ABI updates for ASoC topology
        API.  It's a new API that was introduced in 4.2, and we'd like to
        avoid ABI change after the release, so it's taken now.  As there is no
        real in-tree user for this API, it should be fairly safe.
      
        Other than that, the usual small fixes are found in various drivers:
        ASoC cs4265, rt5645, intel-sst, firewire, oxygen and HD-audio"
      
      * tag 'sound-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ASoC: topology: Add private data type and bump ABI version to 3
        ASoC: topology: Add ops support to byte controls UAPI
        ASoC: topology: Update TLV support so we can support more TLV types
        ASoC: topology: add private data to manifest
        ASoC: topology: Add subsequence in topology
        ALSA: hda - one Dell machine needs the headphone white noise fixup
        ALSA: fireworks/firewire-lib: add support for recent firmware quirk
        Revert "ALSA: fireworks: add support for AudioFire2 quirk"
        ASoC: topology: fix typo in soc_tplg_kcontrol_bind_io()
        ALSA: HDA: Dont check return for snd_hdac_chip_readl
        ALSA: HDA: Fix stream assignment for host in decoupled mode
        ASoC: rt5645: Fix lost pin setting for DMIC1
        ALSA: oxygen: Fix logical-not-parentheses warning
        ASoC: Intel: sst_byt: fix initialize 'NULL device *' issue
        ASoC: Intel: haswell: fix initialize 'NULL device *' issue
        ASoC: cs4265: Fix setting dai format for Left/Right Justified
      f0943013
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.2-rc6' of... · ea8dc1ab
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Export module alias information in g762 and nct7904 to support
         auto-loading.
      
       - Blacklist Dell Studio XPS 8100 in dell-smm to fix fan control
         problems.
      
      * tag 'hwmon-for-linus-v4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (g762) Export OF module alias information
        hwmon: (nct7904) Export I2C module alias information
        hwmon: (dell-smm) Blacklist Dell Studio XPS 8100
      ea8dc1ab
    • Linus Torvalds's avatar
      Merge tag 'usb-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · d5a8ab40
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB and PHY fixes for 4.2-rc6 that resolve some reported
        issues.
      
        All of these have been in the linux-next tree for a while, full
        details on the patches are in the shortlog below"
      
      * tag 'usb-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        ARM: dts: dra7: Add syscon-pllreset syscon to SATA PHY
        drivers/usb: Delete XHCI command timer if necessary
        xhci: fix off by one error in TRB DMA address boundary check
        usb: udc: core: add device_del() call to error pathway
        phy: ti-pipe3: i783 workaround for SATA lockup after dpll unlock/relock
        phy-sun4i-usb: Add missing EXPORT_SYMBOL_GPL for sun4i_usb_phy_set_squelch_detect
        USB: sierra: add 1199:68AB device ID
        usb: gadget: f_printer: actually limit the number of instances
        usb: gadget: f_hid: actually limit the number of instances
        usb: gadget: f_uac2: fix calculation of uac2->p_interval
        usb: gadget: bdc: fix a driver crash on disconnect
        usb: chipidea: ehci_init_driver is intended to call one time
        USB: qcserial: Add support for Dell Wireless 5809e 4G Modem
        USB: qcserial/option: make AT URCs work for Sierra Wireless MC7305/MC7355
      d5a8ab40
    • Linus Torvalds's avatar
      Merge tag 'staging-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 9f21a8bd
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are three bugfixes for some staging driver issues that have been
        reported.  All have been in the linux-next tree for a while"
      
      * tag 'staging-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: lustre: Include unaligned.h instead of access_ok.h
        staging: vt6655: vnt_bss_info_changed check conf->beacon_rate is not NULL
        staging: comedi: das1800: add missing break in switch
      9f21a8bd
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 83c2768b
      Linus Torvalds authored
      Pull char/misc fixes from Greg KH:
       "Here are some extcon fixes for 4.2-rc6 that resolve some reported
        problems.
      
        All have been in linux-next for a while"
      
      * tag 'char-misc-4.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        extcon: Fix extcon_cable_get_state() from getting old state after notification
        extcon: Fix hang and extcon_get/set_cable_state().
        extcon: palmas: Fix NULL pointer error
      83c2768b
    • Linus Torvalds's avatar
      Merge tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel · 981dae74
      Linus Torvalds authored
      Pull drm fixes from Daniel Vetter:
       "One i915 regression fix and a drm core one since Dave's not around,
        both introduced in 4.2 so not cc: stable.
      
        The fix for the warning Ted reported isn't in here yet since he didn't
        yet supply a tested-by and I can't repro this one myself (it's in
        fixup code that needs firmware doing something i915 wouldn't do)"
      
      * tag 'drm-intel-fixes-2015-08-07' of git://anongit.freedesktop.org/drm-intel:
        drm/vblank: Use u32 consistently for vblank counters
        drm/i915: Allow parsing of variable size child device entries from VBT
      981dae74
  6. 07 Aug, 2015 5 commits