Date: Mon, 2 May 2016 16:03:13 -0500 From: Pedro Giffuni <pfg@FreeBSD.org> To: John Baldwin <jhb@freebsd.org>, "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r298933 - in head: share/man/man9 sys/amd64/include sys/dev/acpica sys/dev/drm2 sys/dev/drm2/i915 sys/kern sys/sys sys/x86/acpica sys/x86/x86 Message-ID: <c30f7a5a-1185-755d-ccf9-df7d071e3417@FreeBSD.org> In-Reply-To: <2097917.RNSsKXUJ7U@ralph.baldwin.cx> References: <201605021800.u42I0cjK084243@repo.freebsd.org> <4F040E00-AB92-4D32-99F5-9BCB02578DC0@gmail.com> <2097917.RNSsKXUJ7U@ralph.baldwin.cx>
next in thread | previous in thread | raw e-mail | index | archive | help
On 05/02/16 15:52, John Baldwin wrote: > On Monday, May 02, 2016 11:45:41 AM Ngie Cooper wrote: >> >>> On May 2, 2016, at 11:00, John Baldwin <jhb@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/ > > I saw. What is odd though is that my tinderbox builds all passed. This might > be due to the recent howmany() changes since _bitset.h only needed <sys/types.h> > before but now needs <sys/param.h> (which is borderline to being pointless for > a _foo.h header). > TBH, I thought so too, but I avoided applying such changes to headers, and I haven't touched _bitset.h, Pedro.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c30f7a5a-1185-755d-ccf9-df7d071e3417>