mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-13 21:02:35 +00:00
arch/tile: add "nop" after "nap" to help GX idle power draw
This avoids the hardware istream prefetcher doing unnecessary work. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
This commit is contained in:
parent
bfffe79bc2
commit
8c92ba6c32
@ -85,6 +85,7 @@ STD_ENTRY(cpu_idle_on_new_stack)
|
|||||||
/* Loop forever on a nap during SMP boot. */
|
/* Loop forever on a nap during SMP boot. */
|
||||||
STD_ENTRY(smp_nap)
|
STD_ENTRY(smp_nap)
|
||||||
nap
|
nap
|
||||||
|
nop /* avoid provoking the icache prefetch with a jump */
|
||||||
j smp_nap /* we are not architecturally guaranteed not to exit nap */
|
j smp_nap /* we are not architecturally guaranteed not to exit nap */
|
||||||
jrp lr /* clue in the backtracer */
|
jrp lr /* clue in the backtracer */
|
||||||
STD_ENDPROC(smp_nap)
|
STD_ENDPROC(smp_nap)
|
||||||
@ -105,5 +106,6 @@ STD_ENTRY(_cpu_idle)
|
|||||||
.global _cpu_idle_nap
|
.global _cpu_idle_nap
|
||||||
_cpu_idle_nap:
|
_cpu_idle_nap:
|
||||||
nap
|
nap
|
||||||
|
nop /* avoid provoking the icache prefetch with a jump */
|
||||||
jrp lr
|
jrp lr
|
||||||
STD_ENDPROC(_cpu_idle)
|
STD_ENDPROC(_cpu_idle)
|
||||||
|
@ -103,7 +103,7 @@ static void smp_stop_cpu_interrupt(void)
|
|||||||
set_cpu_online(smp_processor_id(), 0);
|
set_cpu_online(smp_processor_id(), 0);
|
||||||
arch_local_irq_disable_all();
|
arch_local_irq_disable_all();
|
||||||
for (;;)
|
for (;;)
|
||||||
asm("nap");
|
asm("nap; nop");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This function calls the 'stop' function on all other CPUs in the system. */
|
/* This function calls the 'stop' function on all other CPUs in the system. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user