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
..
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-04 06:26:27 +00:00
2016-05-09 20:50:21 +00:00
2016-04-21 19:57:40 +00:00
2016-05-03 03:41:25 +00:00
2016-04-21 20:30:38 +00:00
2016-04-26 15:03:15 +00:00
2016-04-21 19:57:40 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 15:27:47 +00:00
2016-04-21 19:48:28 +00:00
2015-12-04 03:17:47 +00:00
2016-02-18 01:24:10 +00:00
2016-04-19 23:37:24 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-03-29 12:19:46 +00:00
2016-04-19 15:07:04 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-03-15 05:17:29 +00:00
2016-05-03 17:11:33 +00:00
2016-05-03 03:41:25 +00:00
2016-05-02 19:56:48 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2015-07-03 14:27:28 +00:00
2015-03-08 19:55:46 +00:00
2016-05-09 17:19:17 +00:00
2016-05-03 03:41:25 +00:00
2016-05-04 06:24:10 +00:00
2016-05-03 03:41:25 +00:00
2016-05-08 19:14:05 +00:00
2016-05-03 03:41:25 +00:00
2016-04-26 23:09:47 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-04 22:39:27 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:38:01 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:38:01 +00:00
2016-03-18 01:28:41 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-09 20:01:34 +00:00
2016-04-26 15:03:15 +00:00
2015-08-19 09:49:29 +00:00
2015-01-23 15:14:30 +00:00
2015-05-22 17:05:21 +00:00
2016-05-03 03:41:25 +00:00
2016-04-21 20:30:38 +00:00
2016-04-19 01:48:18 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-29 21:46:43 +00:00
2016-05-06 22:54:56 +00:00
2016-05-03 03:41:25 +00:00
2016-02-20 01:32:58 +00:00
2016-04-21 19:57:40 +00:00
2016-02-01 17:41:21 +00:00
2016-05-04 06:24:51 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2015-12-11 05:27:56 +00:00
2016-04-21 19:57:40 +00:00
2016-04-04 10:03:06 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-04 23:00:57 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-03-25 00:14:56 +00:00
2016-05-03 03:41:25 +00:00
2016-04-20 14:33:00 +00:00
2016-05-03 03:41:25 +00:00
2015-06-30 17:00:45 +00:00
2016-04-28 12:04:12 +00:00
2015-05-22 17:05:21 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:34:01 +00:00
2016-05-04 01:43:07 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:38:01 +00:00
2016-03-24 23:24:00 +00:00
2016-05-03 03:41:25 +00:00
2016-04-10 23:07:00 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 23:56:52 +00:00
2016-03-22 06:24:52 +00:00
2016-05-03 03:41:25 +00:00
2015-09-22 02:44:59 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 14:49:49 +00:00
2016-05-03 03:41:25 +00:00
2015-08-19 09:49:29 +00:00
2016-01-07 21:16:44 +00:00
2016-05-03 03:41:25 +00:00
2016-04-11 10:53:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-06 17:39:12 +00:00
2016-05-03 03:41:25 +00:00
2016-05-06 22:54:56 +00:00
2016-04-09 17:37:36 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-07 20:12:45 +00:00
2016-04-21 19:40:10 +00:00
2015-05-24 07:45:42 +00:00
2016-05-03 03:41:25 +00:00
2016-05-04 06:23:49 +00:00
2016-04-29 22:14:11 +00:00
2016-03-18 01:28:41 +00:00
2016-04-26 15:03:15 +00:00
2016-03-09 19:36:25 +00:00
2015-12-26 17:22:02 +00:00
2015-01-24 12:51:15 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-10 23:07:00 +00:00
2016-05-03 03:41:25 +00:00
2016-04-29 11:01:06 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-09 16:38:51 +00:00
2016-05-05 15:32:47 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:38:01 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-19 23:37:24 +00:00
2015-01-06 12:59:37 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-20 01:17:18 +00:00
2016-01-27 02:23:54 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-19 23:37:24 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-03-10 17:13:10 +00:00
2016-03-10 17:13:10 +00:00
2016-05-04 01:56:37 +00:00
2016-04-12 17:23:03 +00:00
2016-04-10 23:07:00 +00:00
2016-03-29 15:19:56 +00:00
2016-05-09 19:28:22 +00:00
2016-04-10 23:07:00 +00:00
2016-05-03 03:41:25 +00:00
2016-02-27 03:38:01 +00:00
2016-04-21 15:38:28 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-06 23:46:35 +00:00
2015-01-06 12:59:37 +00:00
2016-05-03 03:41:25 +00:00
2016-05-04 17:52:53 +00:00
2016-05-03 03:41:25 +00:00
2016-03-18 01:28:41 +00:00
2016-03-18 01:28:41 +00:00
2015-08-11 13:42:58 +00:00
2016-04-20 04:50:33 +00:00
2016-03-02 03:26:56 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-03-02 03:26:56 +00:00
2016-05-03 03:41:25 +00:00
2016-05-02 14:35:57 +00:00
2016-05-03 03:41:25 +00:00
2015-09-07 21:59:11 +00:00
2016-04-19 23:37:24 +00:00
2016-05-03 03:41:25 +00:00
2016-04-21 19:40:10 +00:00
2016-02-27 03:38:01 +00:00
2016-04-20 14:47:16 +00:00
2016-04-29 22:14:11 +00:00
2015-06-30 17:00:45 +00:00
2016-05-03 03:41:25 +00:00
2016-03-02 03:26:56 +00:00
2016-04-26 15:03:15 +00:00
2016-03-21 00:52:24 +00:00
2016-01-01 17:56:52 +00:00
2016-05-03 03:41:25 +00:00
2016-05-09 08:38:56 +00:00
2016-04-21 15:38:28 +00:00
2016-05-03 03:41:25 +00:00
2016-05-09 06:30:00 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2015-01-12 07:37:06 +00:00
2016-05-03 03:41:25 +00:00
2015-04-25 16:15:01 +00:00
2016-03-01 17:47:32 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 15:27:47 +00:00
2016-04-19 23:37:24 +00:00
2016-04-26 16:02:13 +00:00
2016-01-27 02:23:54 +00:00
2016-04-19 23:37:24 +00:00
2016-04-23 20:29:55 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-04-10 23:07:00 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-02-19 03:37:56 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2015-06-30 17:00:45 +00:00
2016-04-29 22:14:11 +00:00
2016-05-06 15:09:21 +00:00
2015-06-18 00:22:14 +00:00
2016-05-03 03:41:25 +00:00
2016-04-19 23:37:24 +00:00
2015-11-16 21:36:50 +00:00
2016-04-08 16:14:18 +00:00
2016-03-01 17:47:32 +00:00
2016-04-30 14:41:18 +00:00
2016-02-18 01:24:10 +00:00
2016-05-03 03:41:25 +00:00
2016-05-03 03:41:25 +00:00
2015-05-22 17:05:21 +00:00
2015-01-06 12:59:37 +00:00
2016-05-02 16:47:28 +00:00
2016-05-04 18:08:38 +00:00
2016-05-03 03:41:25 +00:00
2016-04-30 14:41:18 +00:00
2016-05-02 16:47:28 +00:00
2016-05-03 03:41:25 +00:00
2016-05-06 16:44:46 +00:00
2016-04-19 15:36:18 +00:00
2016-05-03 03:41:25 +00:00