1. 18 12月, 2009 4 次提交
    • G
      powerpc/pseries: Make declarations of cpu_hotplug_driver_lock() ANSI compatible. · 3d9b740b
      Gautham R Shenoy 提交于
      And add the __acquires() and __releases() annotations, while at it.
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3d9b740b
    • G
      powerpc/pseries: Don't panic when H_PROD fails during cpu-online. · e9edb232
      Gautham R Shenoy 提交于
      If an online-attempt on a CPU which has been offlined using H_CEDE
      with an appropriate cede latency hint fails, don't panic.
      
      Instead print the error message and let the __cpu_up() code notify the
      CPU Hotplug framework of the failure, which in turn can notify the
      other subsystem through CPU_UP_CANCELED.
      Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      e9edb232
    • M
      powerpc/pseries: Select XICS and PCI_MSI PSERIES · 8a55c4ba
      Mel Gorman 提交于
      It's possible to set CONFIG_XICS without CONFIG_PCI_MSI. When that happens,
      the kernel fails to build with
      
      arch/powerpc/platforms/built-in.o: In function `.xics_startup':
      xics.c:(.text+0x12f60): undefined reference to `.unmask_msi_irq' make: ***
      [.tmp_vmlinux1] Error 1
      
      Furthermore, as noted by Benjamin Herrenschmidt, "CONFIG_XICS should be
      made invisible and selected by PSERIES."
      
      This patch fixes PSERIES to select both options
      
      Signed-off-by: Mel Gorman <mel[at]csn.ul.ie>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8a55c4ba
    • R
      powerpc: Make the CMM memory hotplug aware · 14b8a76b
      Robert Jennings 提交于
      The Collaborative Memory Manager (CMM) module allocates individual pages
      over time that are not migratable.  On a long running system this can
      severely impact the ability to find enough pages to support a hotplug
      memory remove operation.
      
      This patch adds a memory isolation notifier and a memory hotplug notifier.
      The memory isolation notifier will return the number of pages found in
      the range specified.  This is used to determine if all of the used pages
      in a pageblock are owned by the balloon (or other entities in the notifier
      chain).  The hotplug notifier will free pages in the range which is to be
      removed.  The priority of this hotplug notifier is low so that it will be
      called near last, this helps avoids removing loaned pages in operations
      that fail due to other handlers.
      
      CMM activity will be halted when hotplug remove operations are active and
      resume activity after a delay period to allow the hypervisor time to
      adjust.
      Signed-off-by: NRobert Jennings <rcj@linux.vnet.ibm.com>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Brian King <brking@linux.vnet.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Gerald Schaefer <geralds@linux.vnet.ibm.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      14b8a76b
  2. 15 12月, 2009 1 次提交
  3. 09 12月, 2009 7 次提交
  4. 24 11月, 2009 3 次提交
  5. 05 11月, 2009 1 次提交
  6. 30 10月, 2009 5 次提交
  7. 29 10月, 2009 1 次提交
    • T
      percpu: make percpu symbols in powerpc unique · 6b7487fc
      Tejun Heo 提交于
      This patch updates percpu related symbols in powerpc such that percpu
      symbols are unique and don't clash with local symbols.  This serves
      two purposes of decreasing the possibility of global percpu symbol
      collision and allowing dropping per_cpu__ prefix from percpu symbols.
      
      * arch/powerpc/kernel/perf_callchain.c: s/callchain/cpu_perf_callchain/
      
      * arch/powerpc/kernel/setup-common.c: s/pvr/cpu_pvr/
      
      * arch/powerpc/platforms/pseries/dtl.c: s/dtl/cpu_dtl/
      
      * arch/powerpc/platforms/cell/interrupt.c: s/iic/cpu_iic/
      
      Partly based on Rusty Russell's "alloc_percpu: rename percpu vars
      which cause name clashes" patch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: linuxppc-dev@ozlabs.org
      6b7487fc
  8. 28 10月, 2009 2 次提交
  9. 14 10月, 2009 1 次提交
    • A
      powerpc: Fix hypervisor TLB batching · b6dcde5c
      Anton Blanchard 提交于
      Profiling of a page fault scalability microbenchmark shows flush_hash_range
      is not calling the batch hpte invalidate hcall (H_BULK_REMOVE).
      
      It turns out we have a duplicate firmware feature for hcall-bulk and the
      current setup code stops after finding the first match. This meant we never
      batch and always do individual invalidates.
      
      The patch below removes the duplicate and shifts FW_FEATURE_CMO to close
      the gap. With the patch applied the single threaded page fault rate improves
      from 217169 to 238755 per second on a POWER5 test box, a 10% improvement.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b6dcde5c
  10. 02 10月, 2009 1 次提交
  11. 24 9月, 2009 2 次提交
  12. 23 9月, 2009 1 次提交
  13. 11 9月, 2009 1 次提交
    • P
      powerpc: Fix bug where perf_counters breaks oprofile · a6dbf93a
      Paul Mackerras 提交于
      Currently there is a bug where if you use oprofile on a pSeries
      machine, then use perf_counters, then use oprofile again, oprofile
      will not work correctly; it will lose the PMU configuration the next
      time the hypervisor does a partition context switch, and thereafter
      won't count anything.
      
      Maynard Johnson identified the sequence causing the problem:
      - oprofile setup calls ppc_enable_pmcs(), which calls
        pseries_lpar_enable_pmcs, which tells the hypervisor that we want
        to use the PMU, and sets the "PMU in use" flag in the lppaca.
        This flag tells the hypervisor whether it needs to save and restore
        the PMU config.
      - The perf_counter code sets and clears the "PMU in use" flag directly
        as it context-switches the PMU between tasks, and leaves it clear
        when it finishes.
      - oprofile setup, called for a new oprofile run, calls ppc_enable_pmcs,
        which does nothing because it has already been called.  In particular
        it doesn't set the "PMU in use" flag.
      
      This fixes the problem by arranging for ppc_enable_pmcs to always set
      the "PMU in use" flag.  It makes the perf_counter code call
      ppc_enable_pmcs also rather than calling the lower-level function
      directly, and removes the setting of the "PMU in use" flag from
      pseries_lpar_enable_pmcs, since that is now done in its caller.
      
      This also removes the declaration of pasemi_enable_pmcs because it
      isn't defined anywhere.
      Reported-by: NMaynard Johnson <mpjohn@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Cc: <stable@kernel.org)
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a6dbf93a
  14. 10 9月, 2009 1 次提交
  15. 02 9月, 2009 2 次提交
  16. 20 8月, 2009 1 次提交
  17. 08 7月, 2009 2 次提交
  18. 26 6月, 2009 1 次提交
  19. 17 6月, 2009 1 次提交
  20. 09 6月, 2009 1 次提交
  21. 02 6月, 2009 1 次提交
    • A
      powerpc: Convert RTAS event scan from kernel thread to workqueue · f8729e85
      Anton Blanchard 提交于
      RTAS event scan has to run across all cpus. Right now we use a kernel
      thread and set_cpus_allowed but in doing so we wake up the previous cpu
      unnecessarily.
      
      Some ftrace output shows this:
      
      previous cpu (2):
      [002]  7.022331: sched_switch: task swapper:0 [140] ==> rtasd:194 [120]
      [002]  7.022338: sched_switch: task rtasd:194 [120] ==> migration/2:9 [0]
      [002]  7.022344: sched_switch: task migration/2:9 [0] ==> swapper:0 [140]
      
      next cpu (3):
      [003]  7.022345: sched_switch: task swapper:0 [140] ==> rtasd:194 [120]
      [003]  7.022371: sched_switch: task rtasd:194 [120] ==> swapper:0 [140]
      
      We can use schedule_delayed_work_on and avoid the unnecessary wakeup.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      f8729e85