Re: linux-next: manual merge of the tip tree with the sparc tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Peter Zijlstra wrote:

On Thu, 2011-05-19 at 15:37 +0200, Daniel Hellstrom wrote:


diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c
index 41102c5..d5b3958 100644
--- a/arch/sparc/kernel/smp_32.c
+++ b/arch/sparc/kernel/smp_32.c
@@ -156,11 +156,11 @@ void arch_send_call_function_ipi_mask(const struct cpumask *mask)

void smp_resched_interrupt(void)
{
+       irq_enter();
+       scheduler_ipi();
       local_cpu_data().irq_resched_count++;
-       /*
-        * do nothing, since it all was about calling re-schedule
-        * routine called by interrupt return code.
-        */
+       irq_exit();
+       /* re-schedule routine called by interrupt return code. */
}

That doesn't look like an IPI, that looks like its calls the function on
the local cpu, which is completely pointless.
The above function is one of the IPI interrupt handlers.

The smp_send_reschedule() is called by the generic code, it is responsible for sending an IRQ to the target CPU, that CPU comes into smp_resched_interrupt above from the IRQ trap handler. So yes, the scheduler_ipi() is called on the local CPU, but on the CPU taking the IPI not the CPU sending the IPI.

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux