> On May 2, 2016, at 11:00, John Baldwin <j...@freebsd.org> wrote: > > Author: jhb > Date: Mon May 2 18:00:38 2016 > New Revision: 298933 > URL: https://svnweb.freebsd.org/changeset/base/298933 > > Log: > 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. > > Reviewed by: wblock (manpage) > Differential Revision: https://reviews.freebsd.org/D5519 > > Added: > head/share/man/man9/BUS_GET_CPUS.9 (contents, props changed) > Modified: > head/share/man/man9/Makefile > head/sys/amd64/include/intr_machdep.h > head/sys/dev/acpica/acpi.c > head/sys/dev/acpica/acpi_pci.c > head/sys/dev/acpica/acpi_pcib.c > head/sys/dev/acpica/acpi_pcib_acpi.c > head/sys/dev/acpica/acpi_pcib_pci.c > head/sys/dev/acpica/acpi_pcibvar.h > head/sys/dev/acpica/acpivar.h > head/sys/dev/drm2/drm_dp_iic_helper.c > head/sys/dev/drm2/i915/dvo.h > head/sys/kern/bus_if.m > head/sys/kern/subr_bus.c > head/sys/sys/bus.h > head/sys/x86/acpica/OsdEnvironment.c > head/sys/x86/x86/intr_machdep.c > head/sys/x86/x86/nexus.c
This broke the build with gcc: https://jenkins.freebsd.org/job/FreeBSD_HEAD_amd64_gcc/1211/ _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"