1. 20 4月, 2011 1 次提交
    • B
      powerpc/xics: Rewrite XICS driver · 0b05ac6e
      Benjamin Herrenschmidt 提交于
      This is a significant rework of the XICS driver, too significant to
      conveniently break it up into a series of smaller patches to be honest.
      
      The driver is moved to a more generic location to allow new platforms
      to use it, and is broken up into separate ICP and ICS "backends". For
      now we have the native and "hypervisor" ICP backends and one common
      RTAS ICS backend.
      
      The driver supports one ICP backend instanciation, and many ICS ones,
      in order to accomodate future platforms with multiple possibly different
      interrupt "sources" mechanisms.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      0b05ac6e
  2. 31 3月, 2011 1 次提交
  3. 31 7月, 2010 1 次提交
  4. 09 7月, 2010 1 次提交
  5. 06 5月, 2010 3 次提交
  6. 09 3月, 2010 3 次提交
  7. 09 2月, 2010 2 次提交
  8. 24 11月, 2009 1 次提交
    • G
      powerpc/pseries: Add hooks to put the CPU into an appropriate offline state · 3aa565f5
      Gautham R Shenoy 提交于
      When a CPU is offlined on POWER currently, we call rtas_stop_self() and hand
      the CPU back to the resource pool. This path is used for DLPAR which will
      cause a change in the LPAR configuration which will be visible outside.
      
      This patch changes the default state a CPU is put into when it is offlined.
      On platforms which support ceding the processor to the hypervisor with
      latency hint specifier value, during a cpu offline operation,
      instead of calling rtas_stop_self(), we cede the vCPU to the hypervisor
      while passing a latency hint specifier value. The Hypervisor can use this hint
      to provide better energy savings. Also, during the offline
      operation, the control of the vCPU remains with the LPAR as oppposed to
      returning it to the resource pool.
      
      The patch achieves this by creating an infrastructure to set the
      preferred_offline_state() which can be either
      - CPU_STATE_OFFLINE: which is the current behaviour of calling
        rtas_stop_self()
      
      - CPU_STATE_INACTIVE: which cedes the vCPU to the hypervisor with the latency
        hint specifier.
      
      The codepath which wants to perform a DLPAR operation can set the
      preferred_offline_state() of a CPU to CPU_STATE_OFFLINE before invoking
      cpu_down().
      
      The patch also provides a boot-time command line argument to disable/enable
      CPU_STATE_INACTIVE.
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3aa565f5
  9. 24 9月, 2009 1 次提交
  10. 23 12月, 2008 1 次提交
    • S
      powerpc/pseries: Fix cpu hotplug · b906cfa3
      Sebastien Dugue 提交于
      Currently, pseries_cpu_die() calls msleep() while polling RTAS for
      the status of the dying cpu.
      
      However, if the cpu that is going down also happens to be the one
      doing the tick then we're hosed as the tick_do_timer_cpu 'baton' is
      only passed later on in tick_shutdown() when _cpu_down() does the
      CPU_DEAD notification.  Therefore jiffies won't be updated anymore.
      
      This replaces that msleep() with a cpu_relax() to make sure we're not
      going to schedule at that point.
      
      With this patch my test box survives a 100k iterations hotplug stress
      test on _all_ cpus, whereas without it, it quickly dies after ~50
      iterations.
      Signed-off-by: NSebastien Dugue <sebastien.dugue@bull.net>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b906cfa3
  11. 07 2月, 2008 1 次提交
    • N
      [POWERPC] Split xics_teardown_cpu() · c3e8506c
      Nathan Fontenot 提交于
      This splits off the kexec path bits of the xics_teardown_cpu() routine
      into its own xics_kexec_teardown_cpu() routine.  With the previous
      combined routine the CPPR for a cpu that is being removed may have its
      CPPR reset in the plpar_eoi() call (which explicitly sets the CPPR to
      a non-zero value).  Splitting of the kexec bits of the code prevents
      this from happening in the cpu remove path.
      
      Once again, this does not cause the cpu remove from the kernel to
      fail, but it does cause cpu dlpar operations to not be able to return
      the cpu to the hypervisor.
      Signed-off-by: NNathan Fontenot <nfont@austin.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c3e8506c
  12. 26 1月, 2008 1 次提交
    • G
      cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus() · 86ef5c9a
      Gautham R Shenoy 提交于
      Replace all lock_cpu_hotplug/unlock_cpu_hotplug from the kernel and use
      get_online_cpus and put_online_cpus instead as it highlights the
      refcount semantics in these operations.
      
      The new API guarantees protection against the cpu-hotplug operation, but
      it doesn't guarantee serialized access to any of the local data
      structures. Hence the changes needs to be reviewed.
      
      In case of pseries_add_processor/pseries_remove_processor, use
      cpu_maps_update_begin()/cpu_maps_update_done() as we're modifying the
      cpu_present_map there.
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      86ef5c9a
  13. 11 1月, 2008 1 次提交
  14. 11 10月, 2007 1 次提交
  15. 13 4月, 2007 1 次提交
  16. 08 12月, 2006 5 次提交