Messages in this thread | | | Date | Fri, 17 Dec 1999 07:08:05 -0800 | From | "David S. Miller" <> | Subject | Re: scheduling problem? |
| |
Date: Fri, 17 Dec 1999 16:40:52 +0100 (CET) From: Ingo Molnar <mingo@chiara.csoma.elte.hu>
polling on need_resched will also increase performance on SMP systems btw., because the cacheline snoop event goes to the other CPU much faster than the APIC message - and we can skip sending the APIC message at all if the other CPU is running an idle thread. OTOH CPUs will run much hotter ...
And in fact this is what some other architectures (sparc64 for one) already do on SMP. We avoid the send_reschedule entirely if the cpu is idling:
extern __inline__ void smp_send_reschedule(int cpu) { extern void smp_receive_signal(int); if(cpu_data[cpu].idle_volume == 0) smp_receive_signal(cpu); }
(idle_volume is just a local counter we increment on sparc64/SMP while a cpu is in the cpu_idle loop, we use it to implement our dynamic IRQ retargeting heuristics)
Later, David S. Miller davem@redhat.com
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |