lkml.org 
[lkml]   [2011]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: linux-next: manual merge of the tip tree with the sparc tree
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


\
 
 \ /
  Last update: 2011-05-20 08:11    [W:0.109 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site