1. 10 Jun, 2014 1 commit
  2. 09 Jun, 2014 3 commits
  3. 06 Jun, 2014 5 commits
    • Sam Bradshaw's avatar
      mtip32xx: minor performance enhancements · f45c40a9
      Sam Bradshaw authored
      This patch adds the following:
      
      1) Compiler hinting in the fast path.
      2) A prefetch of port->flags to eliminate moderate cpu stalling later
      in mtip_hw_submit_io().
      3) Eliminate a redundant rq_data_dir().
      4) Reorder members of driver_data to eliminate false cacheline sharing
      between irq_workers_active and unal_qdepth.
      
      With some workload and topology configurations, I'm seeing ~1.5%
      throughput improvement in small block random read benchmarks as well
      as improved latency std. dev.
      Signed-off-by: default avatarSam Bradshaw <sbradshaw@micron.com>
      
      Add include of <linux/prefetch.h>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      f45c40a9
    • Jens Axboe's avatar
      blk-mq: ->timeout should be cleared in blk_mq_rq_ctx_init() · f6be4fb4
      Jens Axboe authored
      It'll be used in blk_mq_start_request() to set a potential timeout
      for the request, so clear it to zero at alloc time to ensure that
      we know if someone has set it or not.
      
      Fixes random early timeouts on NVMe testing.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      f6be4fb4
    • Keith Busch's avatar
      blk-mq: don't allow queue entering for a dying queue · 3b632cf0
      Keith Busch authored
      If the queue is going away, don't let new allocs or queueing
      happen on it. Go through the normal wait process, and exit with
      ENODEV in that case.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      3b632cf0
    • Jens Axboe's avatar
      blk-mq: bump max tag depth to 10K tags · a4391c64
      Jens Axboe authored
      For some scsi-mq cases, the tag map can be huge. So increase the
      max number of tags we support.
      
      Additionally, don't fail with EINVAL if a user requests too many
      tags. Warn that the tag depth has been adjusted down, and store
      the new value inside the tag_set passed in.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      a4391c64
    • Jens Axboe's avatar
      block: add blk_rq_set_block_pc() · f27b087b
      Jens Axboe authored
      With the optimizations around not clearing the full request at alloc
      time, we are leaving some of the needed init for REQ_TYPE_BLOCK_PC
      up to the user allocating the request.
      
      Add a blk_rq_set_block_pc() that sets the command type to
      REQ_TYPE_BLOCK_PC, and properly initializes the members associated
      with this type of request. Update callers to use this function instead
      of manipulating rq->cmd_type directly.
      
      Includes fixes from Christoph Hellwig <hch@lst.de> for my half-assed
      attempt.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      f27b087b
  4. 05 Jun, 2014 5 commits
    • Jens Axboe's avatar
      block: add notion of a chunk size for request merging · 762380ad
      Jens Axboe authored
      Some drivers have different limits on what size a request should
      optimally be, depending on the offset of the request. Similar to
      dividing a device into chunks. Add a setting that allows the driver
      to inform the block layer of such a chunk size. The block layer will
      then prevent merging across the chunks.
      
      This is needed to optimally support NVMe with a non-zero stripe size.
      Signed-off-by: default avatarJens Axboe <axboe@fb.com>
      762380ad
    • Linus Torvalds's avatar
      Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next · 046f1533
      Linus Torvalds authored
      Pull x86 EFI updates from Peter Anvin:
       "A collection of EFI changes.  The perhaps most important one is to
        fully save and restore the FPU state around each invocation of EFI
        runtime, and to not choke on non-ASCII characters in the boot stub"
      
      * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efivars: Add compatibility code for compat tasks
        efivars: Refactor sanity checking code into separate function
        efivars: Stop passing a struct argument to efivar_validate()
        efivars: Check size of user object
        efivars: Use local variables instead of a pointer dereference
        x86/efi: Save and restore FPU context around efi_calls (i386)
        x86/efi: Save and restore FPU context around efi_calls (x86_64)
        x86/efi: Implement a __efi_call_virt macro
        x86, fpu: Extend the use of static_cpu_has_safe
        x86/efi: Delete most of the efi_call* macros
        efi: x86: Handle arbitrary Unicode characters
        efi: Add get_dram_base() helper function
        efi: Add shared printk wrapper for consistent prefixing
        efi: create memory map iteration helper
        efi: efi-stub-helper cleanup
      046f1533
    • Linus Torvalds's avatar
      Merge branch 'x86/vdso' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next · a0abcf2e
      Linus Torvalds authored
      Pull x86 cdso updates from Peter Anvin:
       "Vdso cleanups and improvements largely from Andy Lutomirski.  This
        makes the vdso a lot less ''special''"
      
      * 'x86/vdso' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso, build: Make LE access macros clearer, host-safe
        x86/vdso, build: Fix cross-compilation from big-endian architectures
        x86/vdso, build: When vdso2c fails, unlink the output
        x86, vdso: Fix an OOPS accessing the HPET mapping w/o an HPET
        x86, mm: Replace arch_vma_name with vm_ops->name for vsyscalls
        x86, mm: Improve _install_special_mapping and fix x86 vdso naming
        mm, fs: Add vm_ops->name as an alternative to arch_vma_name
        x86, vdso: Fix an OOPS accessing the HPET mapping w/o an HPET
        x86, vdso: Remove vestiges of VDSO_PRELINK and some outdated comments
        x86, vdso: Move the vvar and hpet mappings next to the 64-bit vDSO
        x86, vdso: Move the 32-bit vdso special pages after the text
        x86, vdso: Reimplement vdso.so preparation in build-time C
        x86, vdso: Move syscall and sysenter setup into kernel/cpu/common.c
        x86, vdso: Clean up 32-bit vs 64-bit vdso params
        x86, mm: Ensure correct alignment of the fixmap
      a0abcf2e
    • Linus Torvalds's avatar
      Merge branch 'x86/espfix' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next · 2071b3e3
      Linus Torvalds authored
      Pull x86-64 espfix changes from Peter Anvin:
       "This is the espfix64 code, which fixes the IRET information leak as
        well as the associated functionality problem.  With this code applied,
        16-bit stack segments finally work as intended even on a 64-bit
        kernel.
      
        Consequently, this patchset also removes the runtime option that we
        added as an interim measure.
      
        To help the people working on Linux kernels for very small systems,
        this patchset also makes these compile-time configurable features"
      
      * 'x86/espfix' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtime option"
        x86, espfix: Make it possible to disable 16-bit support
        x86, espfix: Make espfix64 a Kconfig option, fix UML
        x86, espfix: Fix broken header guard
        x86, espfix: Move espfix definitions into a separate header file
        x86-32, espfix: Remove filter for espfix32 due to race
        x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack
      2071b3e3
    • Linus Torvalds's avatar
      Merge branch 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next · 9df0fe64
      Linus Torvalds authored
      Pull x86 x32 ABI fix from Peter Anvin:
       "A single fix for the x32 ABI: the io_setup() and io_submit() system
        call need to use the compat stubs"
      
      * 'x86-x32-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, x32: Use compat shims for io_{setup,submit}
      9df0fe64
  5. 04 Jun, 2014 26 commits