Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Feb 2007 16:39:49 -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:  <20070202003949.GR83651@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?
> 
> 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.

Even if it pessimizes in the general case, it may have specific
uses that could be helpful, and would avoid people duplicating
work in the future.  I hope you plan on committing it soon.

> 
> > * 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?
> > > 
> > 
> 
> -- 
> John Baldwin

-- 
- Alfred Perlstein, RED Incorporated Consulting.
- coder / sysadmin / FreeBSD Hacker / All that jazz -



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070202003949.GR83651>