1. 10 5月, 2012 3 次提交
    • P
      rcu: Make rcu_barrier() less disruptive · b1420f1c
      Paul E. McKenney 提交于
      The rcu_barrier() primitive interrupts each and every CPU, registering
      a callback on every CPU.  Once all of these callbacks have been invoked,
      rcu_barrier() knows that every callback that was registered before
      the call to rcu_barrier() has also been invoked.
      
      However, there is no point in registering a callback on a CPU that
      currently has no callbacks, most especially if that CPU is in a
      deep idle state.  This commit therefore makes rcu_barrier() avoid
      interrupting CPUs that have no callbacks.  Doing this requires reworking
      the handling of orphaned callbacks, otherwise callbacks could slip through
      rcu_barrier()'s net by being orphaned from a CPU that rcu_barrier() had
      not yet interrupted to a CPU that rcu_barrier() had already interrupted.
      This reworking was needed anyway to take a first step towards weaning
      RCU from the CPU_DYING notifier's use of stop_cpu().
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      b1420f1c
    • P
      rcu: Explicitly initialize RCU_FAST_NO_HZ per-CPU variables · 98248a0e
      Paul E. McKenney 提交于
      The current initialization of the RCU_FAST_NO_HZ per-CPU variables makes
      needless and fragile assumptions about the initial value of things like
      the jiffies counter.  This commit therefore explicitly initializes all of
      them that are better started with a non-zero value.  It also adds some
      comments describing the per-CPU state variables.
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      98248a0e
    • P
      rcu: Make RCU_FAST_NO_HZ handle timer migration · 21e52e15
      Paul E. McKenney 提交于
      The current RCU_FAST_NO_HZ assumes that timers do not migrate unless a
      CPU goes offline, in which case it assumes that the CPU will have to come
      out of dyntick-idle mode (cancelling the timer) in order to go offline.
      This is important because when RCU_FAST_NO_HZ permits a CPU to enter
      dyntick-idle mode despite having RCU callbacks pending, it posts a timer
      on that CPU to force a wakeup on that CPU.  This wakeup ensures that the
      CPU will eventually handle the end of the grace period, including invoking
      its RCU callbacks.
      
      However, Pascal Chapperon's test setup shows that the timer handler
      rcu_idle_gp_timer_func() really does get invoked in some cases.  This is
      problematic because this can cause the CPU that entered dyntick-idle
      mode despite still having RCU callbacks pending to remain in
      dyntick-idle mode indefinitely, which means that its RCU callbacks might
      never be invoked.  This situation can result in grace-period delays or
      even system hangs, which matches Pascal's observations of slow boot-up
      and shutdown (https://lkml.org/lkml/2012/4/5/142).  See also the bugzilla:
      
      	https://bugzilla.redhat.com/show_bug.cgi?id=806548
      
      This commit therefore causes the "should never be invoked" timer handler
      rcu_idle_gp_timer_func() to use smp_call_function_single() to wake up
      the CPU for which the timer was intended, allowing that CPU to invoke
      its RCU callbacks in a timely manner.
      Reported-by: NPascal Chapperon <pascal.chapperon@wanadoo.fr>
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      21e52e15
  2. 01 5月, 2012 1 次提交
  3. 26 4月, 2012 1 次提交
    • P
      rcu: Add warning for RCU_FAST_NO_HZ timer firing · 79b9a75f
      Paul E. McKenney 提交于
      RCU_FAST_NO_HZ uses a timer to limit the time that a CPU with callbacks
      can remain in dyntick-idle mode.  This timer is cancelled when the CPU
      exits idle, and therefore should never fire.  However, if the timer
      were migrated to some other CPU for whatever reason (1) the timer could
      actually fire and (2) firing on some other CPU would fail to wake up the
      CPU with callbacks, possibly resulting in sluggishness or a system hang.
      
      This commit therfore adds a WARN_ON_ONCE() to the timer handler in order
      to detect this condition.
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      79b9a75f
  4. 25 4月, 2012 3 次提交
  5. 22 4月, 2012 6 次提交
    • L
      Linux 3.4-rc4 · 66f75a5d
      Linus Torvalds 提交于
      66f75a5d
    • Y
      sparc32,leon: add notify_cpu_starting() · e9a5ea18
      Yong Zhang 提交于
      Otherwise cpu_active_mask will not set, which lead to other issue.
      Signed-off-by: NYong Zhang <yong.zhang0@gmail.com>
      Signed-off-by: NKonrad Eisele <konrad@gaisler.com>
      Reviewed-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e9a5ea18
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 8f4f9d4d
      Linus Torvalds 提交于
      Pull "ARM: SoC fixes" from Olof Johansson:
       * at91, ux500, imx, omap and bcmring:
        - at91 fixes for =m driver build issues, irqdomain fixes and config
          dependency fixes
        - ux500 kconfig dependency fixes and a  smp wakeup bugfix
        - imx idle bugfix and build fix due to irq domain changes
        - omap uart pinmux fixes, softreset regression revert and misc fixes
        - bcmring build error regression fix
      
       * ux500 and imx had some small defconfig updates in this branch
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (27 commits)
        ARM: bcmring: fix UART declarations
        ARM: imx: Fix imx5 idle logic bug
        ARM: imx27-dt: Fix build due to removal of irq_domain_add_simple()
        ARM: imx_v4_v5_defconfig: Add support for CONFIG_REGULATOR_FIXED_VOLTAGE
        ARM: OMAP1: DMTIMER: fix broken timer clock source selection
        ARM: OMAP: serial: Fix the ocp smart idlemode handling bug
        ARM: OMAP2+: UART: Fix incorrect population of default uart pads
        ARM: OMAP: sram: fix BUG in dpll code for !PM case
        dmaengine: Kconfig: fix Atmel at_hdmac entry
        USB: gadget/at91_udc: add gpio_to_irq() function to vbus interrupt
        USB: ohci-at91: change annotations for probe/remove functions
        leds-atmel-pwm.c: Make pwmled_probe() __devinit
        ARM: at91: fix at91sam9261ek Ethernet dm9000 irq
        ARM: at91: fix rm9200ek flash size
        ARM: at91: remove empty at91_init_serial function
        ARM: at91: fix typo in at91_pmc_base assembly declaration
        ARM: at91: Export at91_matrix_base
        ARM: at91: Export at91_pmc_base
        ARM: at91: Export at91_ramc_base
        ARM: at91: Export at91_st_base
        ...
      8f4f9d4d
    • L
      Merge tag 'mmc-fixes-for-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · 126a3483
      Linus Torvalds 提交于
      Pull MMC fixes from Chris Ball:
       - Build fix for omap_hsmmc with OF against 3.4-rc1.
       - Fix CONFIG_MMC_UNSAFE_RESUME semantics regression against 3.3, which
         broke hotplug card detection when UNSAFE_RESUME is set.
       - Fix a race condition in omap_hsmmc with runtime PM.
       - Fix two libertas SDIO-powered-resume regressions.
       - Small fixes for discard/sanitize, dw_mmc, cd-gpio and esdhc-imx.
      
      * tag 'mmc-fixes-for-3.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
        mmc: core: Do not pre-claim host in suspend
        mmc: dw_mmc: prevent NULL dereference for dma_ops
        mmc: unbreak sdhci-esdhc-imx on i.MX25
        mmc: cd-gpio: Include header to pickup exported symbol prototypes
        mmc: sdhci: refine non-removable card checking for card detection
        mmc: dw_mmc: Fix switch from DMA to PIO
        mmc: remove MMC bus legacy suspend/resume method
        mmc: omap_hsmmc: Get rid of of_have_populated_dt() usage
        mmc: omap_hsmmc: build fix for CONFIG_OF=y and CONFIG_MMC_OMAP_HS=m
        mmc: fixes for eMMC v4.5 sanitize operation
        mmc: fixes for eMMC v4.5 discard operation
      126a3483
    • L
      Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 88981596
      Linus Torvalds 提交于
      Pull media fixes from Mauro Carvalho Chehab:
       - Fixes a regression at DVB core when switching from DVB-S2 to DVB-S on
         Kaffeine (Fedora 16 Bugzilla #812895);
       - Fixes a mutex unlock at an error condition at drx-k;
       - Fix winbond-cir set mode;
       - mt9m032: Fix a compilation breakage with some random Kconfig;
       - mt9m032: fix two dead locks;
       - xc5000: don't require an special firmware (that won't be provided by
         the vendor) just because the xtal frequency is different;
       - V4L DocBook: fix some typos at multi-plane formats description.
      
      * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] xc5000: support 32MHz & 31.875MHz xtal using the 41.024.5 firmware
        [media] V4L: mt9m032: fix compilation breakage
        [media] V4L: DocBook: Fix typos in the multi-plane formats description
        [media] V4L: mt9m032: fix two dead-locks
        [media] rc-core: set mode for winbond-cir
        [media] drxk: Does not unlock mutex if sanity check failed in scu_command()
        [media] dvb_frontend: Fix a regression when switching back to DVB-S
      88981596
    • L
      Merge tag 'mfd-for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 · 9f24ff6f
      Linus Torvalds 提交于
      Pull MFD fixes from Samuel Ortiz:
       "We have 3 build fixes, a OMAP USB host PHY reset fix and the twl6040
        conversion to an i2c driver.  The latter may not sound like a fix but
        the twl6040 MFD driver won't probe without it, triggering an OMAP4
        audio regression."
      
      * tag 'mfd-for-linus-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
        mfd: Fix modular builds of rc5t583 regulator support
        mfd: Fix asic3_gpio_to_irq
        ARM: OMAP3: USB: Fix the EHCI ULPI PHY reset issue
        mfd: Convert twl6040 to i2c driver, and separate it from twl core
        mfd : Fix dbx500 compilation error
      9f24ff6f
  6. 21 4月, 2012 26 次提交