1. 14 9月, 2014 1 次提交
  2. 08 8月, 2014 1 次提交
  3. 18 7月, 2014 1 次提交
  4. 17 5月, 2014 1 次提交
  5. 15 5月, 2014 1 次提交
  6. 04 3月, 2014 1 次提交
    • M
      arm64: topology: Implement basic CPU topology support · f6e763b9
      Mark Brown 提交于
      Add basic CPU topology support to arm64, based on the existing pre-v8
      code and some work done by Mark Hambleton.  This patch does not
      implement any topology discovery support since that should be based on
      information from firmware, it merely implements the scaffolding for
      integration of topology support in the architecture.
      
      No locking of the topology data is done since it is only modified during
      CPU bringup with external serialisation from the SMP code.
      
      The goal is to separate the architecture hookup for providing topology
      information from the DT parsing in order to ease review and avoid
      blocking the architecture code (which will be built on by other work)
      with the DT code review by providing something simple and basic.
      
      Following patches will implement support for interpreting topology
      information from MPIDR and for parsing the DT topology bindings for ARM,
      similar patches will be needed for ACPI.
      Signed-off-by: NMark Brown <broonie@linaro.org>
      Acked-by: NMark Rutland <mark.rutland@arm.com>
      [catalin.marinas@arm.com: removed CONFIG_CPU_TOPOLOGY, always on if SMP]
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      f6e763b9
  7. 26 2月, 2014 1 次提交
  8. 30 1月, 2014 1 次提交
  9. 20 12月, 2013 1 次提交
  10. 17 12月, 2013 1 次提交
  11. 26 11月, 2013 1 次提交
  12. 08 11月, 2013 1 次提交
  13. 05 11月, 2013 1 次提交
    • M
      arm64: move enabling of GIC before CPUs are set online · 7ade67b5
      Marc Zyngier 提交于
      Commit 53ae3acd (arm64: Only enable local interrupts after the CPU
      is marked online) moved the enabling of the GIC after the CPUs are
      marked online.
      
      This has some interesting effect:
      [...]
      [<ffffffc0002eefd8>] gic_raise_softirq+0xf8/0x160
      [<ffffffc000088f58>] smp_send_reschedule+0x38/0x40
      [<ffffffc0000c8728>] resched_task+0x84/0xc0
      [<ffffffc0000c8cdc>] check_preempt_curr+0x58/0x98
      [<ffffffc0000c8d38>] ttwu_do_wakeup+0x1c/0xf4
      [<ffffffc0000c8f90>] ttwu_do_activate.constprop.84+0x64/0x70
      [<ffffffc0000cad30>] try_to_wake_up+0x1d4/0x2b4
      [<ffffffc0000cae6c>] default_wake_function+0x10/0x18
      [<ffffffc0000c5ca4>] __wake_up_common+0x60/0xa0
      [<ffffffc0000c7784>] complete+0x48/0x64
      [<ffffffc000088bec>] secondary_start_kernel+0xe8/0x110
      [...]
      
      Here, we end-up calling gic_raise_softirq without having initialized
      the interrupt controller for this CPU. While this goes unnoticed
      with GICv2 (the distributor is always accessible), it explodes with
      GICv3.
      
      The fix is to move the call to notify_cpu_starting before we set
      the secondary CPU online.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      7ade67b5
  14. 25 10月, 2013 4 次提交
    • M
      arm64: add CPU_HOTPLUG infrastructure · 9327e2c6
      Mark Rutland 提交于
      This patch adds the basic infrastructure necessary to support
      CPU_HOTPLUG on arm64, based on the arm implementation. Actual hotplug
      support will depend on an implementation's cpu_operations (e.g. PSCI).
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      9327e2c6
    • M
      arm64: read enable-method for CPU0 · e8765b26
      Mark Rutland 提交于
      With the advent of CPU_HOTPLUG, the enable-method property for CPU0 may
      tells us something useful (i.e. how to hotplug it back on), so we must
      read it along with all the enable-method for all the other CPUs.  Even
      on UP the enable-method may tell us useful information (e.g. if a core
      has some mechanism that might be usable for cpuidle), so we should
      always read it.
      
      This patch factors out the reading of the enable method, and ensures
      that CPU0's enable method is read regardless of whether the kernel is
      built with SMP support.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      e8765b26
    • M
      arm64: factor out spin-table boot method · 652af899
      Mark Rutland 提交于
      The arm64 kernel has an internal holding pen, which is necessary for
      some systems where we can't bring CPUs online individually and must hold
      multiple CPUs in a safe area until the kernel is able to handle them.
      The current SMP infrastructure for arm64 is closely coupled to this
      holding pen, and alternative boot methods must launch CPUs into the pen,
      where they sit before they are launched into the kernel proper.
      
      With PSCI (and possibly other future boot methods), we can bring CPUs
      online individually, and need not perform the secondary_holding_pen
      dance. Instead, this patch factors the holding pen management code out
      to the spin-table boot method code, as it is the only boot method
      requiring the pen.
      
      A new entry point for secondaries, secondary_entry is added for other
      boot methods to use, which bypasses the holding pen and its associated
      overhead when bringing CPUs online. The smp.pen.text section is also
      removed, as the pen can live in head.text without problem.
      
      The cpu_operations structure is extended with two new functions,
      cpu_boot and cpu_postboot, for bringing a cpu into the kernel and
      performing any post-boot cleanup required by a bootmethod (e.g.
      resetting the secondary_holding_pen_release to INVALID_HWID).
      Documentation is added for cpu_operations.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      652af899
    • M
      arm64: reorganise smp_enable_ops · cd1aebf5
      Mark Rutland 提交于
      For hotplug support, we're going to want a place to store operations
      that do more than bring CPUs online, and it makes sense to group these
      with our current smp_enable_ops. For cpuidle support, we'll want to
      group additional functions, and we may want them even for UP kernels.
      
      This patch renames smp_enable_ops to the more general cpu_operations,
      and pulls the definitions out of smp code such that they can be used in
      UP kernels. While we're at it, fix up instances of the cpu parameter to
      be an unsigned int, drop the init markings and rename the *_cpu
      functions to cpu_* to reduce future churn when cpu_operations is
      extended.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      cd1aebf5
  15. 31 8月, 2013 1 次提交
  16. 19 7月, 2013 1 次提交
  17. 15 7月, 2013 1 次提交
    • P
      arm64: delete __cpuinit usage from all users · b8c6453a
      Paul Gortmaker 提交于
      The __cpuinit type of throwaway sections might have made sense
      some time ago when RAM was more constrained, but now the savings
      do not offset the cost and complications.  For example, the fix in
      commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
      is a good example of the nasty type of bugs that can be created
      with improper use of the various __init prefixes.
      
      After a discussion on LKML[1] it was decided that cpuinit should go
      the way of devinit and be phased out.  Once all the users are gone,
      we can then finally remove the macros themselves from linux/init.h.
      
      Note that some harmless section mismatch warnings may result, since
      notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
      are flagged as __cpuinit  -- so if we remove the __cpuinit from
      arch specific callers, we will also get section mismatch warnings.
      As an intermediate step, we intend to turn the linux/init.h cpuinit
      content into no-ops as early as possible, since that will get rid
      of these warnings.  In any case, they are temporary and harmless.
      
      This removes all the arch/arm64 uses of the __cpuinit macros from
      all C files.  Currently arm64 does not have any __CPUINIT used in
      assembly files.
      
      [1] https://lkml.org/lkml/2013/5/20/589
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      b8c6453a
  18. 26 4月, 2013 2 次提交
  19. 08 4月, 2013 1 次提交
  20. 21 3月, 2013 2 次提交
  21. 30 1月, 2013 2 次提交
  22. 09 11月, 2012 1 次提交
  23. 17 10月, 2012 1 次提交
  24. 17 9月, 2012 1 次提交