1. 15 2月, 2012 8 次提交
    • T
      block: exit_io_context() should call elevator_exit_icq_fn() · 621032ad
      Tejun Heo 提交于
      While updating locking, b2efa052 "block, cfq: unlink
      cfq_io_context's immediately" moved elevator_exit_icq_fn() invocation
      from exit_io_context() to the final ioc put.  While this doesn't cause
      catastrophic failure, it effectively removes task exit notification to
      elevator and cause noticeable IO performance degradation with CFQ.
      
      On task exit, CFQ used to immediately expire the slice if it was being
      used by the exiting task as no more IO would be issued by the task;
      however, after b2efa052, the notification is lost and disk could sit
      idle needlessly, leading to noticeable IO performance degradation for
      certain workloads.
      
      This patch renames ioc_exit_icq() to ioc_destroy_icq(), separates
      elevator_exit_icq_fn() invocation into ioc_exit_icq() and invokes it
      from exit_io_context().  ICQ_EXITED flag is added to avoid invoking
      the callback more than once for the same icq.
      
      Walking icq_list from ioc side and invoking elevator callback requires
      reverse double locking.  This may be better implemented using RCU;
      unfortunately, using RCU isn't trivial.  e.g. RCU protection would
      need to cover request_queue and queue_lock switch on cleanup makes
      grabbing queue_lock from RCU unsafe.  Reverse double locking should
      do, at least for now.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-and-bisected-by: NShaohua Li <shli@kernel.org>
      LKML-Reference: <CANejiEVzs=pUhQSTvUppkDcc2TNZyfohBRLygW5zFmXyk5A-xQ@mail.gmail.com>
      Tested-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      621032ad
    • T
      block: simplify ioc_release_fn() · 2274b029
      Tejun Heo 提交于
      Reverse double lock dancing in ioc_release_fn() can be simplified by
      just using trylock on the queue_lock and back out from ioc lock on
      trylock failure.  Simplify it.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Tested-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      2274b029
    • T
      block: replace icq->changed with icq->flags · d705ae6b
      Tejun Heo 提交于
      icq->changed was used for ICQ_*_CHANGED bits.  Rename it to flags and
      access it under ioc->lock instead of using atomic bitops.
      ioc_get_changed() is added so that the changed part can be fetched and
      cleared as before.
      
      icq->flags will be used to carry other flags.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Tested-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      d705ae6b
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 7ada1dd6
      Linus Torvalds 提交于
      One small bug fix from Axel plus a fix for a build failure in unrealistic
      but commonly built configs which for some reason manage to survive for
      an awfully long time in -next without any reports.
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Fix getting voltage in max8649_enable_time()
        regulator: Fix mc13xxx regulator modular build (again)
      7ada1dd6
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · ebf4bcbd
      Linus Torvalds 提交于
      Quoth BenH:
       "Here are a few powerpc fixes for 3.3, all pretty trivial.  I also
        added the patch to define GET_IP/SET_IP so we can use some more
        asm-generic goodness."
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc/pseries/eeh: Fix crash when error happens during device probe
        powerpc/pseries: Fix partition migration hang in stop_topology_update
        powerpc/powernv: Disable interrupts while taking phb->lock
        powerpc: Fix WARN_ON in decrementer_check_overflow
        powerpc/wsp: Fix IRQ affinity setting
        powerpc: Implement GET_IP/SET_IP
        powerpc/wsp: Permanently enable PCI class code workaround
      ebf4bcbd
    • L
      Merge tag 'mmc-fixes-for-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 8b36ac50
      Linus Torvalds 提交于
      MMC fixes for 3.3-rc4:
       * The most visible fix here is against a regression introduced in 3.3-rc1
         that ran cards in Ultra High Speed mode even when they failed to initialize
         in that mode, leading to lower-speed cards failing to mount.
       * A lockdep warning introduced in 3.3-rc1 is fixed.
       * Various other small driver fixes, most notably for a NULL dereference
         when using highmem with dw_mmc.
      
      * tag 'mmc-fixes-for-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
        mmc: dw_mmc: Fix PIO mode with support of highmem
        mmc: atmel-mci: save and restore sdioirq when soft reset is performed
        mmc: block: Init ro_lock sysfs attr to fix lockdep warnings
        mmc: sh_mmcif: fix late delayed work initialisation
        mmc: tmio_mmc: fix card eject during IO with DMA
        mmc: core: Fix comparison issue in mmc_compare_ext_csds
        mmc: core: Fix PowerOff Notify suspend/resume
        mmc: sdhci-pci: set Medfield SDIO as non-removable
        mmc: core: add the capability for broken voltage
        mmc: core: Fix low speed mmc card detection failure
        mmc: esdhc: set the timeout to the max value
        mmc: esdhc: add PIO mode support
        mmc: core: Ensure clocks are always enabled before host interaction
        mmc: of_mmc_spi: fix little endian support
        mmc: core: UHS sdio card that fails should not exceed 50MHz
        mmc: esdhc: fix errors when booting kernel on Freescale eSDHC version 2.3
      8b36ac50
    • L
      Merge tag 'stable/for-linus-fixes-3.3-rc3' of... · 694ce18e
      Linus Torvalds 提交于
      Merge tag 'stable/for-linus-fixes-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
      
      Two fixes for VCPU offlining; One to fix the string format exposed
      by the xen-pci[front|back] to conform to the one used in majority of
      PCI drivers; Two fixes to make the code more resilient to invalid
      configurations.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      
      * tag 'stable/for-linus-fixes-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
        xenbus_dev: add missing error check to watch handling
        xen/pci[front|back]: Use %d instead of %1x for displaying PCI devfn.
        xen pvhvm: do not remap pirqs onto evtchns if !xen_have_vector_callback
        xen/smp: Fix CPU online/offline bug triggering a BUG: scheduling while atomic.
        xen/bootup: During bootup suppress XENBUS: Unable to read cpu state
      694ce18e
    • L
      Merge tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 13d26193
      Linus Torvalds 提交于
      sound fixes for 3.3-rc4
      
      Basically all small fixes suited as rc4: a few HD-audio regression fixes,
      a stable fix for an old Dell laptop with intel8x0, and a simple fix for
      ASoC fsi.
      
      * tag 'sound-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: intel8x0: Fix default inaudible sound on Gateway M520
        ALSA: hda - Fix silent speaker output on Acer Aspire 6935
        ALSA: hda - Fix initialization of secondary capture source on VT1705
        ASoC: fsi: fixup fsi_pointer() calculation method
        ALSA: hda - Fix mute-LED VREF value for new HP laptops
      13d26193
  2. 14 2月, 2012 32 次提交