Date: Thu, 1 Feb 2007 16:18:23 -0800 From: Alfred Perlstein <alfred@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: smp@freebsd.org Subject: Re: mapping interrupts to a particular cpu Message-ID: <20070202001823.GP83651@elvis.mu.org> In-Reply-To: <200702011607.20679.jhb@freebsd.org> References: <20070201031801.GQ83651@elvis.mu.org> <20070201033356.GR83651@elvis.mu.org> <200702011607.20679.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
* John Baldwin <jhb@freebsd.org> [070201 14:54] wrote: > On Wednesday 31 January 2007 22:33, Alfred Perlstein wrote: > > Through source inspection it appears that we don't have interrupts > > running in the context of the actual interrupt handler unless they > > are truly "FAST". (correct me if I'm wrong). > > > > That makes my decision a lot easier. I will just use bind_cpu. > > > > If so, I will just use bind_cpu. > > What is bind_cpu, sched_bind maybe? yes. > > If you want to bind interrupts to CPUs, look at > http://www.FreeBSD.org/~jhb/patches/intr_bind.patch It's tested and works on > i386 and amd64 and lets you bind interrupts to specific CPUs. There is a > sysarch() to do it, so you can write a trivial userland app. It doesn't > currently provide a way for userland to ask which interrupts are bound to > which CPUs. I'm mostly waiting for folks to benchmark it to make sure it > isn't a pessimization. A++! I will look into this ASAP! thank you, -Alfred > > > * Alfred Perlstein <alfred@freebsd.org> [070131 19:18] wrote: > > > [[jhb cc'd cause he's Mr Apic from what I understand.]] > > > > > > I'm trying to figure out pinning interrupts to a particular cpu. > > > > > > If it can be done, if it's worth it and how. > > > > > > Any generic pointers one could give to help me do this? I'd like to > > > bind network interfaces to a particular cpu. > > > > > > I guess the questions boil down to: > > > > > > 1) Are we at the point that an interrupt for something such as an > > > ethernet device actually runs under interrupt context? > > > (or do we always switch to an ithread (for !FAST_INTR)) > > > (I already know about bind_cpu which can be done inside interrupt > > > routine (I think?)) > > > > > > Anyhow, if we have the actual interrupts running directly... > > > 2) How can I bind an interrupt source to a cpu? > > > 3) Is there a way to determine which cpu is best to wire an interrupt to? > > > > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070202001823.GP83651>