mirror of
https://github.com/opnsense/src.git
synced 2026-05-21 09:25:59 -04:00
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. Reviewed by: wblock (manpage) Differential Revision: https://reviews.freebsd.org/D5519 |
||
|---|---|---|
| .. | ||
| i915 | ||
| radeon | ||
| ttm | ||
| ati_pcigart.c | ||
| drm.h | ||
| drm_agpsupport.c | ||
| drm_atomic.h | ||
| drm_auth.c | ||
| drm_buffer.c | ||
| drm_buffer.h | ||
| drm_bufs.c | ||
| drm_context.c | ||
| drm_core.h | ||
| drm_crtc.c | ||
| drm_crtc.h | ||
| drm_crtc_helper.c | ||
| drm_crtc_helper.h | ||
| drm_dma.c | ||
| drm_dp_helper.c | ||
| drm_dp_helper.h | ||
| drm_dp_iic_helper.c | ||
| drm_drv.c | ||
| drm_edid.c | ||
| drm_edid.h | ||
| drm_edid_modes.h | ||
| drm_fb_helper.c | ||
| drm_fb_helper.h | ||
| drm_fixed.h | ||
| drm_fops.c | ||
| drm_fourcc.h | ||
| drm_gem.c | ||
| drm_gem_names.c | ||
| drm_gem_names.h | ||
| drm_global.c | ||
| drm_global.h | ||
| drm_hashtab.c | ||
| drm_hashtab.h | ||
| drm_ioc32.c | ||
| drm_ioctl.c | ||
| drm_irq.c | ||
| drm_linux_list.h | ||
| drm_linux_list_sort.c | ||
| drm_lock.c | ||
| drm_mem_util.h | ||
| drm_memory.c | ||
| drm_mm.c | ||
| drm_mm.h | ||
| drm_mode.h | ||
| drm_modes.c | ||
| drm_os_freebsd.c | ||
| drm_os_freebsd.h | ||
| drm_pci.c | ||
| drm_pciids.h | ||
| drm_sarea.h | ||
| drm_scatter.c | ||
| drm_stub.c | ||
| drm_sysctl.c | ||
| drm_vm.c | ||
| drmP.h | ||