Thomas Gleixner
4e0fcc5672
hexagon: Use generic idle loop
...
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Rusty Russell <rusty@rustcorp.com.au >
Cc: Paul McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Reviewed-by: Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com >
Cc: Magnus Damm <magnus.damm@gmail.com >
Acked-by: Richard Kuo <rkuo@codeaurora.org >
Link: http://lkml.kernel.org/r/20130321215234.338692935@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2013-04-08 17:39:25 +02:00
Richard Kuo
e1858b2a21
Hexagon: Copyright marking changes
...
Code Aurora Forum (CAF) is becoming a part of Linux Foundation Labs.
Signed-off-by: Richard Kuo <rkuo@codeaurora.org >
2012-10-18 17:07:21 -05:00
Yong Zhang
4ee0444beb
hexagon: SMP: Remove call to ipi_call_lock()/ipi_call_unlock()
...
ipi_call_lock/unlock() lock resp. unlock call_function.lock. This lock
protects only the call_function data structure itself, but it's
completely unrelated to cpu_online_mask. The mask to which the IPIs
are sent is calculated before call_function.lock is taken in
smp_call_function_many(), so the locking around set_cpu_online() is
pointless and can be removed.
[ tglx: Massaged changelog ]
Signed-off-by: Yong Zhang <yong.zhang0@gmail.com >
Cc: ralf@linux-mips.org
Cc: sshtylyov@mvista.com
Cc: david.daney@cavium.com
Cc: nikunj@linux.vnet.ibm.com
Cc: paulmck@linux.vnet.ibm.com
Cc: axboe@kernel.dk
Cc: Richard Kuo <rkuo@codeaurora.org >
Cc: linux-hexagon@vger.kernel.org
Link: http://lkml.kernel.org/r/1338275765-3217-2-git-send-email-yong.zhang0@gmail.com
Acked-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2012-06-05 17:27:11 +02:00
Thomas Gleixner
3b0132ce4f
hexagon: Use generic idle thread allocation
...
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rusty Russell <rusty@rustcorp.com.au >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com >
Acked-and-tested-by: Richard Kuo <rkuo@codeaurora.org >
Link: http://lkml.kernel.org/r/20120420124557.581762105@linutronix.de
2012-04-26 12:06:11 +02:00
Thomas Gleixner
8239c25f47
smp: Add task_struct argument to __cpu_up()
...
Preparatory patch to make the idle thread allocation for secondary
cpus generic.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rusty Russell <rusty@rustcorp.com.au >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com >
Cc: Matt Turner <mattst88@gmail.com >
Cc: Russell King <linux@arm.linux.org.uk >
Cc: Mike Frysinger <vapier@gentoo.org >
Cc: Jesper Nilsson <jesper.nilsson@axis.com >
Cc: Richard Kuo <rkuo@codeaurora.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Hirokazu Takata <takata@linux-m32r.org >
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: David Howells <dhowells@redhat.com >
Cc: James E.J. Bottomley <jejb@parisc-linux.org >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Paul Mundt <lethal@linux-sh.org >
Cc: David S. Miller <davem@davemloft.net >
Cc: Chris Metcalf <cmetcalf@tilera.com >
Cc: Richard Weinberger <richard@nod.at >
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/20120420124556.964170564@linutronix.de
2012-04-26 12:06:09 +02:00
Richard Kuo
e00574b7f3
hexagon: add missing cpu.h include
...
Signed-off-by: Richard Kuo <rkuo@codeaurora.org >
2012-04-23 12:57:24 -05:00
Srivatsa S. Bhat
57f27cca7a
hexagon/CPU hotplug: Add missing call to notify_cpu_starting()
...
The scheduler depends on receiving the CPU_STARTING notification, without
which we end up into a lot of trouble. So add the missing call to
notify_cpu_starting() in the bringup code.
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com >
Signed-off-by: Richard Kuo <rkuo@codeaurora.org >
2012-04-23 12:57:11 -05:00
Rusty Russell
0b5f9c005d
remove references to cpu_*_map in arch/
...
This has been obsolescent for a while; time for the final push.
In adjacent context, replaced old cpus_* with cpumask_*.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au >
Acked-by: David S. Miller <davem@davemloft.net > (arch/sparc)
Acked-by: Chris Metcalf <cmetcalf@tilera.com > (arch/tile)
Cc: user-mode-linux-devel@lists.sourceforge.net
Cc: Russell King <linux@arm.linux.org.uk >
Cc: linux-arm-kernel@lists.infradead.org
Cc: Richard Kuo <rkuo@codeaurora.org >
Cc: linux-hexagon@vger.kernel.org
Cc: Ralf Baechle <ralf@linux-mips.org >
Cc: linux-mips@linux-mips.org
Cc: Kyle McMartin <kyle@mcmartin.ca >
Cc: Helge Deller <deller@gmx.de >
Cc: sparclinux@vger.kernel.org
2012-03-29 15:38:30 +10:30
David Howells
8335896bed
Disintegrate asm/system.h for Hexagon
...
Disintegrate asm/system.h for Hexagon. Not compiled.
Signed-off-by: David Howells <dhowells@redhat.com >
Acked-by: Richard Kuo <rkuo@codeaurora.org >
cc: linux-hexagon@vger.kernel.org
2012-03-28 18:30:02 +01:00
Peter Zijlstra
5fbd036b55
sched: Cleanup cpu_active madness
...
Stepan found:
CPU0 CPUn
_cpu_up()
__cpu_up()
boostrap()
notify_cpu_starting()
set_cpu_online()
while (!cpu_active())
cpu_relax()
<PREEMPT-out>
smp_call_function(.wait=1)
/* we find cpu_online() is true */
arch_send_call_function_ipi_mask()
/* wait-forever-more */
<PREEMPT-in>
local_irq_enable()
cpu_notify(CPU_ONLINE)
sched_cpu_active()
set_cpu_active()
Now the purpose of cpu_active is mostly with bringing down a cpu, where
we mark it !active to avoid the load-balancer from moving tasks to it
while we tear down the cpu. This is required because we only update the
sched_domain tree after we brought the cpu-down. And this is needed so
that some tasks can still run while we bring it down, we just don't want
new tasks to appear.
On cpu-up however the sched_domain tree doesn't yet include the new cpu,
so its invisible to the load-balancer, regardless of the active state.
So instead of setting the active state after we boot the new cpu (and
consequently having to wait for it before enabling interrupts) set the
cpu active before we set it online and avoid the whole mess.
Reported-by: Stepan Moskovchenko <stepanm@codeaurora.org >
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl >
Acked-by: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1323965362.18942.71.camel@twins
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2012-03-12 20:43:15 +01:00
Richard Kuo
43afdf5083
Hexagon: Add SMP support
...
Signed-off-by: Richard Kuo <rkuo@codeaurora.org >
Signed-off-by: Linas Vepstas <linas@codeaurora.org >
Acked-by: Arnd Bergmann <arnd@arndb.de >
Reviewed-by: Thomas Gleixner <tglx@linutronix.de >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-11-01 07:34:20 -07:00