1. 23 8月, 2012 1 次提交
    • S
      ARM: imx6: spin the cpu until hardware takes it down · c944b0b9
      Shawn Guo 提交于
      Though commit 602bf409 (ARM: imx6: exit coherency when shutting down
      a cpu) improves the stability of imx6q cpu hotplug a lot, there are
      still hangs seen with a more stressful hotplug testing.
      
      It's expected that once imx_enable_cpu(cpu, false) is called, the cpu
      will be taken down by hardware immediately, and the code after that
      will not get any chance to execute.  However, this is not always the
      case from the testing.  The cpu could possibly be alive for a few
      cycles before hardware actually takes it down.  So rather than letting
      cpu execute some code that could cause a hang in these cycles, let's
      make the cpu spin there and wait for hardware to take it down.
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      c944b0b9
  2. 07 6月, 2012 1 次提交
    • S
      ARM: imx6: exit coherency when shutting down a cpu · 602bf409
      Shawn Guo 提交于
      There is a system hang issue on imx6q which can easily be seen with
      running a cpu hotplug stress testing (hotplug secondary cores from
      user space via sysfs interface for thousands iterations).
      
      It turns out that the issue is caused by coherency of the cpu that
      is being shut down.  When shutting down a cpu, we need to have the
      cpu exit coherency to prevent it from receiving cache, TLB, or BTB
      maintenance operations broadcast by other CPUs in the cluster.
      
      Copy cpu_enter_lowpower() and cpu_leave_lowpower() from mach-vexpress
      to have coherency properly handled in platform_cpu_die(), thus fix
      the issue.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Cc: stable@kernel.org
      602bf409
  3. 31 10月, 2011 1 次提交