Date: Tue, 3 Oct 2006 20:42:26 +0530 From: "Girish Motwani" <girish.motwani@gmail.com> To: freebsd-smp@freebsd.org Subject: Interrupt Handling with Multiple CPUs Message-ID: <2779e6080610030812t7aed1eedua3e89d81baedafa5@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi, I was looking through the FreeBSD 6.1 release code and had the following questions related to interrupt handling: 1. How are the interrupts distributed to multiple CPUs in an SMP system ? On i386, from the code it appears that that IRQs are tied to CPUs using a round robin mechanism whereby a particular interrupt (for eg UART) would always be serviced on a particular CPU. Is the same model followed on other architectures ? 2. Is there support for directing the interrupt to any CPU based on the current load on each CPU ? or round robin the interrupts across CPUs ? If yes, then what happens in the following scenario: A interrupt arrives and the handler needs to sleep since it needs a sleep mutex which is owned by some other thread. So it uses the ithread for that interrupt source to provide the context for sleeping. At this time, another interrupt of the same type arrives. Thanks in advance, girish
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2779e6080610030812t7aed1eedua3e89d81baedafa5>