From owner-svn-src-all@freebsd.org Mon May 2 20:53:03 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 60A90B2AEFA; Mon, 2 May 2016 20:53:03 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3B8EA1CB3; Mon, 2 May 2016 20:53:03 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id E2309B96C; Mon, 2 May 2016 16:53:01 -0400 (EDT) From: John Baldwin To: "Ngie Cooper (yaneurabeya)" 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 Date: Mon, 02 May 2016 13:52:53 -0700 Message-ID: <2097917.RNSsKXUJ7U@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-STABLE; KDE/4.14.3; amd64; ; ) In-Reply-To: <4F040E00-AB92-4D32-99F5-9BCB02578DC0@gmail.com> References: <201605021800.u42I0cjK084243@repo.freebsd.org> <4F040E00-AB92-4D32-99F5-9BCB02578DC0@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Mon, 02 May 2016 16:53:02 -0400 (EDT) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2016 20:53:03 -0000 On Monday, May 02, 2016 11:45:41 AM Ngie Cooper wrote: > > > On May 2, 2016, at 11:00, John Baldwin 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 before but now needs (which is borderline to being pointless for a _foo.h header). -- John Baldwin