freebsd-dev/sys
John Baldwin 8d791e5af1 Add a new bus method to fetch device-specific CPU sets.
bus_get_cpus() returns a specified set of CPUs for a device.  It accepts
an enum for the second parameter that indicates the type of cpuset to
request.  Currently two valus are supported:

 - LOCAL_CPUS (on x86 this returns all the CPUs in the package closest to
   the device when DEVICE_NUMA is enabled)
 - INTR_CPUS (like LOCAL_CPUS but only returns 1 SMT thread for each core)

For systems that do not support NUMA (or if it is not enabled in the kernel
config), LOCAL_CPUS fails with EINVAL.  INTR_CPUS is mapped to 'all_cpus'
by default.  The idea is that INTR_CPUS should always return a valid set.

Device drivers which want to use per-CPU interrupts should start using
INTR_CPUS instead of simply assigning interrupts to all available CPUs.
In the future we may wish to add tunables to control the policy of
INTR_CPUS (e.g. should it be local-only or global, should it ignore
SMT threads or not).

The x86 nexus driver exposes the internal set of interrupt CPUs from the
the x86 interrupt code via INTR_CPUS.

The ACPI bus driver and PCI bridge drivers use _PXM to return a suitable
LOCAL_CPUS set when _PXM exists and DEVICE_NUMA is enabled.  They also and
the global INTR_CPUS set from the nexus driver with the per-domain set from
_PXM to generate a local INTR_CPUS set for child devices.

Compared to the r298933, this version uses 'struct _cpuset' in
<sys/bus.h> instead of 'cpuset_t' to avoid requiring <sys/param.h>
(<sys/_cpuset.h> still requires <sys/param.h> for MAXCPU even though
<sys/_bitset.h> does not after recent changes).
2016-05-09 20:50:21 +00:00
..
amd64 Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
arm INTRNG - update gpio pin capabilities according to r299198. 2016-05-08 09:01:30 +00:00
arm64 Native PCI-express HotPlug support. 2016-05-05 22:26:23 +00:00
boot efipart: Support an arbitrary number of partitions 2016-05-05 00:07:08 +00:00
bsm
cam cam/scsi: Remove mostly unused scsi_quirk_table_size. 2016-05-06 16:51:56 +00:00
cddl Implement FBT provider (MD part) for DTrace on MIPS. 2016-05-05 13:54:50 +00:00
compat Fix file polling bug. 2016-05-09 11:52:57 +00:00
conf [bwn] oops. typo. 2016-05-09 06:02:57 +00:00
contrib Revert AccessWidth/BitOffset support for AcpiHwWrite() and AcpiHwRead() for 2016-04-30 06:48:48 +00:00
crypto aesni(4): Initialize error before use 2016-04-20 03:05:32 +00:00
ddb Revert r298938: Change x/a to work similar to gdb. 2016-05-06 20:28:28 +00:00
dev Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
fs Don't increment srvrpccnt[] for the NFSv4.1 operations. 2016-05-07 22:45:08 +00:00
gdb
geom Add missing include "opt_geom.h" to make GEOM_UZIP_DEBUG option working, 2016-05-06 20:32:39 +00:00
gnu Change OpenWRT imported dtsi files 2016-04-20 14:29:03 +00:00
i386 Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
isa sys/isa: minor spelling fixes. 2016-05-03 21:51:52 +00:00
kern Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
kgssapi kgssapi: insignificant spelling fix. 2016-05-03 22:05:03 +00:00
libkern sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
mips mtk_spi cleanup commented printfs 2016-05-06 05:24:10 +00:00
modules [bhnd] Initial bhnd(4) SPROM/NVRAM support. 2016-05-08 19:14:05 +00:00
net Improve performance and functionality of the bitstring(3) api 2016-05-04 22:34:11 +00:00
net80211 net80211: restore 'iflladdr_event' event handler. 2016-05-06 11:41:49 +00:00
netgraph sys/netgraph: spelling fixes in comments. 2016-04-29 21:25:05 +00:00
netinet Add an option to use rfc6675 based pipe/inflight bytes calculation in htcp. 2016-05-09 19:19:03 +00:00
netinet6 Clean up callers of nd6_prelist_add(). 2016-05-07 03:41:29 +00:00
netipsec sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
netnatm kernel: use our nitems() macro when it is available through param.h. 2016-04-19 23:48:27 +00:00
netpfil Change the type of objhash_cb_t callback function to be able return an 2016-05-06 03:18:51 +00:00
netsmb sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
nfs NFS: spelling fixes on comments. 2016-04-29 16:07:25 +00:00
nfsclient
nfsserver
nlm Remove slightly used const values that can be replaced with nitems(). 2016-04-21 15:38:28 +00:00
ofed sys/ofed: minor spelling fix. 2016-05-06 15:37:06 +00:00
opencrypto sys/opencrypto: minor spelling fixes. 2016-05-06 23:37:19 +00:00
pc98 Move 'device pci' for the PCI bus driver to the MI NOTES file. 2016-04-29 23:53:55 +00:00
powerpc Native PCI-express HotPlug support. 2016-05-05 22:26:23 +00:00
riscv Rework the list of all pmaps: embed the list link into pmap. 2016-04-26 14:38:18 +00:00
rpc sys/rpc: minor spelling fixes. 2016-05-06 01:49:46 +00:00
security sys/security: minor spelling fixes. 2016-05-06 16:59:04 +00:00
sparc64 sys/sparc64: minor spelling fixes. 2016-05-04 15:52:40 +00:00
sys Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
teken
tests
tools Fix MFS builds when both MD_ROOT_SIZE and MFS_IMAGE are specified 2016-02-02 07:02:51 +00:00
ufs UFS: spelling fixes on comments. 2016-04-29 20:43:51 +00:00
vm sys/vm: minor spelling fixes in comments. 2016-05-02 20:16:29 +00:00
x86 Add a new bus method to fetch device-specific CPU sets. 2016-05-09 20:50:21 +00:00
xdr RPC: for pointers replace 0 with NULL. 2016-04-14 17:06:37 +00:00
xen xenbus: add a comment with the names of the generated accessors 2016-01-15 14:34:31 +00:00
Makefile Add riscv to the list of architectures for cscope. 2016-02-29 16:39:27 +00:00