Date: Wed, 22 Jun 2011 16:32:52 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-hackers@freebsd.org Cc: Sushanth Rai <sushanth_rai@yahoo.com> Subject: Re: IPI and I/O interrupts Message-ID: <201106221632.52300.jhb@freebsd.org> In-Reply-To: <357552.99021.qm@web180003.mail.gq1.yahoo.com> References: <357552.99021.qm@web180003.mail.gq1.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday, June 22, 2011 3:59:06 am Sushanth Rai wrote: > Hi, > > I would like to understand little bit about the FreeBSD interrupt handling on x86. > > When a cpu is processing an IPI, let's say cpu is running IPI_STOP handler, are I/O interrupts like the timer interrupt disabled ? Conversely if the cpu is holding a spinlock, which means it has disabled interrupts, can it process an IPI. My understanding is executing "cli" instruction disables the maskable interrupts. I was wondering if IPIs are part of that. Yes, IPIs generally are blocked. We do use an NMI IPI when entering the debugger (and possibly during panics), but general IPIs like TLB shootdowns, etc. are all maskable interrupts. Also, all of the IPI handlers (and the lapic timer interrupt) operate like normal device interrupt handlers using interrupt gates (which block interrupts equivalent to cli). -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106221632.52300.jhb>