freebsd-dev/sys
John Baldwin eaf86d1678 Add preliminary support for binding interrupts to CPUs:
- Add a new intr_event method ie_assign_cpu() that is invoked when the MI
  code wishes to bind an interrupt source to an individual CPU.  The MD
  code may reject the binding with an error.  If an assign_cpu function
  is not provided, then the kernel assumes the platform does not support
  binding interrupts to CPUs and fails all requests to do so.
- Bind ithreads to CPUs on their next execution loop once an interrupt
  event is bound to a CPU.  Only shared ithreads are bound.  We currently
  leave private ithreads for drivers using filters + ithreads in the
  INTR_FILTER case unbound.
- A new intr_event_bind() routine is used to bind an interrupt event to
  a CPU.
- Implement binding on amd64 and i386 by way of the existing pic_assign_cpu
  PIC method.
- For x86, provide a 'intr_bind(IRQ, cpu)' wrapper routine that looks up
  an interrupt source and binds its interrupt event to the specified CPU.
  MI code can currently (ab)use this by doing:

	intr_bind(rman_get_start(irq_res), cpu);

  however, I plan to add a truly MI interface (probably a bus_bind_intr(9))
  where the implementation in the x86 nexus(4) driver would end up calling
  intr_bind() internally.

Requested by:	kmacy, gallatin, jeff
Tested on:	{amd64, i386} x {regular, INTR_FILTER}
2008-03-14 19:41:48 +00:00
..
amd64 Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
arm Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
boot style(9) & style.Makefile(9) 2008-03-13 17:54:21 +00:00
bsm Merge OpenBSM 1.0 changes to src/sys/bsm: 2007-10-29 18:47:25 +00:00
cam When probing a newly found device, don't automatically assume that the 2008-02-27 08:47:13 +00:00
cddl Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
compat - The P_SA flag has been removed. Don't reference it in a KASSERT. 2008-03-12 22:17:06 +00:00
conf Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
contrib Axe the 'thread' argument from VOP_ISLOCKED() and lockstatus() as it is 2008-02-25 18:45:57 +00:00
crypto Make test00 compilable again. 2008-01-15 18:34:47 +00:00
ddb Add a /S mode to DDB "ex" command, which interprets and prints the 2008-03-07 18:09:07 +00:00
dev Add a quirk to ignore ASUS LCM display found on some ASUS laptops. 2008-03-14 15:59:30 +00:00
fs Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
gdb Add support for kgdb's 'detach' command. 2008-02-29 01:57:20 +00:00
geom Add support for VTOC8 labels (aka sun disk labels). When a label does 2008-03-02 00:52:49 +00:00
gnu Introduce some functions in the vnode locks namespace and in the ffs 2008-02-24 16:38:58 +00:00
i4b Spelling fix for interupt -> interrupt 2007-10-12 06:03:46 +00:00
i386 Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
ia64 Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
isa Use cpu_spinwait() (i.e., "pause") when spinning on rdtsc during DELAY(). 2008-01-17 18:59:38 +00:00
kern Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
libkern Add prototype for __cmpd2(). 2008-02-23 22:40:05 +00:00
modules Update file list and Makefile after repocopying vr(4) from 2008-03-11 03:50:57 +00:00
net Improve convergence of bpf_filter.c toward style(9). 2008-03-09 21:13:43 +00:00
net80211 Fix adhoc mode to scan all available channels for a bss to join 2008-02-29 04:07:07 +00:00
netatalk Annotate two possible bugs in a comment: (1) we allocate and explicitly 2007-11-20 18:50:54 +00:00
netatm Disconnect netatm from the build as it is not MPSAFE and relies on 2007-07-14 21:49:24 +00:00
netgraph Improve apply callback error reporting: 2008-03-11 21:58:48 +00:00
netinet Correct IPsec behaviour with a 'use' level in SP but no SA available. 2008-03-14 16:38:11 +00:00
netinet6 Correct IPsec behaviour with a 'use' level in SP but no SA available. 2008-03-14 16:38:11 +00:00
netipsec Correct IPsec behaviour with a 'use' level in SP but no SA available. 2008-03-14 16:38:11 +00:00
netipx Make tcpstates[] static, and make sure TCPSTATES is defined before 2007-07-30 11:06:42 +00:00
netnatm
netncp - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
netsmb Remove unused vc_tnode field from struct smb_vc. 2008-03-10 14:55:34 +00:00
nfs
nfs4client - Handle buffer lock waiters count directly in the buffer cache instead 2008-03-01 19:47:50 +00:00
nfsclient Expand the nfs_opts array to include all possible string 2008-03-05 10:09:29 +00:00
nfsserver Fix the Giant leak in the nfsrv_remove(). 2008-03-04 11:05:03 +00:00
opencrypto Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
pc98 Add stub for pc98. 2008-03-14 09:00:04 +00:00
pccard
pci vr(4) was repocopied to src/sys/dev/vr. 2008-03-11 03:53:53 +00:00
powerpc Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
rpc Remove the now-unused NET_{LOCK,UNLOCK,ASSERT}_GIANT() macros, which 2007-08-06 14:26:03 +00:00
security Remove XXX to remind me to check the free space calculation, which to my 2008-03-10 18:15:02 +00:00
sparc64 Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
sun4v Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
sys Add preliminary support for binding interrupts to CPUs: 2008-03-14 19:41:48 +00:00
tools Introduce a standalone shell script for embedding MFS image. 2008-02-05 10:46:30 +00:00
ufs Replace the non-MPSAFE timeout(9) API in ffs_softdep.c with the MPSAFE 2008-03-13 20:15:48 +00:00
vm Remove kernel support for M:N threading. 2008-03-12 10:12:01 +00:00
Makefile o Add boot, gdb, nfsserver and opencrypto dirs to CSCOPEDIRS; sort. 2008-01-23 08:50:34 +00:00