From owner-svn-src-all@freebsd.org Sun Jan 12 04:00:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F31652222BC; Sun, 12 Jan 2020 04:00:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNLL5hgmz3Pcl; Sun, 12 Jan 2020 04:00:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B9096DCA5; Sun, 12 Jan 2020 04:00:58 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C40w7n073125; Sun, 12 Jan 2020 04:00:58 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C40wZd073124; Sun, 12 Jan 2020 04:00:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120400.00C40wZd073124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:00:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356646 - in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Commit-Revision: 356646 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:00:59 -0000 Author: kevans Date: Sun Jan 12 04:00:58 2020 New Revision: 356646 URL: https://svnweb.freebsd.org/changeset/base/356646 Log: MFC r356539: md(4): improve documentation of preloading It's not immediately clear by what mechanism loader(8) will be loading the preloaded file. Specifically name-drop loader.conf(5) with a pointer to the module loading section and a description of what the 'name' should look like, because that certainly isn't clear from the loader.conf(5) standpoint. The default loader.conf already has a pointer to md(4) where it appears and the reference to loader.conf in the new version of this manpage should make it more clear that this is where one should look for information. Modified: stable/11/share/man/man4/md.4 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/man/man4/md.4 Directory Properties: stable/12/ (props changed) Modified: stable/11/share/man/man4/md.4 ============================================================================== --- stable/11/share/man/man4/md.4 Sat Jan 11 23:00:57 2020 (r356645) +++ stable/11/share/man/man4/md.4 Sun Jan 12 04:00:58 2020 (r356646) @@ -7,7 +7,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 26, 2017 +.Dd January 8, 2020 .Dt MD 4 .Os .Sh NAME @@ -46,7 +46,7 @@ system. The exact value can be determined with .Xr vmstat 8 . .It Cm preload -A file loaded by +A module loaded by .Xr loader 8 with type .Sq md_image @@ -54,6 +54,12 @@ is used for backing store. For backwards compatibility the type .Sq mfs_root is also recognized. +See the description of module loading directives in +.Xr loader.conf 5 +and note that the module name will either be an absolute path to the image file +or the name of a file in the +.Va module_path . +.Pp If the kernel is created with option .Dv MD_ROOT the first preloaded image found will become the root file system. From owner-svn-src-all@freebsd.org Sun Jan 12 04:00:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 854BB2223DF; Sun, 12 Jan 2020 04:00:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNLM1kqMz3Pcp; Sun, 12 Jan 2020 04:00:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 31468DCA7; Sun, 12 Jan 2020 04:00:59 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C40wE1073131; Sun, 12 Jan 2020 04:00:58 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C40wd7073130; Sun, 12 Jan 2020 04:00:58 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120400.00C40wd7073130@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:00:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356646 - in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Commit-Revision: 356646 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:00:59 -0000 Author: kevans Date: Sun Jan 12 04:00:58 2020 New Revision: 356646 URL: https://svnweb.freebsd.org/changeset/base/356646 Log: MFC r356539: md(4): improve documentation of preloading It's not immediately clear by what mechanism loader(8) will be loading the preloaded file. Specifically name-drop loader.conf(5) with a pointer to the module loading section and a description of what the 'name' should look like, because that certainly isn't clear from the loader.conf(5) standpoint. The default loader.conf already has a pointer to md(4) where it appears and the reference to loader.conf in the new version of this manpage should make it more clear that this is where one should look for information. Modified: stable/12/share/man/man4/md.4 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/man/man4/md.4 Directory Properties: stable/11/ (props changed) Modified: stable/12/share/man/man4/md.4 ============================================================================== --- stable/12/share/man/man4/md.4 Sat Jan 11 23:00:57 2020 (r356645) +++ stable/12/share/man/man4/md.4 Sun Jan 12 04:00:58 2020 (r356646) @@ -7,7 +7,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 26, 2017 +.Dd January 8, 2020 .Dt MD 4 .Os .Sh NAME @@ -46,7 +46,7 @@ system. The exact value can be determined with .Xr vmstat 8 . .It Cm preload -A file loaded by +A module loaded by .Xr loader 8 with type .Sq md_image @@ -54,6 +54,12 @@ is used for backing store. For backwards compatibility the type .Sq mfs_root is also recognized. +See the description of module loading directives in +.Xr loader.conf 5 +and note that the module name will either be an absolute path to the image file +or the name of a file in the +.Va module_path . +.Pp If the kernel is created with option .Dv MD_ROOT the first preloaded image found will become the root file system. From owner-svn-src-all@freebsd.org Sun Jan 12 04:02:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD46E222587; Sun, 12 Jan 2020 04:02:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNNY4vClz3Q4t; Sun, 12 Jan 2020 04:02:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 978BFDE42; Sun, 12 Jan 2020 04:02:53 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C42rns077716; Sun, 12 Jan 2020 04:02:53 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C42rdQ077715; Sun, 12 Jan 2020 04:02:53 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120402.00C42rdQ077715@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:02:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356647 - stable/12/sys/arm/broadcom/bcm2835 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/sys/arm/broadcom/bcm2835 X-SVN-Commit-Revision: 356647 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:02:53 -0000 Author: kevans Date: Sun Jan 12 04:02:53 2020 New Revision: 356647 URL: https://svnweb.freebsd.org/changeset/base/356647 Log: MFC r356562: bcm2835_vcbus: hide 'checking root' messages under bootverbose Modified: stable/12/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c ============================================================================== --- stable/12/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Sun Jan 12 04:00:58 2020 (r356646) +++ stable/12/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Sun Jan 12 04:02:53 2020 (r356647) @@ -219,8 +219,9 @@ bcm283x_get_current_memcfg(void) root = OF_finddevice("/"); for (i = 0; i < nitems(bcm283x_memory_configs); ++i) { booted_soc_memcfg = &bcm283x_memory_configs[i]; - printf("Checking root against %s\n", - booted_soc_memcfg->soc_compat); + if (bootverbose) + printf("Checking root against %s\n", + booted_soc_memcfg->soc_compat); if (ofw_bus_node_is_compatible(root, booted_soc_memcfg->soc_compat)) return (booted_soc_memcfg); From owner-svn-src-all@freebsd.org Sun Jan 12 04:05:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9087022265E; Sun, 12 Jan 2020 04:05:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNRN1BTPz3QCT; Sun, 12 Jan 2020 04:05:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F0B10DE46; Sun, 12 Jan 2020 04:05:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C45JCC077914; Sun, 12 Jan 2020 04:05:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C45J0R077913; Sun, 12 Jan 2020 04:05:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120405.00C45J0R077913@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:05:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356648 - in stable: 11/sys/dev/usb/controller 12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/controller 12/sys/dev/usb/controller X-SVN-Commit-Revision: 356648 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:05:20 -0000 Author: kevans Date: Sun Jan 12 04:05:18 2020 New Revision: 356648 URL: https://svnweb.freebsd.org/changeset/base/356648 Log: MFC r356564: dwc_otg: fix fdt attachment for newer bcm2708-usb nodes The newer versions of RPi FDT flipped the order of the interrupts specification and added an 'interrupt-names' property for driver aide in finding the correct interrupt, rather than assuming the positions. Use it if it's available, or fallback to the old method if there is no interrupt-names property with a usb value. This has been tested with both old RPi3B FDT and new RPi3B FDT, USB again works on the latter. Modified: stable/12/sys/dev/usb/controller/dwc_otg_fdt.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/sys/dev/usb/controller/dwc_otg_fdt.c Directory Properties: stable/11/ (props changed) Modified: stable/12/sys/dev/usb/controller/dwc_otg_fdt.c ============================================================================== --- stable/12/sys/dev/usb/controller/dwc_otg_fdt.c Sun Jan 12 04:02:53 2020 (r356647) +++ stable/12/sys/dev/usb/controller/dwc_otg_fdt.c Sun Jan 12 04:05:18 2020 (r356648) @@ -80,6 +80,20 @@ dwc_otg_probe(device_t dev) return (BUS_PROBE_DEFAULT); } +static int +dwc_otg_irq_index(device_t dev, int *rid) +{ + int idx, rv; + phandle_t node; + + node = ofw_bus_get_node(dev); + rv = ofw_bus_find_string_index(node, "interrupt-names", "usb", &idx); + if (rv != 0) + return (rv); + *rid = idx; + return (0); +} + int dwc_otg_attach(device_t dev) { @@ -130,10 +144,16 @@ dwc_otg_attach(device_t dev) /* - * brcm,bcm2708-usb FDT provides two interrupts, - * we need only second one (VC_USB) + * brcm,bcm2708-usb FDT provides two interrupts, we need only the USB + * interrupt (VC_USB). The latest FDT for it provides an + * interrupt-names property and swapped them around, while older ones + * did not have interrupt-names and put the usb interrupt in the second + * position. We'll attempt to use interrupt-names first with a fallback + * to the old method of assuming the index based on the compatible + * string. */ - rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; + if (dwc_otg_irq_index(dev, &rid) != 0) + rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; sc->sc_otg.sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (sc->sc_otg.sc_irq_res == NULL) From owner-svn-src-all@freebsd.org Sun Jan 12 04:05:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 908CD22265F; Sun, 12 Jan 2020 04:05:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNRN153kz3QCS; Sun, 12 Jan 2020 04:05:20 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CB189DE45; Sun, 12 Jan 2020 04:05:19 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C45Jvu077908; Sun, 12 Jan 2020 04:05:19 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C45JL6077907; Sun, 12 Jan 2020 04:05:19 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120405.00C45JL6077907@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:05:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356648 - in stable: 11/sys/dev/usb/controller 12/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/sys/dev/usb/controller 12/sys/dev/usb/controller X-SVN-Commit-Revision: 356648 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:05:20 -0000 Author: kevans Date: Sun Jan 12 04:05:18 2020 New Revision: 356648 URL: https://svnweb.freebsd.org/changeset/base/356648 Log: MFC r356564: dwc_otg: fix fdt attachment for newer bcm2708-usb nodes The newer versions of RPi FDT flipped the order of the interrupts specification and added an 'interrupt-names' property for driver aide in finding the correct interrupt, rather than assuming the positions. Use it if it's available, or fallback to the old method if there is no interrupt-names property with a usb value. This has been tested with both old RPi3B FDT and new RPi3B FDT, USB again works on the latter. Modified: stable/11/sys/dev/usb/controller/dwc_otg_fdt.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/sys/dev/usb/controller/dwc_otg_fdt.c Directory Properties: stable/12/ (props changed) Modified: stable/11/sys/dev/usb/controller/dwc_otg_fdt.c ============================================================================== --- stable/11/sys/dev/usb/controller/dwc_otg_fdt.c Sun Jan 12 04:02:53 2020 (r356647) +++ stable/11/sys/dev/usb/controller/dwc_otg_fdt.c Sun Jan 12 04:05:18 2020 (r356648) @@ -73,6 +73,20 @@ dwc_otg_probe(device_t dev) return (BUS_PROBE_DEFAULT); } +static int +dwc_otg_irq_index(device_t dev, int *rid) +{ + int idx, rv; + phandle_t node; + + node = ofw_bus_get_node(dev); + rv = ofw_bus_find_string_index(node, "interrupt-names", "usb", &idx); + if (rv != 0) + return (rv); + *rid = idx; + return (0); +} + int dwc_otg_attach(device_t dev) { @@ -123,10 +137,16 @@ dwc_otg_attach(device_t dev) /* - * brcm,bcm2708-usb FDT provides two interrupts, - * we need only second one (VC_USB) + * brcm,bcm2708-usb FDT provides two interrupts, we need only the USB + * interrupt (VC_USB). The latest FDT for it provides an + * interrupt-names property and swapped them around, while older ones + * did not have interrupt-names and put the usb interrupt in the second + * position. We'll attempt to use interrupt-names first with a fallback + * to the old method of assuming the index based on the compatible + * string. */ - rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; + if (dwc_otg_irq_index(dev, &rid) != 0) + rid = ofw_bus_is_compatible(dev, "brcm,bcm2708-usb") ? 1 : 0; sc->sc_otg.sc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid, RF_ACTIVE); if (sc->sc_otg.sc_irq_res == NULL) From owner-svn-src-all@freebsd.org Sun Jan 12 04:07:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 014E322277B; Sun, 12 Jan 2020 04:07:05 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNTN5W4hz3QS6; Sun, 12 Jan 2020 04:07:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 859B1DE4A; Sun, 12 Jan 2020 04:07:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C473Zj078053; Sun, 12 Jan 2020 04:07:03 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C473ea078052; Sun, 12 Jan 2020 04:07:03 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120407.00C473ea078052@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:07:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356649 - head/sys/dev/extres/regulator X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/dev/extres/regulator X-SVN-Commit-Revision: 356649 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:07:05 -0000 Author: kevans Date: Sun Jan 12 04:07:03 2020 New Revision: 356649 URL: https://svnweb.freebsd.org/changeset/base/356649 Log: regulator: small enhancements to regulator_shutdown Highlights: - Exit early if we're not disabling unused regulators; there's no need to take the regulator topology lock and re-evaluate this every iteration, as it's not going to change. - Don't emit a notice that we're shutting down a regulator if it's not enabled, to reduce noise. - Mention the outcome of the shutdown, to aide debugging and easily let developer/user collect list of regulators we actually shutdown to determine problematic one. Reviewed by: manu MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D22213 Modified: head/sys/dev/extres/regulator/regulator.c Modified: head/sys/dev/extres/regulator/regulator.c ============================================================================== --- head/sys/dev/extres/regulator/regulator.c Sun Jan 12 04:05:18 2020 (r356648) +++ head/sys/dev/extres/regulator/regulator.c Sun Jan 12 04:07:03 2020 (r356649) @@ -191,16 +191,36 @@ regulator_shutdown(void *dummy) int status, ret; int disable = 1; - REG_TOPO_SLOCK(); TUNABLE_INT_FETCH("hw.regulator.disable_unused", &disable); + if (!disable) + return; + REG_TOPO_SLOCK(); + + if (bootverbose) + printf("regulator: shutting down unused regulators\n"); TAILQ_FOREACH(entry, ®node_list, reglist_link) { - if (!entry->std_param.always_on && disable) { - if (bootverbose) - printf("regulator: shutting down %s\n", - entry->name); + if (!entry->std_param.always_on) { ret = regnode_status(entry, &status); - if (ret == 0 && status == REGULATOR_STATUS_ENABLED) - regnode_stop(entry, 0); + if (ret == 0 && status == REGULATOR_STATUS_ENABLED) { + if (bootverbose) + printf("regulator: shutting down %s... ", + entry->name); + ret = regnode_stop(entry, 0); + if (bootverbose) { + /* + * Call out busy in particular, here, + * because it's not unexpected to fail + * shutdown if the regulator is simply + * in-use. + */ + if (ret == EBUSY) + printf("busy\n"); + else if (ret != 0) + printf("error (%d)\n", ret); + else + printf("ok\n"); + } + } } } REG_TOPO_UNLOCK(); From owner-svn-src-all@freebsd.org Sun Jan 12 04:18:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 79A48222BB6; Sun, 12 Jan 2020 04:18:37 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wNkj2Pnzz3QwH; Sun, 12 Jan 2020 04:18:37 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4595CE01E; Sun, 12 Jan 2020 04:18:37 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C4Ibim084111; Sun, 12 Jan 2020 04:18:37 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C4Iapw084109; Sun, 12 Jan 2020 04:18:36 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001120418.00C4Iapw084109@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sun, 12 Jan 2020 04:18:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356650 - in head: . tools/build X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: . tools/build X-SVN-Commit-Revision: 356650 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:18:37 -0000 Author: kevans Date: Sun Jan 12 04:18:36 2020 New Revision: 356650 URL: https://svnweb.freebsd.org/changeset/base/356650 Log: Makefile.inc1: push /usr/libexec into the BPATH/TMPPATH ${WORLDTMP}/legacy/usr/libexec will only have libexec/ bits that we've pushed as bootstrap tools, so this is generally safe to include prior to PATH. The following are the ramifications of this change: - BPATH addition gets us at least bootstrap flua in WMAKEENV path for buildenv, for those earlier systems where it's bootstrapped still - Reworked the sysent target to just set PATH and let it get worked out in src.lua.mk or individual sysent makefiles -- this gives us back the ability to overwrite LUA_CMD and use a different/external lua for these targets. sysent can also now work cleanly in buildenv. - tools/build/Makefile will now symlink the host flua into build's host tools so that the above can work without needing to add the host's /usr/libexec explicitly into TMPPATH. Reviewed by: arichardson, brooks, imp (all slightly earlier version) Differential Revision: https://reviews.freebsd.org/D22464 Modified: head/Makefile.inc1 head/tools/build/Makefile Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Jan 12 04:07:03 2020 (r356649) +++ head/Makefile.inc1 Sun Jan 12 04:18:36 2020 (r356650) @@ -590,7 +590,7 @@ BUILD_ARCH!= uname -p .endif .endif WORLDTMP?= ${OBJTOP}/tmp -BPATH= ${CCACHE_WRAPPER_PATH_PFX}${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/bin +BPATH= ${CCACHE_WRAPPER_PATH_PFX}${WORLDTMP}/legacy/usr/sbin:${WORLDTMP}/legacy/usr/bin:${WORLDTMP}/legacy/bin:${WORLDTMP}/legacy/usr/libexec XPATH= ${WORLDTMP}/usr/sbin:${WORLDTMP}/usr/bin # When building we want to find the cross tools before the host tools in ${BPATH}. @@ -1500,11 +1500,11 @@ makeman: .PHONY ${_+_}cd ${.CURDIR}/tools/build/options; sh makeman > \ ${.CURDIR}/share/man/man5/src.conf.5 -.if make(sysent) -.include -.endif - -_sysent_PATH= ${WORLDTMP}/legacy/usr/libexec:/usr/libexec:${PATH} +# We can't assume here that ${TMPPATH} will include ${PATH} or /usr/libexec +# because we may be building with a STRICTTMPPATH, so we explicitly include +# /usr/libexec here for flua. ${TMPPATH} still usefully includes anything else +# we may need to function. +_sysent_PATH= ${TMPPATH}:/usr/libexec _sysent_dirs= sys/kern _sysent_dirs+= sys/compat/freebsd32 _sysent_dirs+= sys/compat/cloudabi32 \ @@ -1517,8 +1517,7 @@ _sysent_dirs+= sys/amd64/linux \ sysent: .PHONY .for _dir in ${_sysent_dirs} @echo "${MAKE} -C ${.CURDIR}/${_dir} sysent" - ${_+_}@env PATH=${_sysent_PATH} LUA=${LUA_CMD} \ - ${MAKE} -C ${.CURDIR}/${_dir} sysent + ${_+_}@env PATH=${_sysent_PATH} ${MAKE} -C ${.CURDIR}/${_dir} sysent .endfor # Modified: head/tools/build/Makefile ============================================================================== --- head/tools/build/Makefile Sun Jan 12 04:07:03 2020 (r356649) +++ head/tools/build/Makefile Sun Jan 12 04:18:36 2020 (r356650) @@ -116,6 +116,9 @@ host-symlinks: ln -sfnv "$${source_path}" "$${target_path}"; \ fi .endfor +.if exists(/usr/libexec/flua) + ln -sf /usr/libexec/flua ${DESTDIR}/usr/libexec/flua +.endif # Create all the directories that are needed during the legacy, bootstrap-tools # and cross-tools stages. We do this here using mkdir since mtree may not exist From owner-svn-src-all@freebsd.org Sun Jan 12 04:53:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EC1F4223857; Sun, 12 Jan 2020 04:53:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wPVP5wzBz3xg3; Sun, 12 Jan 2020 04:53:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C6B29E75D; Sun, 12 Jan 2020 04:53:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C4r1GE008224; Sun, 12 Jan 2020 04:53:01 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C4r1nX008222; Sun, 12 Jan 2020 04:53:01 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120453.00C4r1nX008222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 04:53:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356651 - in head/sys/cddl: compat/opensolaris/kern contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys/cddl: compat/opensolaris/kern contrib/opensolaris/uts/common/fs/zfs X-SVN-Commit-Revision: 356651 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:53:02 -0000 Author: mjg Date: Sun Jan 12 04:53:01 2020 New Revision: 356651 URL: https://svnweb.freebsd.org/changeset/base/356651 Log: zfs: add missing CLTFLAG_MPSAFE annotations Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c Sun Jan 12 04:18:36 2020 (r356650) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_kstat.c Sun Jan 12 04:53:01 2020 (r356651) @@ -117,8 +117,8 @@ kstat_install(kstat_t *ksp) ("data_type=%d", ksent->data_type)); SYSCTL_ADD_PROC(&ksp->ks_sysctl_ctx, SYSCTL_CHILDREN(ksp->ks_sysctl_root), OID_AUTO, ksent->name, - CTLTYPE_U64 | CTLFLAG_RD, ksent, sizeof(*ksent), - kstat_sysctl, "QU", ksent->desc); + CTLTYPE_U64 | CTLFLAG_MPSAFE | CTLFLAG_RD, ksent, + sizeof(*ksent), kstat_sysctl, "QU", ksent->desc); } } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sun Jan 12 04:18:36 2020 (r356650) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Sun Jan 12 04:53:01 2020 (r356651) @@ -435,11 +435,14 @@ TUNABLE_INT("vfs.zfs.arc_shrink_shift", &zfs_arc_shrin TUNABLE_INT("vfs.zfs.arc_grow_retry", &zfs_arc_grow_retry); TUNABLE_INT("vfs.zfs.arc_no_grow_shift", &zfs_arc_no_grow_shift); SYSCTL_DECL(_vfs_zfs); -SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_max, CTLTYPE_U64 | CTLFLAG_RWTUN, +SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_max, + CTLTYPE_U64 | CTLFLAG_MPSAFE | CTLFLAG_RWTUN, 0, sizeof(uint64_t), sysctl_vfs_zfs_arc_max, "QU", "Maximum ARC size"); -SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_min, CTLTYPE_U64 | CTLFLAG_RWTUN, +SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_min, + CTLTYPE_U64 | CTLFLAG_MPSAFE | CTLFLAG_RWTUN, 0, sizeof(uint64_t), sysctl_vfs_zfs_arc_min, "QU", "Minimum ARC size"); -SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_no_grow_shift, CTLTYPE_U32 | CTLFLAG_RWTUN, +SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_no_grow_shift, + CTLTYPE_U32 | CTLFLAG_MPSAFE | CTLFLAG_RWTUN, 0, sizeof(uint32_t), sysctl_vfs_zfs_arc_no_grow_shift, "U", "log2(fraction of ARC which must be free to allow growing)"); SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, arc_average_blocksize, CTLFLAG_RDTUN, From owner-svn-src-all@freebsd.org Sun Jan 12 04:53:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B999F2238B6; Sun, 12 Jan 2020 04:53:22 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wPVp4WF9z3xnP; Sun, 12 Jan 2020 04:53:22 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 96243E75E; Sun, 12 Jan 2020 04:53:22 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C4rMKm008292; Sun, 12 Jan 2020 04:53:22 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C4rMti008291; Sun, 12 Jan 2020 04:53:22 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120453.00C4rMti008291@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 04:53:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356652 - head/sys/cddl/dev/dtrace X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/cddl/dev/dtrace X-SVN-Commit-Revision: 356652 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 04:53:22 -0000 Author: mjg Date: Sun Jan 12 04:53:22 2020 New Revision: 356652 URL: https://svnweb.freebsd.org/changeset/base/356652 Log: dtrace: add missing CLTFLAG_MPSAFE annotations Modified: head/sys/cddl/dev/dtrace/dtrace_sysctl.c head/sys/cddl/dev/dtrace/dtrace_test.c Modified: head/sys/cddl/dev/dtrace/dtrace_sysctl.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_sysctl.c Sun Jan 12 04:53:01 2020 (r356651) +++ head/sys/cddl/dev/dtrace/dtrace_sysctl.c Sun Jan 12 04:53:22 2020 (r356652) @@ -75,8 +75,9 @@ sysctl_dtrace_providers(SYSCTL_HANDLER_ARGS) SYSCTL_NODE(_debug, OID_AUTO, dtrace, CTLFLAG_RD, 0, "DTrace debug parameters"); -SYSCTL_PROC(_debug_dtrace, OID_AUTO, providers, CTLTYPE_STRING | CTLFLAG_RD, - 0, 0, sysctl_dtrace_providers, "A", "available DTrace providers"); +SYSCTL_PROC(_debug_dtrace, OID_AUTO, providers, + CTLTYPE_STRING | CTLFLAG_MPSAFE | CTLFLAG_RD, 0, 0, sysctl_dtrace_providers, + "A", "available DTrace providers"); SYSCTL_NODE(_kern, OID_AUTO, dtrace, CTLFLAG_RD, 0, "DTrace parameters"); Modified: head/sys/cddl/dev/dtrace/dtrace_test.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_test.c Sun Jan 12 04:53:01 2020 (r356651) +++ head/sys/cddl/dev/dtrace/dtrace_test.c Sun Jan 12 04:53:22 2020 (r356652) @@ -77,8 +77,9 @@ dtrace_test_sdttest(SYSCTL_HANDLER_ARGS) static SYSCTL_NODE(_debug, OID_AUTO, dtracetest, CTLFLAG_RD, 0, ""); -SYSCTL_PROC(_debug_dtracetest, OID_AUTO, sdttest, CTLTYPE_INT | CTLFLAG_RW, - NULL, 0, dtrace_test_sdttest, "I", "Trigger the SDT test probe"); +SYSCTL_PROC(_debug_dtracetest, OID_AUTO, sdttest, + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, dtrace_test_sdttest, + "I", "Trigger the SDT test probe"); static int dtrace_test_modevent(module_t mod, int type, void *data) From owner-svn-src-all@freebsd.org Sun Jan 12 05:08:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2FA65223C4F; Sun, 12 Jan 2020 05:08:59 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wPrq0Wznz3yDs; Sun, 12 Jan 2020 05:08:59 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D662E939; Sun, 12 Jan 2020 05:08:59 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C58wOP014632; Sun, 12 Jan 2020 05:08:58 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C58v07014627; Sun, 12 Jan 2020 05:08:57 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120508.00C58v07014627@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 05:08:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356653 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356653 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 05:08:59 -0000 Author: mjg Date: Sun Jan 12 05:08:57 2020 New Revision: 356653 URL: https://svnweb.freebsd.org/changeset/base/356653 Log: vm: add missing CLTFLAG_MPSAFE annotations This covers all vm/* files. Modified: head/sys/vm/memguard.c head/sys/vm/uma_core.c head/sys/vm/vm_glue.c head/sys/vm/vm_kern.c head/sys/vm/vm_reserv.c head/sys/vm/vnode_pager.c Modified: head/sys/vm/memguard.c ============================================================================== --- head/sys/vm/memguard.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/memguard.c Sun Jan 12 05:08:57 2020 (r356653) @@ -237,7 +237,7 @@ memguard_sysinit(void) CTLFLAG_RD, &memguard_mapsize, "MemGuard KVA size"); SYSCTL_ADD_PROC(NULL, parent, OID_AUTO, "mapused", - CTLFLAG_RD | CTLTYPE_ULONG, NULL, 0, memguard_sysctl_mapused, "LU", + CTLFLAG_RD | CTLFLAG_MPSAFE | CTLTYPE_ULONG, NULL, 0, memguard_sysctl_mapused, "LU", "MemGuard KVA used"); } SYSINIT(memguard, SI_SUB_KLD, SI_ORDER_ANY, memguard_sysinit, NULL); Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/uma_core.c Sun Jan 12 05:08:57 2020 (r356653) @@ -330,10 +330,10 @@ SYSINIT(uma_startup3, SI_SUB_VM_CONF, SI_ORDER_SECOND, SYSCTL_NODE(_vm, OID_AUTO, uma, CTLFLAG_RW, 0, "Universal Memory Allocator"); -SYSCTL_PROC(_vm, OID_AUTO, zone_count, CTLFLAG_RD|CTLTYPE_INT, +SYSCTL_PROC(_vm, OID_AUTO, zone_count, CTLFLAG_RD|CTLFLAG_MPSAFE|CTLTYPE_INT, 0, 0, sysctl_vm_zone_count, "I", "Number of UMA zones"); -SYSCTL_PROC(_vm, OID_AUTO, zone_stats, CTLFLAG_RD|CTLTYPE_STRUCT, +SYSCTL_PROC(_vm, OID_AUTO, zone_stats, CTLFLAG_RD|CTLFLAG_MPSAFE|CTLTYPE_STRUCT, 0, 0, sysctl_vm_zone_stats, "s,struct uma_type_header", "Zone Stats"); static int zone_warnings = 1; Modified: head/sys/vm/vm_glue.c ============================================================================== --- head/sys/vm/vm_glue.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/vm_glue.c Sun Jan 12 05:08:57 2020 (r356653) @@ -281,9 +281,9 @@ sysctl_kstack_cache_size(SYSCTL_HANDLER_ARGS) uma_zone_set_maxcache(kstack_cache, kstack_cache_size); return (error); } -SYSCTL_PROC(_vm, OID_AUTO, kstack_cache_size, CTLTYPE_INT|CTLFLAG_RW, - &kstack_cache_size, 0, sysctl_kstack_cache_size, "IU", - "Maximum number of cached kernel stacks"); +SYSCTL_PROC(_vm, OID_AUTO, kstack_cache_size, + CTLTYPE_INT|CTLFLAG_MPSAFE|CTLFLAG_RW, &kstack_cache_size, 0, + sysctl_kstack_cache_size, "IU", "Maximum number of cached kernel stacks"); /* * Create the kernel stack (including pcb for i386) for a new thread. Modified: head/sys/vm/vm_kern.c ============================================================================== --- head/sys/vm/vm_kern.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/vm_kern.c Sun Jan 12 05:08:57 2020 (r356653) @@ -880,5 +880,5 @@ debug_vm_lowmem(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_debug, OID_AUTO, vm_lowmem, CTLTYPE_INT | CTLFLAG_RW, 0, 0, +SYSCTL_PROC(_debug, OID_AUTO, vm_lowmem, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, 0, debug_vm_lowmem, "I", "set to trigger vm_lowmem event with given flags"); Modified: head/sys/vm/vm_reserv.c ============================================================================== --- head/sys/vm/vm_reserv.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/vm_reserv.c Sun Jan 12 05:08:57 2020 (r356653) @@ -273,8 +273,8 @@ SYSCTL_COUNTER_U64(_vm_reserv, OID_AUTO, freed, CTLFLA static int sysctl_vm_reserv_fullpop(SYSCTL_HANDLER_ARGS); -SYSCTL_PROC(_vm_reserv, OID_AUTO, fullpop, CTLTYPE_INT | CTLFLAG_RD, NULL, 0, - sysctl_vm_reserv_fullpop, "I", "Current number of full reservations"); +SYSCTL_PROC(_vm_reserv, OID_AUTO, fullpop, CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RD, + NULL, 0, sysctl_vm_reserv_fullpop, "I", "Current number of full reservations"); static int sysctl_vm_reserv_partpopq(SYSCTL_HANDLER_ARGS); Modified: head/sys/vm/vnode_pager.c ============================================================================== --- head/sys/vm/vnode_pager.c Sun Jan 12 04:53:22 2020 (r356652) +++ head/sys/vm/vnode_pager.c Sun Jan 12 05:08:57 2020 (r356653) @@ -119,9 +119,9 @@ struct pagerops vnodepagerops = { static struct domainset *vnode_domainset = NULL; -SYSCTL_PROC(_debug, OID_AUTO, vnode_domainset, CTLTYPE_STRING | CTLFLAG_RW, - &vnode_domainset, 0, sysctl_handle_domainset, "A", - "Default vnode NUMA policy"); +SYSCTL_PROC(_debug, OID_AUTO, vnode_domainset, + CTLTYPE_STRING | CTLFLAG_MPSAFE | CTLFLAG_RW, &vnode_domainset, 0, + sysctl_handle_domainset, "A", "Default vnode NUMA policy"); static int nvnpbufs; SYSCTL_INT(_vm, OID_AUTO, vnode_pbufs, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, From owner-svn-src-all@freebsd.org Sun Jan 12 05:25:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 926F22240BA; Sun, 12 Jan 2020 05:25:06 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wQCQ3NqCz3ywd; Sun, 12 Jan 2020 05:25:06 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6E465ECF2; Sun, 12 Jan 2020 05:25:06 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C5P6Wd026455; Sun, 12 Jan 2020 05:25:06 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C5P6rh026454; Sun, 12 Jan 2020 05:25:06 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120525.00C5P6rh026454@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 05:25:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356654 - head/sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/sys X-SVN-Commit-Revision: 356654 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 05:25:06 -0000 Author: mjg Date: Sun Jan 12 05:25:06 2020 New Revision: 356654 URL: https://svnweb.freebsd.org/changeset/base/356654 Log: sysctl: add missing CLTFLAG_MPSAFE annotation to CONST_STRING Modified: head/sys/sys/sysctl.h Modified: head/sys/sys/sysctl.h ============================================================================== --- head/sys/sys/sysctl.h Sun Jan 12 05:08:57 2020 (r356653) +++ head/sys/sys/sysctl.h Sun Jan 12 05:25:06 2020 (r356654) @@ -357,7 +357,7 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); /* Oid for a constant '\0' terminated string. */ #define SYSCTL_CONST_STRING(parent, nbr, name, access, arg, descr) \ - SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \ + SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING | CTLFLAG_MPSAFE | (access),\ __DECONST(char *, arg), 0, sysctl_handle_string, "A", descr); \ CTASSERT(!(access & CTLFLAG_WR)); \ CTASSERT(((access) & CTLTYPE) == 0 || \ @@ -369,9 +369,9 @@ TAILQ_HEAD(sysctl_ctx_list, sysctl_ctx_entry); CTASSERT(!(access & CTLFLAG_WR)); \ CTASSERT(((access) & CTLTYPE) == 0 || \ ((access) & SYSCTL_CT_ASSERT_MASK) == CTLTYPE_STRING); \ - sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_STRING|(access), \ - __arg, 0, sysctl_handle_string, "A", __DESCR(descr), \ - NULL); \ + sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_STRING | \ + CTLFLAG_MPSAFE | (access), __arg, 0, sysctl_handle_string, "A",\ + __DESCR(descr), NULL); \ }) /* Oid for a bool. If ptr is NULL, val is returned. */ From owner-svn-src-all@freebsd.org Sun Jan 12 06:08:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D30D6225367; Sun, 12 Jan 2020 06:08:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wR8x633Xz41vP; Sun, 12 Jan 2020 06:08:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C6162F49B; Sun, 12 Jan 2020 06:08:01 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C681c2050719; Sun, 12 Jan 2020 06:08:01 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C67sW0050677; Sun, 12 Jan 2020 06:07:54 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120607.00C67sW0050677@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 06:07:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356655 - in head/sys: arm/samsung/exynos arm/versatile cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs cddl/contrib/opensolaris/uts/common/os ddb dev/acpica dev/... X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: arm/samsung/exynos arm/versatile cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs cddl/contrib/opensolaris/uts/common/os ddb dev/acpica dev/drm2 dev/iscsi dev/mrsas ... X-SVN-Commit-Revision: 356655 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 06:08:01 -0000 Author: mjg Date: Sun Jan 12 06:07:54 2020 New Revision: 356655 URL: https://svnweb.freebsd.org/changeset/base/356655 Log: Add KERNEL_PANICKED macro for use in place of direct panicstr tests Modified: head/sys/arm/samsung/exynos/chrome_kb.c head/sys/arm/versatile/pl050.c head/sys/cddl/compat/opensolaris/sys/mutex.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c head/sys/cddl/contrib/opensolaris/uts/common/os/fm.c head/sys/ddb/db_textdump.c head/sys/dev/acpica/acpi.c head/sys/dev/drm2/drm_fb_helper.c head/sys/dev/iscsi/iscsi.c head/sys/dev/mrsas/mrsas.c head/sys/dev/syscons/syscons.c head/sys/dev/vt/vt_core.c head/sys/dev/xen/console/xen_console.c head/sys/gdb/netgdb.c head/sys/geom/journal/g_journal.c head/sys/geom/mirror/g_mirror.c head/sys/kern/kern_ktr.c head/sys/kern/kern_lock.c head/sys/kern/kern_mutex.c head/sys/kern/kern_switch.c head/sys/kern/kern_synch.c head/sys/kern/sched_4bsd.c head/sys/kern/sched_ule.c head/sys/kern/subr_csan.c head/sys/kern/subr_prf.c head/sys/kern/subr_smp.c head/sys/kern/subr_witness.c head/sys/kern/tty_info.c head/sys/kern/vfs_bio.c head/sys/kern/vfs_subr.c head/sys/netinet/netdump/netdump_client.c head/sys/sparc64/sparc64/mp_machdep.c head/sys/sys/systm.h head/sys/x86/x86/local_apic.c head/sys/x86/x86/mp_x86.c Modified: head/sys/arm/samsung/exynos/chrome_kb.c ============================================================================== --- head/sys/arm/samsung/exynos/chrome_kb.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/arm/samsung/exynos/chrome_kb.c Sun Jan 12 06:07:54 2020 (r356655) @@ -81,7 +81,7 @@ __FBSDID("$FreeBSD$"); */ #define CKB_CTX_LOCK_ASSERT() \ do { \ - if (!kdb_active && panicstr == NULL) \ + if (!kdb_active && !KERNEL_PANICKED()) \ mtx_assert(&Giant, MA_OWNED); \ } while (0) #else Modified: head/sys/arm/versatile/pl050.c ============================================================================== --- head/sys/arm/versatile/pl050.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/arm/versatile/pl050.c Sun Jan 12 06:07:54 2020 (r356655) @@ -77,7 +77,7 @@ __FBSDID("$FreeBSD$"); */ #define KMI_CTX_LOCK_ASSERT() \ do { \ - if (!kdb_active && panicstr == NULL) \ + if (!kdb_active && !KERNEL_PANICKED()) \ mtx_assert(&Giant, MA_OWNED); \ } while (0) #else Modified: head/sys/cddl/compat/opensolaris/sys/mutex.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/mutex.h Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/cddl/compat/opensolaris/sys/mutex.h Sun Jan 12 06:07:54 2020 (r356655) @@ -42,7 +42,7 @@ typedef enum { } kmutex_type_t; #define MUTEX_HELD(x) (mutex_owned(x)) -#define MUTEX_NOT_HELD(x) (!mutex_owned(x) || panicstr) +#define MUTEX_NOT_HELD(x) (!mutex_owned(x) || KERNEL_PANICKED()) typedef struct sx kmutex_t; Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Jan 12 06:07:54 2020 (r356655) @@ -7296,7 +7296,7 @@ zfs_shutdown(void *arg __unused, int howto __unused) /* * ZFS fini routines can not properly work in a panic-ed system. */ - if (panicstr == NULL) + if (!KERNEL_PANICKED()) (void)zfs__fini(); } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c Sun Jan 12 06:07:54 2020 (r356655) @@ -293,7 +293,7 @@ zfs_sync(vfs_t *vfsp, int waitfor) * Data integrity is job one. We don't want a compromised kernel * writing to the storage pool, so we never sync during panic. */ - if (panicstr) + if (KERNEL_PANICKED()) return (0); /* Modified: head/sys/cddl/contrib/opensolaris/uts/common/os/fm.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/os/fm.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/cddl/contrib/opensolaris/uts/common/os/fm.c Sun Jan 12 06:07:54 2020 (r356655) @@ -119,7 +119,7 @@ fm_drain(void *private, void *data, errorq_elem_t *eep { nvlist_t *nvl = errorq_elem_nvl(ereport_errorq, eep); - if (!panicstr) + if (!KERNEL_PANICKED()) (void) fm_ereport_post(nvl, EVCH_TRYHARD); else fm_nvprint(nvl); @@ -420,7 +420,7 @@ fm_banner(void) if (!fm_panicstr) return; /* panic was not initiated by fm_panic(); do nothing */ - if (panicstr) { + if (KERNEL_PANICKED()) { tod = panic_hrestime; now = panic_hrtime; } else { @@ -472,7 +472,7 @@ fm_ereport_dump(void) char *buf; size_t len; - if (panicstr) { + if (KERNEL_PANICKED()) { tod = panic_hrestime; now = panic_hrtime; } else { @@ -486,7 +486,7 @@ fm_ereport_dump(void) * In the panic case, sysevent_evc_walk_init() will return NULL. */ if ((chq = sysevent_evc_walk_init(ereport_chan, NULL)) == NULL && - !panicstr) + !KERNEL_PANICKED()) return; /* event channel isn't initialized yet */ while ((sep = sysevent_evc_walk_step(chq)) != NULL) { Modified: head/sys/ddb/db_textdump.c ============================================================================== --- head/sys/ddb/db_textdump.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/ddb/db_textdump.c Sun Jan 12 06:07:54 2020 (r356655) @@ -479,7 +479,7 @@ textdump_dumpsys(struct dumperinfo *di) #endif if (textdump_do_msgbuf) textdump_dump_msgbuf(di); - if (textdump_do_panic && panicstr != NULL) + if (textdump_do_panic && KERNEL_PANICKED()) textdump_dump_panic(di); if (textdump_do_version) textdump_dump_version(di); Modified: head/sys/dev/acpica/acpi.c ============================================================================== --- head/sys/dev/acpica/acpi.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/acpica/acpi.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2166,7 +2166,7 @@ acpi_shutdown_final(void *arg, int howto) } else if (status != AE_NOT_EXIST) device_printf(sc->acpi_dev, "reset failed - %s\n", AcpiFormatException(status)); - } else if (sc->acpi_do_disable && panicstr == NULL) { + } else if (sc->acpi_do_disable && !KERNEL_PANICKED()) { /* * Only disable ACPI if the user requested. On some systems, writing * the disable value to SMI_CMD hangs the system. Modified: head/sys/dev/drm2/drm_fb_helper.c ============================================================================== --- head/sys/dev/drm2/drm_fb_helper.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/drm2/drm_fb_helper.c Sun Jan 12 06:07:54 2020 (r356655) @@ -74,7 +74,7 @@ vt_kms_postswitch(void *arg) sc = (struct vt_kms_softc *)arg; - if (!kdb_active && panicstr == NULL) + if (!kdb_active && !KERNEL_PANICKED()) taskqueue_enqueue(taskqueue_thread, &sc->fb_mode_task); else drm_fb_helper_restore_fbdev_mode(sc->fb_helper); Modified: head/sys/dev/iscsi/iscsi.c ============================================================================== --- head/sys/dev/iscsi/iscsi.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/iscsi/iscsi.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2501,7 +2501,7 @@ static void iscsi_shutdown_post(struct iscsi_softc *sc) { - if (panicstr == NULL) { + if (!KERNEL_PANICKED()) { ISCSI_DEBUG("removing all sessions due to shutdown"); iscsi_terminate_sessions(sc); } Modified: head/sys/dev/mrsas/mrsas.c ============================================================================== --- head/sys/dev/mrsas/mrsas.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/mrsas/mrsas.c Sun Jan 12 06:07:54 2020 (r356655) @@ -1190,7 +1190,7 @@ mrsas_shutdown(device_t dev) sc = device_get_softc(dev); sc->remove_in_progress = 1; - if (panicstr == NULL) { + if (!KERNEL_PANICKED()) { if (sc->ocr_thread_active) wakeup(&sc->ocr_chan); i = 0; Modified: head/sys/dev/syscons/syscons.c ============================================================================== --- head/sys/dev/syscons/syscons.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/syscons/syscons.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2163,7 +2163,7 @@ sccnupdate(scr_stat *scp) if (suspend_in_progress || scp->sc->font_loading_in_progress) return; - if (kdb_active || panicstr || shutdown_in_progress) { + if (kdb_active || KERNEL_PANICKED() || shutdown_in_progress) { sc_touch_scrn_saver(); } else if (scp != scp->sc->cur_scp) { return; @@ -2229,7 +2229,7 @@ scrn_timer(void *arg) } /* should we stop the screen saver? */ - if (kdb_active || panicstr || shutdown_in_progress) + if (kdb_active || KERNEL_PANICKED() || shutdown_in_progress) sc_touch_scrn_saver(); if (run_scrn_saver) { if (time_uptime > sc->scrn_time_stamp + scrn_blank_time) Modified: head/sys/dev/vt/vt_core.c ============================================================================== --- head/sys/dev/vt/vt_core.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/vt/vt_core.c Sun Jan 12 06:07:54 2020 (r356655) @@ -1301,7 +1301,7 @@ vt_flush(struct vt_device *vd) /* Check if the cursor should be displayed or not. */ if ((vd->vd_flags & VDF_MOUSECURSOR) && /* Mouse support enabled. */ !(vw->vw_flags & VWF_MOUSE_HIDE) && /* Cursor displayed. */ - !kdb_active && panicstr == NULL) { /* DDB inactive. */ + !kdb_active && !KERNEL_PANICKED()) { /* DDB inactive. */ vd->vd_mshown = 1; } else { vd->vd_mshown = 0; @@ -1398,7 +1398,7 @@ vtterm_done(struct terminal *tm) struct vt_window *vw = tm->tm_softc; struct vt_device *vd = vw->vw_device; - if (kdb_active || panicstr != NULL) { + if (kdb_active || KERNEL_PANICKED()) { /* Switch to the debugger. */ if (vd->vd_curwindow != vw) { vd->vd_curwindow = vw; Modified: head/sys/dev/xen/console/xen_console.c ============================================================================== --- head/sys/dev/xen/console/xen_console.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/dev/xen/console/xen_console.c Sun Jan 12 06:07:54 2020 (r356655) @@ -199,7 +199,7 @@ xc_printf(const char *fmt, ...) static inline void xencons_lock(struct xencons_priv *cons) { - if (panicstr == NULL) + if (!KERNEL_PANICKED()) mtx_lock_spin(&cons->mtx); } @@ -207,7 +207,7 @@ static inline void xencons_lock(struct xencons_priv *c static inline void xencons_unlock(struct xencons_priv *cons) { - if (panicstr == NULL) + if (!KERNEL_PANICKED()) mtx_unlock_spin(&cons->mtx); } Modified: head/sys/gdb/netgdb.c ============================================================================== --- head/sys/gdb/netgdb.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/gdb/netgdb.c Sun Jan 12 06:07:54 2020 (r356655) @@ -340,7 +340,7 @@ DB_FUNC(netgdb, db_netgdb_cmd, db_cmd_table, CS_OWN, N struct debugnet_pcb *pcb; int error; - if (panicstr == NULL) { + if (!KERNEL_PANICKED()) { /* TODO: This limitation should be removed in future work. */ printf("%s: netgdb is currently limited to use only after a " "panic. Sorry.\n", __func__); Modified: head/sys/geom/journal/g_journal.c ============================================================================== --- head/sys/geom/journal/g_journal.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/geom/journal/g_journal.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2653,7 +2653,7 @@ g_journal_shutdown(void *arg, int howto __unused) struct g_class *mp; struct g_geom *gp, *gp2; - if (panicstr != NULL) + if (KERNEL_PANICKED()) return; mp = arg; g_topology_lock(); Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/geom/mirror/g_mirror.c Sun Jan 12 06:07:54 2020 (r356655) @@ -3481,7 +3481,7 @@ g_mirror_shutdown_post_sync(void *arg, int howto) struct g_mirror_softc *sc; int error; - if (panicstr != NULL) + if (KERNEL_PANICKED()) return; mp = arg; Modified: head/sys/kern/kern_ktr.c ============================================================================== --- head/sys/kern/kern_ktr.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/kern_ktr.c Sun Jan 12 06:07:54 2020 (r356655) @@ -324,7 +324,7 @@ ktr_tracepoint(uint64_t mask, const char *file, int li #endif int cpu; - if (panicstr || kdb_active) + if (KERNEL_PANICKED() || kdb_active) return; if ((ktr_mask & mask) == 0 || ktr_buf == NULL) return; Modified: head/sys/kern/kern_lock.c ============================================================================== --- head/sys/kern/kern_lock.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/kern_lock.c Sun Jan 12 06:07:54 2020 (r356655) @@ -558,7 +558,7 @@ lockmgr_slock_hard(struct lock *lk, u_int flags, struc int contested = 0; #endif - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) goto out; tid = (uintptr_t)curthread; @@ -700,7 +700,7 @@ lockmgr_xlock_hard(struct lock *lk, u_int flags, struc int contested = 0; #endif - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) goto out; tid = (uintptr_t)curthread; @@ -882,7 +882,7 @@ lockmgr_upgrade(struct lock *lk, u_int flags, struct l int wakeup_swapper = 0; int op; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) goto out; tid = (uintptr_t)curthread; @@ -941,7 +941,7 @@ lockmgr_lock_fast_path(struct lock *lk, u_int flags, s u_int op; bool locked; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) return (0); op = flags & LK_TYPE_MASK; @@ -1003,7 +1003,7 @@ lockmgr_sunlock_hard(struct lock *lk, uintptr_t x, u_i { int wakeup_swapper = 0; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) goto out; wakeup_swapper = wakeupshlk(lk, file, line); @@ -1022,7 +1022,7 @@ lockmgr_xunlock_hard(struct lock *lk, uintptr_t x, u_i u_int realexslp; int queue; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) goto out; tid = (uintptr_t)curthread; @@ -1126,7 +1126,7 @@ lockmgr_unlock_fast_path(struct lock *lk, u_int flags, const char *file; int line; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) return (0); file = __FILE__; @@ -1254,7 +1254,7 @@ __lockmgr_args(struct lock *lk, u_int flags, struct lo int contested = 0; #endif - if (panicstr != NULL) + if (KERNEL_PANICKED()) return (0); error = 0; @@ -1662,7 +1662,7 @@ _lockmgr_assert(const struct lock *lk, int what, const { int slocked = 0; - if (panicstr != NULL) + if (KERNEL_PANICKED()) return; switch (what) { case KA_SLOCKED: Modified: head/sys/kern/kern_mutex.c ============================================================================== --- head/sys/kern/kern_mutex.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/kern_mutex.c Sun Jan 12 06:07:54 2020 (r356655) @@ -1071,7 +1071,7 @@ __mtx_assert(const volatile uintptr_t *c, int what, co { const struct mtx *m; - if (panicstr != NULL || dumping || SCHEDULER_STOPPED()) + if (KERNEL_PANICKED() || dumping || SCHEDULER_STOPPED()) return; m = mtxlock2mtx(c); @@ -1229,7 +1229,7 @@ _mtx_lock_indefinite_check(struct mtx *m, struct lock_ struct thread *td; ldap->spin_cnt++; - if (ldap->spin_cnt < 60000000 || kdb_active || panicstr != NULL) + if (ldap->spin_cnt < 60000000 || kdb_active || KERNEL_PANICKED()) cpu_lock_delay(); else { td = mtx_owner(m); Modified: head/sys/kern/kern_switch.c ============================================================================== --- head/sys/kern/kern_switch.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/kern_switch.c Sun Jan 12 06:07:54 2020 (r356655) @@ -181,7 +181,7 @@ choosethread(void) td = sched_choose(); - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) return (choosethread_panic(td)); TD_SET_RUNNING(td); Modified: head/sys/kern/kern_synch.c ============================================================================== --- head/sys/kern/kern_synch.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/kern_synch.c Sun Jan 12 06:07:54 2020 (r356655) @@ -480,8 +480,8 @@ mi_switch(int flags) if (!TD_ON_LOCK(td) && !TD_IS_RUNNING(td)) mtx_assert(&Giant, MA_NOTOWNED); #endif - KASSERT(td->td_critnest == 1 || panicstr, - ("mi_switch: switch in a critical section")); + KASSERT(td->td_critnest == 1 || KERNEL_PANICKED(), + ("mi_switch: switch in a critical section")); KASSERT((flags & (SW_INVOL | SW_VOL)) != 0, ("mi_switch: switch must be voluntary or involuntary")); Modified: head/sys/kern/sched_4bsd.c ============================================================================== --- head/sys/kern/sched_4bsd.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/sched_4bsd.c Sun Jan 12 06:07:54 2020 (r356655) @@ -348,7 +348,7 @@ maybe_preempt(struct thread *td) ("maybe_preempt: trying to run inhibited thread")); pri = td->td_priority; cpri = ctd->td_priority; - if (panicstr != NULL || pri >= cpri /* || dumping */ || + if (KERNEL_PANICKED() || pri >= cpri /* || dumping */ || TD_IS_INHIBITED(ctd)) return (0); #ifndef FULL_PREEMPTION @@ -1138,7 +1138,7 @@ forward_wakeup(int cpunum) if ((!forward_wakeup_enabled) || (forward_wakeup_use_mask == 0 && forward_wakeup_use_loop == 0)) return (0); - if (!smp_started || panicstr) + if (!smp_started || KERNEL_PANICKED()) return (0); forward_wakeups_requested++; Modified: head/sys/kern/sched_ule.c ============================================================================== --- head/sys/kern/sched_ule.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/sched_ule.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2533,7 +2533,7 @@ sched_setpreempt(struct thread *td) cpri = ctd->td_priority; if (pri < cpri) ctd->td_flags |= TDF_NEEDRESCHED; - if (panicstr != NULL || pri >= cpri || cold || TD_IS_INHIBITED(ctd)) + if (KERNEL_PANICKED() || pri >= cpri || cold || TD_IS_INHIBITED(ctd)) return; if (!sched_shouldpreempt(pri, cpri, 0)) return; Modified: head/sys/kern/subr_csan.c ============================================================================== --- head/sys/kern/subr_csan.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/subr_csan.c Sun Jan 12 06:07:54 2020 (r356655) @@ -153,7 +153,7 @@ kcsan_access(uintptr_t addr, size_t size, bool write, return; if (__predict_false(kcsan_md_unsupported((vm_offset_t)addr))) return; - if (__predict_false(panicstr != NULL)) + if (KERNEL_PANICKED()) return; new.addr = addr; Modified: head/sys/kern/subr_prf.c ============================================================================== --- head/sys/kern/subr_prf.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/subr_prf.c Sun Jan 12 06:07:54 2020 (r356655) @@ -409,7 +409,7 @@ vprintf(const char *fmt, va_list ap) retval = _vprintf(-1, TOCONS | TOLOG, fmt, ap); - if (!panicstr) + if (!KERNEL_PANICKED()) msgbuftrigger = 1; return (retval); @@ -423,7 +423,7 @@ prf_putbuf(char *bufr, int flags, int pri) msglogstr(bufr, pri, /*filter_cr*/1); if (flags & TOCONS) { - if ((panicstr == NULL) && (constty != NULL)) + if ((!KERNEL_PANICKED()) && (constty != NULL)) msgbuf_addstr(&consmsgbuf, -1, bufr, /*filter_cr*/ 0); @@ -492,7 +492,7 @@ putchar(int c, void *arg) return; } - if ((flags & TOTTY) && tp != NULL && panicstr == NULL) + if ((flags & TOTTY) && tp != NULL && !KERNEL_PANICKED()) tty_putchar(tp, c); if ((flags & (TOCONS | TOLOG)) && c != '\0') Modified: head/sys/kern/subr_smp.c ============================================================================== --- head/sys/kern/subr_smp.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/subr_smp.c Sun Jan 12 06:07:54 2020 (r356655) @@ -195,7 +195,7 @@ forward_signal(struct thread *td) CTR1(KTR_SMP, "forward_signal(%p)", td->td_proc); - if (!smp_started || cold || panicstr) + if (!smp_started || cold || KERNEL_PANICKED()) return; if (!forward_signal_enabled) return; Modified: head/sys/kern/subr_witness.c ============================================================================== --- head/sys/kern/subr_witness.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/subr_witness.c Sun Jan 12 06:07:54 2020 (r356655) @@ -899,7 +899,7 @@ witness_init(struct lock_object *lock, const char *typ * it to the pending_locks list. If it is not too early, then enroll * the lock now. */ - if (witness_watch < 1 || panicstr != NULL || + if (witness_watch < 1 || KERNEL_PANICKED() || (lock->lo_flags & LO_WITNESS) == 0) lock->lo_witness = NULL; else if (witness_cold) { @@ -1077,7 +1077,7 @@ int witness_defineorder(struct lock_object *lock1, struct lock_object *lock2) { - if (witness_watch == -1 || panicstr != NULL) + if (witness_watch == -1 || KERNEL_PANICKED()) return (0); /* Require locks that witness knows about. */ @@ -1118,7 +1118,7 @@ witness_checkorder(struct lock_object *lock, int flags int i, j; if (witness_cold || witness_watch < 1 || lock->lo_witness == NULL || - panicstr != NULL) + KERNEL_PANICKED()) return; w = lock->lo_witness; @@ -1464,7 +1464,7 @@ witness_lock(struct lock_object *lock, int flags, cons struct thread *td; if (witness_cold || witness_watch == -1 || lock->lo_witness == NULL || - panicstr != NULL) + KERNEL_PANICKED()) return; w = lock->lo_witness; td = curthread; @@ -1522,7 +1522,7 @@ witness_upgrade(struct lock_object *lock, int flags, c struct lock_class *class; KASSERT(witness_cold == 0, ("%s: witness_cold", __func__)); - if (lock->lo_witness == NULL || witness_watch == -1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch == -1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if (witness_watch) { @@ -1568,7 +1568,7 @@ witness_downgrade(struct lock_object *lock, int flags, struct lock_class *class; KASSERT(witness_cold == 0, ("%s: witness_cold", __func__)); - if (lock->lo_witness == NULL || witness_watch == -1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch == -1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if (witness_watch) { @@ -1616,7 +1616,7 @@ witness_unlock(struct lock_object *lock, int flags, co register_t s; int i, j; - if (witness_cold || lock->lo_witness == NULL || panicstr != NULL) + if (witness_cold || lock->lo_witness == NULL || KERNEL_PANICKED()) return; td = curthread; class = LOCK_CLASS(lock); @@ -1722,7 +1722,7 @@ witness_thread_exit(struct thread *td) int i, n; lle = td->td_sleeplocks; - if (lle == NULL || panicstr != NULL) + if (lle == NULL || KERNEL_PANICKED()) return; if (lle->ll_count != 0) { for (n = 0; lle != NULL; lle = lle->ll_next) @@ -1757,7 +1757,7 @@ witness_warn(int flags, struct lock_object *lock, cons va_list ap; int i, n; - if (witness_cold || witness_watch < 1 || panicstr != NULL) + if (witness_cold || witness_watch < 1 || KERNEL_PANICKED()) return (0); n = 0; td = curthread; @@ -1849,7 +1849,7 @@ enroll(const char *description, struct lock_class *loc MPASS(description != NULL); - if (witness_watch == -1 || panicstr != NULL) + if (witness_watch == -1 || KERNEL_PANICKED()) return (NULL); if ((lock_class->lc_flags & LC_SPINLOCK)) { if (witness_skipspin) @@ -2323,7 +2323,7 @@ witness_save(struct lock_object *lock, const char **fi if (SCHEDULER_STOPPED()) return; KASSERT(witness_cold == 0, ("%s: witness_cold", __func__)); - if (lock->lo_witness == NULL || witness_watch == -1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch == -1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if (class->lc_flags & LC_SLEEPLOCK) @@ -2358,7 +2358,7 @@ witness_restore(struct lock_object *lock, const char * if (SCHEDULER_STOPPED()) return; KASSERT(witness_cold == 0, ("%s: witness_cold", __func__)); - if (lock->lo_witness == NULL || witness_watch == -1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch == -1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if (class->lc_flags & LC_SLEEPLOCK) @@ -2388,7 +2388,7 @@ witness_assert(const struct lock_object *lock, int fla struct lock_instance *instance; struct lock_class *class; - if (lock->lo_witness == NULL || witness_watch < 1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch < 1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if ((class->lc_flags & LC_SLEEPLOCK) != 0) @@ -2460,7 +2460,7 @@ witness_setflag(struct lock_object *lock, int flag, in struct lock_instance *instance; struct lock_class *class; - if (lock->lo_witness == NULL || witness_watch == -1 || panicstr != NULL) + if (lock->lo_witness == NULL || witness_watch == -1 || KERNEL_PANICKED()) return; class = LOCK_CLASS(lock); if (class->lc_flags & LC_SLEEPLOCK) Modified: head/sys/kern/tty_info.c ============================================================================== --- head/sys/kern/tty_info.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/tty_info.c Sun Jan 12 06:07:54 2020 (r356655) @@ -229,7 +229,7 @@ sbuf_tty_drain(void *a, const char *d, int len) cnputsn(d, len); return (len); } - if (tp != NULL && panicstr == NULL) { + if (tp != NULL && !KERNEL_PANICKED()) { rc = tty_putstrn(tp, d, len); if (rc != 0) return (-ENXIO); Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/vfs_bio.c Sun Jan 12 06:07:54 2020 (r356655) @@ -1431,7 +1431,7 @@ bufshutdown(int show_busybufs) /* * Unmount filesystems */ - if (panicstr == NULL) + if (!KERNEL_PANICKED()) vfs_unmountall(); } swapoff_all(); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/kern/vfs_subr.c Sun Jan 12 06:07:54 2020 (r356655) @@ -5023,7 +5023,7 @@ extattr_check_cred(struct vnode *vp, int attrnamespace * This only exists to suppress warnings from unlocked specfs accesses. It is * no longer ok to have an unlocked VFS. */ -#define IGNORE_LOCK(vp) (panicstr != NULL || (vp) == NULL || \ +#define IGNORE_LOCK(vp) (KERNEL_PANICKED() || (vp) == NULL || \ (vp)->v_type == VCHR || (vp)->v_type == VBAD) int vfs_badlock_ddb = 1; /* Drop into debugger on violation. */ @@ -5172,7 +5172,7 @@ vop_strategy_pre(void *ap) if ((bp->b_flags & B_CLUSTER) != 0) return; - if (panicstr == NULL && !BUF_ISLOCKED(bp)) { + if (!KERNEL_PANICKED() && !BUF_ISLOCKED(bp)) { if (vfs_badlock_print) printf( "VOP_STRATEGY: bp is not locked but should be\n"); Modified: head/sys/netinet/netdump/netdump_client.c ============================================================================== --- head/sys/netinet/netdump/netdump_client.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/netinet/netdump/netdump_client.c Sun Jan 12 06:07:54 2020 (r356655) @@ -293,7 +293,7 @@ netdump_start(struct dumperinfo *di) if (!netdump_enabled()) return (EINVAL); - if (panicstr == NULL) { + if (!KERNEL_PANICKED()) { printf( "netdump_start: netdump may only be used after a panic\n"); return (EINVAL); Modified: head/sys/sparc64/sparc64/mp_machdep.c ============================================================================== --- head/sys/sparc64/sparc64/mp_machdep.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/sparc64/sparc64/mp_machdep.c Sun Jan 12 06:07:54 2020 (r356655) @@ -611,7 +611,7 @@ spitfire_ipi_single(u_int cpu, u_long d0, u_long d1, u if ((ids & (IDR_BUSY | IDR_NACK)) == 0) return; } - if (kdb_active != 0 || panicstr != NULL) + if (kdb_active != 0 || KERNEL_PANICKED()) printf("%s: couldn't send IPI to module 0x%u\n", __func__, mid); else @@ -650,7 +650,7 @@ cheetah_ipi_single(u_int cpu, u_long d0, u_long d1, u_ if ((ids & (IDR_BUSY | IDR_NACK)) == 0) return; } - if (kdb_active != 0 || panicstr != NULL) + if (kdb_active != 0 || KERNEL_PANICKED()) printf("%s: couldn't send IPI to module 0x%u\n", __func__, mid); else @@ -709,7 +709,7 @@ cheetah_ipi_selected(cpuset_t cpus, u_long d0, u_long if (CPU_EMPTY(&cpus)) return; } - if (kdb_active != 0 || panicstr != NULL) + if (kdb_active != 0 || KERNEL_PANICKED()) printf("%s: couldn't send IPI (cpus=%s ids=0x%lu)\n", __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); else @@ -750,7 +750,7 @@ jalapeno_ipi_single(u_int cpu, u_long d0, u_long d1, u if ((ids & busynack) == 0) return; } - if (kdb_active != 0 || panicstr != NULL) + if (kdb_active != 0 || KERNEL_PANICKED()) printf("%s: couldn't send IPI to module 0x%u\n", __func__, mid); else @@ -801,7 +801,7 @@ jalapeno_ipi_selected(cpuset_t cpus, u_long d0, u_long (2 * cpuid_to_mid[cpu]))) == 0) CPU_CLR(cpu, &cpus); } - if (kdb_active != 0 || panicstr != NULL) + if (kdb_active != 0 || KERNEL_PANICKED()) printf("%s: couldn't send IPI (cpus=%s ids=0x%lu)\n", __func__, cpusetobj_strprint(ipi_pbuf, &cpus), ids); else Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/sys/systm.h Sun Jan 12 06:07:54 2020 (r356655) @@ -53,6 +53,7 @@ extern int cold; /* nonzero if we are doing a cold bo extern int suspend_blocked; /* block suspend due to pending shutdown */ extern int rebooting; /* kern_reboot() has been called. */ extern const char *panicstr; /* panic message */ +#define KERNEL_PANICKED() __predict_false(panicstr != NULL) extern char version[]; /* system version */ extern char compiler_version[]; /* compiler version */ extern char copyright[]; /* system copyright */ Modified: head/sys/x86/x86/local_apic.c ============================================================================== --- head/sys/x86/x86/local_apic.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/x86/x86/local_apic.c Sun Jan 12 06:07:54 2020 (r356655) @@ -2076,7 +2076,7 @@ native_lapic_ipi_vectored(u_int vector, int dest) /* Wait for an earlier IPI to finish. */ if (!lapic_ipi_wait(BEFORE_SPIN)) { - if (panicstr != NULL) + if (KERNEL_PANICKED()) return; else panic("APIC: Previous IPI is stuck"); Modified: head/sys/x86/x86/mp_x86.c ============================================================================== --- head/sys/x86/x86/mp_x86.c Sun Jan 12 05:25:06 2020 (r356654) +++ head/sys/x86/x86/mp_x86.c Sun Jan 12 06:07:54 2020 (r356655) @@ -1459,7 +1459,7 @@ cpustop_handler(void) * again, and might as well save power / release resources * (e.g., overprovisioned VM infrastructure). */ - while (__predict_false(!IS_BSP() && panicstr != NULL)) + while (__predict_false(!IS_BSP() && KERNEL_PANICKED())) halt(); } @@ -1672,7 +1672,7 @@ smp_targeted_tlb_shootdown(cpuset_t mask, u_int vector int cpu; /* It is not necessary to signal other CPUs while in the debugger. */ - if (kdb_active || panicstr != NULL) + if (kdb_active || KERNEL_PANICKED()) return; /* From owner-svn-src-all@freebsd.org Sun Jan 12 06:09:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D15AF2254B9; Sun, 12 Jan 2020 06:09:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wRBG4vShz424w; Sun, 12 Jan 2020 06:09:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A3887F49D; Sun, 12 Jan 2020 06:09:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C69AW6050820; Sun, 12 Jan 2020 06:09:10 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C69Anp050819; Sun, 12 Jan 2020 06:09:10 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001120609.00C69Anp050819@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sun, 12 Jan 2020 06:09:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356656 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 356656 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 06:09:10 -0000 Author: mjg Date: Sun Jan 12 06:09:10 2020 New Revision: 356656 URL: https://svnweb.freebsd.org/changeset/base/356656 Log: Add "panicked" boolean which can be tested instead of panicstr The test is performed all the time and reading entire panicstr to do it wastes space. Modified: head/sys/kern/kern_shutdown.c head/sys/sys/systm.h Modified: head/sys/kern/kern_shutdown.c ============================================================================== --- head/sys/kern/kern_shutdown.c Sun Jan 12 06:07:54 2020 (r356655) +++ head/sys/kern/kern_shutdown.c Sun Jan 12 06:09:10 2020 (r356656) @@ -217,7 +217,8 @@ SYSCTL_INT(_kern, OID_AUTO, kerneldump_gzlevel, CTLFLA * Variable panicstr contains argument to first call to panic; used as flag * to indicate that the kernel has already called panic. */ -const char __read_mostly *panicstr; +const char *panicstr; +bool __read_frequently panicked; int __read_mostly dumping; /* system is dumping */ int rebooting; /* system is rebooting */ @@ -873,6 +874,7 @@ vpanic(const char *fmt, va_list ap) else { bootopt |= RB_DUMP; panicstr = fmt; + panicked = true; newpanic = 1; } Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Sun Jan 12 06:07:54 2020 (r356655) +++ head/sys/sys/systm.h Sun Jan 12 06:09:10 2020 (r356656) @@ -53,7 +53,8 @@ extern int cold; /* nonzero if we are doing a cold bo extern int suspend_blocked; /* block suspend due to pending shutdown */ extern int rebooting; /* kern_reboot() has been called. */ extern const char *panicstr; /* panic message */ -#define KERNEL_PANICKED() __predict_false(panicstr != NULL) +extern bool panicked; +#define KERNEL_PANICKED() __predict_false(panicked) extern char version[]; /* system version */ extern char compiler_version[]; /* compiler version */ extern char copyright[]; /* system copyright */ From owner-svn-src-all@freebsd.org Sun Jan 12 06:13:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E848E2257B8; Sun, 12 Jan 2020 06:13:52 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wRHh5s3Yz42Y5; Sun, 12 Jan 2020 06:13:52 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AA6C0F65F; Sun, 12 Jan 2020 06:13:52 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00C6Dq7p056531; Sun, 12 Jan 2020 06:13:52 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00C6DqZV056530; Sun, 12 Jan 2020 06:13:52 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001120613.00C6DqZV056530@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Sun, 12 Jan 2020 06:13:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356657 - head/sbin/fsck_msdosfs X-SVN-Group: head X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: head/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356657 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 06:13:53 -0000 Author: delphij Date: Sun Jan 12 06:13:52 2020 New Revision: 356657 URL: https://svnweb.freebsd.org/changeset/base/356657 Log: Tighten FAT checks and fix off-by-one error in corner case. sbin/fsck_msdosfs/fat.c: - readfat: * Only truncate out-of-range cluster pointers (1, or greater than NumClusters but smaller than CLUST_RSRVD), as the current cluster may contain some data. We can't fix reserved cluster pointers at this pass, because we do no know the potential cluster preceding it. * Accept valid cluster for head bitmap. This is a no-op, and mainly to improve code readability, because the 1 is already handled in the previous else if block. - truncate_at: absorbed into checkchain. - checkchain: save the previous node we have traversed in case that we have a chain that ends with a special (>= CLUST_RSRVD) cluster, or is free. In these cases, we need to truncate at the cluster preceding the current cluster, as the current cluster contains a marker instead of a next pointer and can not be changed to CLUST_EOF (the else case can happen if the user answered "no" at some point in readfat()). - clearchain: correct the iterator for next cluster so that we don't stop after clearing the first cluster. - checklost: If checkchain() thinks the chain have no cluster, it doesn't make sense to reconnect it, so don't bother asking. Reviewed by: kevlo MFC after: 24 days X-MFC-With: r356313 Differential Revision: https://reviews.freebsd.org/D23065 Modified: head/sbin/fsck_msdosfs/fat.c Modified: head/sbin/fsck_msdosfs/fat.c ============================================================================== --- head/sbin/fsck_msdosfs/fat.c Sun Jan 12 06:09:10 2020 (r356656) +++ head/sbin/fsck_msdosfs/fat.c Sun Jan 12 06:13:52 2020 (r356657) @@ -935,17 +935,16 @@ readfat(int fs, struct bootblock *boot, struct fat_des fat_clear_cl_head(fat, cl); } boot->NumBad++; - } else if (!valid_cl(fat, nextcl) && nextcl < CLUST_EOFS) { - pwarn("Cluster %u continues with %s " + } else if (!valid_cl(fat, nextcl) && nextcl < CLUST_RSRVD) { + pwarn("Cluster %u continues with out of range " "cluster number %u\n", - cl, (nextcl < CLUST_RSRVD) ? - "out of range" : "reserved", + cl, nextcl & boot->ClustMask); if (ask(0, "Truncate")) { ret |= fat_set_cl_next(fat, cl, CLUST_EOF); ret |= FSFATMOD; } - } else if (nextcl < boot->NumClusters) { + } else if (valid_cl(fat, nextcl)) { if (fat_is_cl_head(fat, nextcl)) { fat_clear_cl_head(fat, nextcl); } else { @@ -985,29 +984,13 @@ rsrvdcltype(cl_t cl) } /* - * Offer to truncate a chain at the specified CL, called by checkchain(). - */ -static inline int -truncate_at(struct fat_descriptor *fat, cl_t current_cl, size_t *chainsize) -{ - int ret = 0; - - if (ask(0, "Truncate")) { - ret = fat_set_cl_next(fat, current_cl, CLUST_EOF); - (*chainsize)++; - return (ret | FSFATMOD); - } else { - return FSERROR; - } -} - -/* * Examine a cluster chain for errors and count its size. */ int checkchain(struct fat_descriptor *fat, cl_t head, size_t *chainsize) { - cl_t current_cl, next_cl; + cl_t prev_cl, current_cl, next_cl; + const char *op; /* * We expect that the caller to give us a real, unvisited 'head' @@ -1038,10 +1021,10 @@ checkchain(struct fat_descriptor *fat, cl_t head, size * it as EOF) when the next node violates that. */ *chainsize = 0; - current_cl = head; + prev_cl = current_cl = head; for (next_cl = fat_get_cl_next(fat, current_cl); valid_cl(fat, next_cl); - current_cl = next_cl, next_cl = fat_get_cl_next(fat, current_cl)) + prev_cl = current_cl, current_cl = next_cl, next_cl = fat_get_cl_next(fat, current_cl)) (*chainsize)++; /* A natural end */ @@ -1050,12 +1033,40 @@ checkchain(struct fat_descriptor *fat, cl_t head, size return FSOK; } - /* The chain ended with an out-of-range cluster number. */ - pwarn("Cluster %u continues with %s cluster number %u\n", - current_cl, - next_cl < CLUST_RSRVD ? "out of range" : "reserved", - next_cl & boot_of_(fat)->ClustMask); - return (truncate_at(fat, current_cl, chainsize)); + /* + * The chain ended with an out-of-range cluster number. + * + * If the current node is e.g. CLUST_FREE, CLUST_BAD, etc., + * it should not be present in a chain and we has to truncate + * at the previous node. + * + * If the current cluster points to an invalid cluster, the + * current cluster might have useful data and we truncate at + * the current cluster instead. + */ + if (next_cl == CLUST_FREE || next_cl >= CLUST_RSRVD) { + pwarn("Cluster chain starting at %u ends with cluster marked %s\n", + head, rsrvdcltype(next_cl)); + current_cl = prev_cl; + } else { + pwarn("Cluster chain starting at %u ends with cluster out of range (%u)\n", + head, + next_cl & boot_of_(fat)->ClustMask); + (*chainsize)++; + } + + if (*chainsize > 0) { + op = "Truncate"; + next_cl = CLUST_EOF; + } else { + op = "Clear"; + next_cl = CLUST_FREE; + } + if (ask(0, "%s", op)) { + return (fat_set_cl_next(fat, current_cl, next_cl) | FSFATMOD); + } else { + return (FSERROR); + } } /* @@ -1070,7 +1081,7 @@ clearchain(struct fat_descriptor *fat, cl_t head) current_cl = head; while (valid_cl(fat, current_cl)) { - next_cl = fat_get_cl_next(fat, head); + next_cl = fat_get_cl_next(fat, current_cl); (void)fat_set_cl_next(fat, current_cl, CLUST_FREE); boot->NumFree++; current_cl = next_cl; @@ -1218,7 +1229,7 @@ checklost(struct fat_descriptor *fat) } if (fat_is_cl_head(fat, head)) { ret = checkchain(fat, head, &chainlength); - if (ret != FSERROR) { + if (ret != FSERROR && chainlength > 0) { pwarn("Lost cluster chain at cluster %u\n" "%zd Cluster(s) lost\n", head, chainlength); From owner-svn-src-all@freebsd.org Sun Jan 12 09:00:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D53ED22982A; Sun, 12 Jan 2020 09:00:25 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47wVzs42YKz49hj; Sun, 12 Jan 2020 09:00:25 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 00C90Adm029140 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 12 Jan 2020 11:00:13 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 00C90Adm029140 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 00C90Apm029138; Sun, 12 Jan 2020 11:00:10 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 12 Jan 2020 11:00:10 +0200 From: Konstantin Belousov To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356656 - in head/sys: kern sys Message-ID: <20200112090010.GA2068@kib.kiev.ua> References: <202001120609.00C69Anp050819@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001120609.00C69Anp050819@repo.freebsd.org> X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.3 X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on tom.home X-Rspamd-Queue-Id: 47wVzs42YKz49hj X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 09:00:25 -0000 On Sun, Jan 12, 2020 at 06:09:10AM +0000, Mateusz Guzik wrote: > Author: mjg > Date: Sun Jan 12 06:09:10 2020 > New Revision: 356656 > URL: https://svnweb.freebsd.org/changeset/base/356656 > > Log: > Add "panicked" boolean which can be tested instead of panicstr > > The test is performed all the time and reading entire panicstr to do it > wastes space. What space does it waste ? The space in the read-mostly section ? And what is the difference between reading a pointer vs. reading a byte ? CPU still has to read the whole cache line. > > Modified: > head/sys/kern/kern_shutdown.c > head/sys/sys/systm.h > > Modified: head/sys/kern/kern_shutdown.c > ============================================================================== > --- head/sys/kern/kern_shutdown.c Sun Jan 12 06:07:54 2020 (r356655) > +++ head/sys/kern/kern_shutdown.c Sun Jan 12 06:09:10 2020 (r356656) > @@ -217,7 +217,8 @@ SYSCTL_INT(_kern, OID_AUTO, kerneldump_gzlevel, CTLFLA > * Variable panicstr contains argument to first call to panic; used as flag > * to indicate that the kernel has already called panic. > */ > -const char __read_mostly *panicstr; > +const char *panicstr; > +bool __read_frequently panicked; > > int __read_mostly dumping; /* system is dumping */ > int rebooting; /* system is rebooting */ > @@ -873,6 +874,7 @@ vpanic(const char *fmt, va_list ap) > else { > bootopt |= RB_DUMP; > panicstr = fmt; > + panicked = true; > newpanic = 1; > } > > > Modified: head/sys/sys/systm.h > ============================================================================== > --- head/sys/sys/systm.h Sun Jan 12 06:07:54 2020 (r356655) > +++ head/sys/sys/systm.h Sun Jan 12 06:09:10 2020 (r356656) > @@ -53,7 +53,8 @@ extern int cold; /* nonzero if we are doing a cold bo > extern int suspend_blocked; /* block suspend due to pending shutdown */ > extern int rebooting; /* kern_reboot() has been called. */ > extern const char *panicstr; /* panic message */ > -#define KERNEL_PANICKED() __predict_false(panicstr != NULL) > +extern bool panicked; > +#define KERNEL_PANICKED() __predict_false(panicked) > extern char version[]; /* system version */ > extern char compiler_version[]; /* compiler version */ > extern char copyright[]; /* system copyright */ From owner-svn-src-all@freebsd.org Sun Jan 12 10:08:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CE29322AE03; Sun, 12 Jan 2020 10:08:06 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wXTx53lDz4Dh9; Sun, 12 Jan 2020 10:08:05 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x444.google.com with SMTP id t2so5724859wrr.1; Sun, 12 Jan 2020 02:08:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vVXKTqaxSvUUWAAucGeuGjBLFpd2unbzwMpp00Opc7o=; b=fB8OKZcthpoz6VG+ghT28+4RIWsF/MrWoAh2oEAtsps4kaToyF3jv6shMcT4XUeOZF DXEInYAMuqhbB3JIeK89CiObRH7nAs+KNU8nFTrVCGAs71i3XIfkORIET7ouYuMW3M7F V+hpIjIL35HsrBMIV10xo+Sf1L7B4OBtYNijbb1Yqqu/PKHXKAkY+kU0efZi8TeYynIn w57XrKh3v8pREMoAUIGSPsWJZy9gNsTddZx4fLmSrDRVTgDOPzwG8n5hDbgZ9VsGHwCq 5tWXrABDpx+x1i4n6Gx95uXPr5rHsA7/HuyrqyKGzHKh6DSPtEAA7wm+HWt+xevgE8GQ JlPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vVXKTqaxSvUUWAAucGeuGjBLFpd2unbzwMpp00Opc7o=; b=YEpoQ49ECvJBQ5JqzkJJYokcwqxBPe3qePvTDWvR7B3zsEL9wAy99WrceBnL1xA8uH Rt3pYtjQ/59T+JvLFuiXDoQayCZ6MxJEjh/x4pwb0IKLU2Rcyxod7Xv+Zg3cBaS3KMr1 3VKevZoqvYHL3Q85TIP/XiHbPBAgnpPuNvLT+NRioP0lsK4Y+tz1BMP65zmtkqcdTXgc qCfvZ6+KV5lCknZk6JKfrHiSXwV/0rZmfuTvs7BCqF5FJyrvUD3ZfL75S2Mq43wgQ1nH YAgu8Vz3hjvdH4arxKZTMU2EgE5J9mrnnuZnZArW2/nnkAG5LfUTO9AIVmLZ5o9Umwpp IKrg== X-Gm-Message-State: APjAAAVtGuJgfD7FLLLC8zg9EcftK958Ky3sEOqIcBrgj8uz1iXcHzDH Ucbe7GvsNcScUTIA60vidIYkXzLJd4PNFuAqqP4= X-Google-Smtp-Source: APXvYqwhdWBo0lv8pyS0n1o0ZtbjDC3EPW4O0Nl6MRgkHCdF+wu/8ogrbtNUoeUHgSlkZxLTKvmC57LQIHk0AA0IfhM= X-Received: by 2002:a5d:4d8d:: with SMTP id b13mr13467957wru.6.1578823684259; Sun, 12 Jan 2020 02:08:04 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Sun, 12 Jan 2020 02:08:02 -0800 (PST) In-Reply-To: <20200112090010.GA2068@kib.kiev.ua> References: <202001120609.00C69Anp050819@repo.freebsd.org> <20200112090010.GA2068@kib.kiev.ua> From: Mateusz Guzik Date: Sun, 12 Jan 2020 11:08:02 +0100 Message-ID: Subject: Re: svn commit: r356656 - in head/sys: kern sys To: Konstantin Belousov Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47wXTx53lDz4Dh9 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=fB8OKZct; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::444 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FREEMAIL_FROM(0.00)[gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (2.70), ipnet: 2a00:1450::/32(-2.60), asn: 15169(-1.84), country: US(-0.05)]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TO_DN_SOME(0.00)[]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[4.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 10:08:06 -0000 On 1/12/20, Konstantin Belousov wrote: > On Sun, Jan 12, 2020 at 06:09:10AM +0000, Mateusz Guzik wrote: >> Author: mjg >> Date: Sun Jan 12 06:09:10 2020 >> New Revision: 356656 >> URL: https://svnweb.freebsd.org/changeset/base/356656 >> >> Log: >> Add "panicked" boolean which can be tested instead of panicstr >> >> The test is performed all the time and reading entire panicstr to do it >> wastes space. > What space does it waste ? The space in the read-mostly section ? > > And what is the difference between reading a pointer vs. reading a byte ? > CPU still has to read the whole cache line. > Note the annotation with __read_frequently which groups fields. Currently it results in the following (with tail filled up from __read_mostly): ---------------- ffffffff80c01000 D hc_source_mask ffffffff80c01004 D pti ffffffff80c01008 D locks_delay ffffffff80c0100c D locks_delay_retries ffffffff80c0100e D locks_delay_loops ffffffff80c01010 d fortuna_concurrent_read ffffffff80c01011 D random_chachamode ffffffff80c01012 D systrace_enabled ffffffff80c01013 D lockstat_enabled ffffffff80c01014 D dtrace_malloc_enabled ffffffff80c01015 D racct_enable ffffffff80c01016 D sdt_probes_enabled ffffffff80c01017 D panicked ffffffff80c01018 D kdb_active ffffffff80c01019 D trap_enotcap ffffffff80c0101a D audit_syscalls_enabled ffffffff80c01020 D cam_dflags ffffffff80c01028 d epoch_inited ffffffff80c01030 d rs_epoch ffffffff80c01038 d biozone ---------------- Should panicstr land here it would avoidably take up 8 bytes instead of 1. -- Mateusz Guzik From owner-svn-src-all@freebsd.org Sun Jan 12 13:38:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34B4B22F6C5; Sun, 12 Jan 2020 13:38:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wd980RVZz4P0G; Sun, 12 Jan 2020 13:38:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0A4DB1C6AB; Sun, 12 Jan 2020 13:38:52 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CDcpaX021055; Sun, 12 Jan 2020 13:38:51 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CDcpwG021053; Sun, 12 Jan 2020 13:38:51 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202001121338.00CDcpwG021053@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 12 Jan 2020 13:38:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356658 - in head/sys: compat/linux kern sys X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys: compat/linux kern sys X-SVN-Commit-Revision: 356658 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 13:38:52 -0000 Author: trasz Date: Sun Jan 12 13:38:51 2020 New Revision: 356658 URL: https://svnweb.freebsd.org/changeset/base/356658 Log: Add kern_setpriority(), use it in Linuxulator. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22841 Modified: head/sys/compat/linux/linux_misc.c head/sys/kern/kern_resource.c head/sys/sys/syscallsubr.h Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Sun Jan 12 06:13:52 2020 (r356657) +++ head/sys/compat/linux/linux_misc.c Sun Jan 12 13:38:51 2020 (r356658) @@ -1207,12 +1207,8 @@ linux_getitimer(struct thread *td, struct linux_getiti int linux_nice(struct thread *td, struct linux_nice_args *args) { - struct setpriority_args bsd_args; - bsd_args.which = PRIO_PROCESS; - bsd_args.who = 0; /* current process */ - bsd_args.prio = args->inc; - return (sys_setpriority(td, &bsd_args)); + return (kern_setpriority(td, PRIO_PROCESS, 0, args->inc)); } #endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */ Modified: head/sys/kern/kern_resource.c ============================================================================== --- head/sys/kern/kern_resource.c Sun Jan 12 06:13:52 2020 (r356657) +++ head/sys/kern/kern_resource.c Sun Jan 12 13:38:51 2020 (r356658) @@ -175,24 +175,31 @@ struct setpriority_args { int sys_setpriority(struct thread *td, struct setpriority_args *uap) { + + return (kern_setpriority(td, uap->which, uap->who, uap->prio)); +} + +int +kern_setpriority(struct thread *td, int which, int who, int prio) +{ struct proc *curp, *p; struct pgrp *pg; int found = 0, error = 0; curp = td->td_proc; - switch (uap->which) { + switch (which) { case PRIO_PROCESS: - if (uap->who == 0) { + if (who == 0) { PROC_LOCK(curp); - error = donice(td, curp, uap->prio); + error = donice(td, curp, prio); PROC_UNLOCK(curp); } else { - p = pfind(uap->who); + p = pfind(who); if (p == NULL) break; error = p_cansee(td, p); if (error == 0) - error = donice(td, p, uap->prio); + error = donice(td, p, prio); PROC_UNLOCK(p); } found++; @@ -200,11 +207,11 @@ sys_setpriority(struct thread *td, struct setpriority_ case PRIO_PGRP: sx_slock(&proctree_lock); - if (uap->who == 0) { + if (who == 0) { pg = curp->p_pgrp; PGRP_LOCK(pg); } else { - pg = pgfind(uap->who); + pg = pgfind(who); if (pg == NULL) { sx_sunlock(&proctree_lock); break; @@ -215,7 +222,7 @@ sys_setpriority(struct thread *td, struct setpriority_ PROC_LOCK(p); if (p->p_state == PRS_NORMAL && p_cansee(td, p) == 0) { - error = donice(td, p, uap->prio); + error = donice(td, p, prio); found++; } PROC_UNLOCK(p); @@ -224,15 +231,15 @@ sys_setpriority(struct thread *td, struct setpriority_ break; case PRIO_USER: - if (uap->who == 0) - uap->who = td->td_ucred->cr_uid; + if (who == 0) + who = td->td_ucred->cr_uid; sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { PROC_LOCK(p); if (p->p_state == PRS_NORMAL && - p->p_ucred->cr_uid == uap->who && + p->p_ucred->cr_uid == who && p_cansee(td, p) == 0) { - error = donice(td, p, uap->prio); + error = donice(td, p, prio); found++; } PROC_UNLOCK(p); Modified: head/sys/sys/syscallsubr.h ============================================================================== --- head/sys/sys/syscallsubr.h Sun Jan 12 06:13:52 2020 (r356657) +++ head/sys/sys/syscallsubr.h Sun Jan 12 13:38:51 2020 (r356658) @@ -251,6 +251,7 @@ int kern_sendit(struct thread *td, int s, struct msghd int kern_setgroups(struct thread *td, u_int ngrp, gid_t *groups); int kern_setitimer(struct thread *, u_int, struct itimerval *, struct itimerval *); +int kern_setpriority(struct thread *td, int which, int who, int prio); int kern_setrlimit(struct thread *, u_int, struct rlimit *); int kern_setsockopt(struct thread *td, int s, int level, int name, const void *optval, enum uio_seg valseg, socklen_t valsize); From owner-svn-src-all@freebsd.org Sun Jan 12 14:25:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 71C231D86C1; Sun, 12 Jan 2020 14:25:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wfCF2Lmnz4Qrm; Sun, 12 Jan 2020 14:25:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 479F21CFAD; Sun, 12 Jan 2020 14:25:45 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CEPjqG050052; Sun, 12 Jan 2020 14:25:45 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CEPijO050048; Sun, 12 Jan 2020 14:25:44 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202001121425.00CEPijO050048@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Sun, 12 Jan 2020 14:25:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356659 - in head/sys: compat/linux kern sys X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: in head/sys: compat/linux kern sys X-SVN-Commit-Revision: 356659 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 14:25:45 -0000 Author: trasz Date: Sun Jan 12 14:25:44 2020 New Revision: 356659 URL: https://svnweb.freebsd.org/changeset/base/356659 Log: dd kern_getpriority(), make Linuxulator use it. Reviewed by: kib, emaste MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22842 Modified: head/sys/compat/linux/linux_misc.c head/sys/kern/kern_resource.c head/sys/sys/syscallsubr.h Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Sun Jan 12 13:38:51 2020 (r356658) +++ head/sys/compat/linux/linux_misc.c Sun Jan 12 14:25:44 2020 (r356659) @@ -1613,12 +1613,9 @@ linux_nosys(struct thread *td, struct nosys_args *igno int linux_getpriority(struct thread *td, struct linux_getpriority_args *args) { - struct getpriority_args bsd_args; int error; - bsd_args.which = args->which; - bsd_args.who = args->who; - error = sys_getpriority(td, &bsd_args); + error = kern_getpriority(td, args->which, args->who); td->td_retval[0] = 20 - td->td_retval[0]; return (error); } Modified: head/sys/kern/kern_resource.c ============================================================================== --- head/sys/kern/kern_resource.c Sun Jan 12 13:38:51 2020 (r356658) +++ head/sys/kern/kern_resource.c Sun Jan 12 14:25:44 2020 (r356659) @@ -92,19 +92,26 @@ struct getpriority_args { int sys_getpriority(struct thread *td, struct getpriority_args *uap) { + + return (kern_getpriority(td, uap->which, uap->who)); +} + +int +kern_getpriority(struct thread *td, int which, int who) +{ struct proc *p; struct pgrp *pg; int error, low; error = 0; low = PRIO_MAX + 1; - switch (uap->which) { + switch (which) { case PRIO_PROCESS: - if (uap->who == 0) + if (who == 0) low = td->td_proc->p_nice; else { - p = pfind(uap->who); + p = pfind(who); if (p == NULL) break; if (p_cansee(td, p) == 0) @@ -115,11 +122,11 @@ sys_getpriority(struct thread *td, struct getpriority_ case PRIO_PGRP: sx_slock(&proctree_lock); - if (uap->who == 0) { + if (who == 0) { pg = td->td_proc->p_pgrp; PGRP_LOCK(pg); } else { - pg = pgfind(uap->who); + pg = pgfind(who); if (pg == NULL) { sx_sunlock(&proctree_lock); break; @@ -139,14 +146,14 @@ sys_getpriority(struct thread *td, struct getpriority_ break; case PRIO_USER: - if (uap->who == 0) - uap->who = td->td_ucred->cr_uid; + if (who == 0) + who = td->td_ucred->cr_uid; sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { PROC_LOCK(p); if (p->p_state == PRS_NORMAL && p_cansee(td, p) == 0 && - p->p_ucred->cr_uid == uap->who) { + p->p_ucred->cr_uid == who) { if (p->p_nice < low) low = p->p_nice; } Modified: head/sys/sys/syscallsubr.h ============================================================================== --- head/sys/sys/syscallsubr.h Sun Jan 12 13:38:51 2020 (r356658) +++ head/sys/sys/syscallsubr.h Sun Jan 12 14:25:44 2020 (r356659) @@ -141,6 +141,7 @@ int kern_getitimer(struct thread *, u_int, struct itim int kern_getppid(struct thread *); int kern_getpeername(struct thread *td, int fd, struct sockaddr **sa, socklen_t *alen); +int kern_getpriority(struct thread *td, int which, int who); int kern_getrusage(struct thread *td, int who, struct rusage *rup); int kern_getsid(struct thread *td, pid_t pid); int kern_getsockname(struct thread *td, int fd, struct sockaddr **sa, From owner-svn-src-all@freebsd.org Sun Jan 12 15:45:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0A4991D9D98; Sun, 12 Jan 2020 15:45:28 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wgzC6Frrz4TvM; Sun, 12 Jan 2020 15:45:27 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CD4811DE7A; Sun, 12 Jan 2020 15:45:27 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CFjRE1097803; Sun, 12 Jan 2020 15:45:27 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CFjRwU097802; Sun, 12 Jan 2020 15:45:27 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001121545.00CFjRwU097802@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 12 Jan 2020 15:45:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356660 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356660 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 15:45:28 -0000 Author: tuexen Date: Sun Jan 12 15:45:27 2020 New Revision: 356660 URL: https://svnweb.freebsd.org/changeset/base/356660 Log: Fix division by zero issue. Thanks to Stas Denisov for reporting the issue for the userland stack and providing a fix. MFC after: 3 days Modified: head/sys/netinet/sctp_cc_functions.c Modified: head/sys/netinet/sctp_cc_functions.c ============================================================================== --- head/sys/netinet/sctp_cc_functions.c Sun Jan 12 14:25:44 2020 (r356659) +++ head/sys/netinet/sctp_cc_functions.c Sun Jan 12 15:45:27 2020 (r356660) @@ -1876,7 +1876,7 @@ htcp_cong_time(struct htcp *ca) static inline uint32_t htcp_ccount(struct htcp *ca) { - return (htcp_cong_time(ca) / ca->minRTT); + return (ca->minRTT == 0 ? htcp_cong_time(ca) : htcp_cong_time(ca) / ca->minRTT); } static inline void From owner-svn-src-all@freebsd.org Sun Jan 12 16:58:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7A9E31DBE9C; Sun, 12 Jan 2020 16:58:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wjbL2Vlrz4Zs0; Sun, 12 Jan 2020 16:58:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CF551EB72; Sun, 12 Jan 2020 16:58:22 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CGwMvq043156; Sun, 12 Jan 2020 16:58:22 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CGwLsw043154; Sun, 12 Jan 2020 16:58:21 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001121658.00CGwLsw043154@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 12 Jan 2020 16:58:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356661 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 356661 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 16:58:22 -0000 Author: bz Date: Sun Jan 12 16:58:21 2020 New Revision: 356661 URL: https://svnweb.freebsd.org/changeset/base/356661 Log: nd6_rtr: make nd6_prefix_onlink() static nd6_prefix_onlink() is not used anywhere outside nd6_rtr.c. Stop exporting it and make it file local static. Modified: head/sys/netinet6/nd6.h head/sys/netinet6/nd6_rtr.c Modified: head/sys/netinet6/nd6.h ============================================================================== --- head/sys/netinet6/nd6.h Sun Jan 12 15:45:27 2020 (r356660) +++ head/sys/netinet6/nd6.h Sun Jan 12 16:58:21 2020 (r356661) @@ -418,7 +418,6 @@ void nd6_prefix_unlink(struct nd_prefix *, struct nd_p void nd6_prefix_del(struct nd_prefix *); void nd6_prefix_ref(struct nd_prefix *); void nd6_prefix_rele(struct nd_prefix *); -int nd6_prefix_onlink(struct nd_prefix *); int nd6_prefix_offlink(struct nd_prefix *); void pfxlist_onlink_check(void); struct nd_prefix *nd6_prefix_lookup(struct nd_prefixctl *); Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Sun Jan 12 15:45:27 2020 (r356660) +++ head/sys/netinet6/nd6_rtr.c Sun Jan 12 16:58:21 2020 (r356661) @@ -76,6 +76,7 @@ __FBSDID("$FreeBSD$"); static struct nd_defrouter *defrtrlist_update(struct nd_defrouter *); static int prelist_update(struct nd_prefixctl *, struct nd_defrouter *, struct mbuf *, int); +static int nd6_prefix_onlink(struct nd_prefix *); TAILQ_HEAD(nd6_drhead, nd_defrouter); VNET_DEFINE_STATIC(struct nd6_drhead, nd6_defrouter); @@ -2088,7 +2089,7 @@ nd6_prefix_onlink_rtrequest(struct nd_prefix *pr, stru return (a_failure); } -int +static int nd6_prefix_onlink(struct nd_prefix *pr) { struct epoch_tracker et; From owner-svn-src-all@freebsd.org Sun Jan 12 17:41:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B6C51DD09B; Sun, 12 Jan 2020 17:41:10 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wkXj70gJz4dC3; Sun, 12 Jan 2020 17:41:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2C7A1F4F9; Sun, 12 Jan 2020 17:41:09 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CHf9ug069926; Sun, 12 Jan 2020 17:41:09 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CHf98k069925; Sun, 12 Jan 2020 17:41:09 GMT (envelope-from bz@FreeBSD.org) Message-Id: <202001121741.00CHf98k069925@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" Date: Sun, 12 Jan 2020 17:41:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356662 - head/sys/netinet6 X-SVN-Group: head X-SVN-Commit-Author: bz X-SVN-Commit-Paths: head/sys/netinet6 X-SVN-Commit-Revision: 356662 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 17:41:10 -0000 Author: bz Date: Sun Jan 12 17:41:09 2020 New Revision: 356662 URL: https://svnweb.freebsd.org/changeset/base/356662 Log: nd6_rtr: constantly use __func__ for nd6log() Over time one or two hard coded function names did not match the actual function anymore. Consistently use __func__ for nd6log() calls and re-wrap/re-format some messages for consitency. MFC after: 2 weeks Modified: head/sys/netinet6/nd6_rtr.c Modified: head/sys/netinet6/nd6_rtr.c ============================================================================== --- head/sys/netinet6/nd6_rtr.c Sun Jan 12 16:58:21 2020 (r356661) +++ head/sys/netinet6/nd6_rtr.c Sun Jan 12 17:41:09 2020 (r356662) @@ -177,7 +177,7 @@ nd6_rs_input(struct mbuf *m, int off, int icmp6len) ip6 = mtod(m, struct ip6_hdr *); if (ip6->ip6_hlim != 255) { nd6log((LOG_ERR, - "nd6_rs_input: invalid hlim (%d) from %s to %s on %s\n", + "%s: invalid hlim (%d) from %s to %s on %s\n", __func__, ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); goto bad; @@ -205,7 +205,7 @@ nd6_rs_input(struct mbuf *m, int off, int icmp6len) nd6_option_init(nd_rs + 1, icmp6len, &ndopts); if (nd6_options(&ndopts) < 0) { nd6log((LOG_INFO, - "nd6_rs_input: invalid ND option, ignored\n")); + "%s: invalid ND option, ignored\n", __func__)); /* nd6_options have incremented stats */ goto freeit; } @@ -219,9 +219,8 @@ nd6_rs_input(struct mbuf *m, int off, int icmp6len) if (lladdr && ((ifp->if_addrlen + 2 + 7) & ~7) != lladdrlen) { nd6log((LOG_INFO, - "nd6_rs_input: lladdrlen mismatch for %s " - "(if %d, RS packet %d)\n", - ip6_sprintf(ip6bufs, &saddr6), + "%s: lladdrlen mismatch for %s (if %d, RS packet %d)\n", + __func__, ip6_sprintf(ip6bufs, &saddr6), ifp->if_addrlen, lladdrlen - 2)); goto bad; } @@ -377,7 +376,7 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) ip6 = mtod(m, struct ip6_hdr *); if (ip6->ip6_hlim != 255) { nd6log((LOG_ERR, - "nd6_ra_input: invalid hlim (%d) from %s to %s on %s\n", + "%s: invalid hlim (%d) from %s to %s on %s\n", __func__, ip6->ip6_hlim, ip6_sprintf(ip6bufs, &ip6->ip6_src), ip6_sprintf(ip6bufd, &ip6->ip6_dst), if_name(ifp))); goto bad; @@ -386,7 +385,7 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) saddr6 = ip6->ip6_src; if (!IN6_IS_ADDR_LINKLOCAL(&saddr6)) { nd6log((LOG_ERR, - "nd6_ra_input: src %s is not link-local\n", + "%s: src %s is not link-local\n", __func__, ip6_sprintf(ip6bufs, &saddr6))); goto bad; } @@ -405,7 +404,7 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) nd6_option_init(nd_ra + 1, icmp6len, &ndopts); if (nd6_options(&ndopts) < 0) { nd6log((LOG_INFO, - "nd6_ra_input: invalid ND option, ignored\n")); + "%s: invalid ND option, ignored\n", __func__)); /* nd6_options have incremented stats */ goto freeit; } @@ -482,26 +481,25 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) if (pi->nd_opt_pi_len != 4) { nd6log((LOG_INFO, - "nd6_ra_input: invalid option " - "len %d for prefix information option, " - "ignored\n", pi->nd_opt_pi_len)); + "%s: invalid option len %d for prefix " + "information option, ignored\n", __func__, + pi->nd_opt_pi_len)); continue; } if (128 < pi->nd_opt_pi_prefix_len) { nd6log((LOG_INFO, - "nd6_ra_input: invalid prefix " - "len %d for prefix information option, " - "ignored\n", pi->nd_opt_pi_prefix_len)); + "%s: invalid prefix len %d for prefix " + "information option, ignored\n", __func__, + pi->nd_opt_pi_prefix_len)); continue; } if (IN6_IS_ADDR_MULTICAST(&pi->nd_opt_pi_prefix) || IN6_IS_ADDR_LINKLOCAL(&pi->nd_opt_pi_prefix)) { nd6log((LOG_INFO, - "nd6_ra_input: invalid prefix " - "%s, ignored\n", - ip6_sprintf(ip6bufs, + "%s: invalid prefix %s, ignored\n", + __func__, ip6_sprintf(ip6bufs, &pi->nd_opt_pi_prefix))); continue; } @@ -538,8 +536,8 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) /* lower bound */ if (mtu < IPV6_MMTU) { - nd6log((LOG_INFO, "nd6_ra_input: bogus mtu option " - "mtu=%lu sent from %s, ignoring\n", + nd6log((LOG_INFO, "%s: bogus mtu option mtu=%lu sent " + "from %s, ignoring\n", __func__, mtu, ip6_sprintf(ip6bufs, &ip6->ip6_src))); goto skip; } @@ -557,9 +555,8 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) rt_updatemtu(ifp); } } else { - nd6log((LOG_INFO, "nd6_ra_input: bogus mtu " - "mtu=%lu sent from %s; " - "exceeds maxmtu %lu, ignoring\n", + nd6log((LOG_INFO, "%s: bogus mtu=%lu sent from %s; " + "exceeds maxmtu %lu, ignoring\n", __func__, mtu, ip6_sprintf(ip6bufs, &ip6->ip6_src), maxmtu)); } } @@ -580,8 +577,8 @@ nd6_ra_input(struct mbuf *m, int off, int icmp6len) if (lladdr && ((ifp->if_addrlen + 2 + 7) & ~7) != lladdrlen) { nd6log((LOG_INFO, - "nd6_ra_input: lladdrlen mismatch for %s " - "(if %d, RA packet %d)\n", ip6_sprintf(ip6bufs, &saddr6), + "%s: lladdrlen mismatch for %s (if %d, RA packet %d)\n", + __func__, ip6_sprintf(ip6bufs, &saddr6), ifp->if_addrlen, lladdrlen - 2)); goto bad; } @@ -1223,9 +1220,9 @@ in6_ifadd(struct nd_prefixctl *pr, int mcast) plen0 = in6_mask2len(&ib->ia_prefixmask.sin6_addr, NULL); if (prefixlen != plen0) { ifa_free(ifa); - nd6log((LOG_INFO, "in6_ifadd: wrong prefixlen for %s " - "(prefix=%d ifid=%d)\n", - if_name(ifp), prefixlen, 128 - plen0)); + nd6log((LOG_INFO, + "%s: wrong prefixlen for %s (prefix=%d ifid=%d)\n", + __func__, if_name(ifp), prefixlen, 128 - plen0)); return NULL; } @@ -1278,7 +1275,7 @@ in6_ifadd(struct nd_prefixctl *pr, int mcast) updateflags |= IN6_IFAUPDATE_DADDELAY; if ((error = in6_update_ifa(ifp, &ifra, NULL, updateflags)) != 0) { nd6log((LOG_ERR, - "in6_ifadd: failed to make ifaddr %s on %s (errno=%d)\n", + "%s: failed to make ifaddr %s on %s (errno=%d)\n", __func__, ip6_sprintf(ip6buf, &ifra.ifra_addr.sin6_addr), if_name(ifp), error)); return (NULL); /* ifaddr must not have been allocated. */ @@ -1383,8 +1380,8 @@ nd6_prelist_add(struct nd_prefixctl *pr, struct nd_def ND6_ONLINK_LOCK(); NET_EPOCH_ENTER(et); if ((error = nd6_prefix_onlink(new)) != 0) { - nd6log((LOG_ERR, "nd6_prelist_add: failed to make " - "the prefix %s/%d on-link on %s (errno=%d)\n", + nd6log((LOG_ERR, "%s: failed to make the prefix %s/%d " + "on-link on %s (errno=%d)\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, if_name(pr->ndpr_ifp), error)); /* proceed anyway. XXX: is it correct? */ @@ -1441,8 +1438,8 @@ nd6_prefix_del(struct nd_prefix *pr) ND6_ONLINK_LOCK(); if ((e = nd6_prefix_offlink(pr)) != 0) { nd6log((LOG_ERR, - "nd6_prefix_del: failed to make %s/%d offlink " - "on %s, errno=%d\n", + "%s: failed to make the prefix %s/%d offlink on %s " + "(errno=%d)\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, if_name(pr->ndpr_ifp), e)); /* what should we do? */ @@ -1515,9 +1512,8 @@ prelist_update(struct nd_prefixctl *new, struct nd_def ND6_ONLINK_LOCK(); if ((error = nd6_prefix_onlink(pr)) != 0) { nd6log((LOG_ERR, - "prelist_update: failed to make " - "the prefix %s/%d on-link on %s " - "(errno=%d)\n", + "%s: failed to make the prefix %s/%d " + "on-link on %s (errno=%d)\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, if_name(pr->ndpr_ifp), @@ -1537,8 +1533,8 @@ prelist_update(struct nd_prefixctl *new, struct nd_def error = nd6_prelist_add(new, dr, &pr); if (error != 0) { - nd6log((LOG_NOTICE, "prelist_update: " - "nd6_prelist_add failed for %s/%d on %s errno=%d\n", + nd6log((LOG_NOTICE, "%s: nd6_prelist_add() failed for " + "the prefix %s/%d on %s (errno=%d)\n", __func__, ip6_sprintf(ip6buf, &new->ndpr_prefix.sin6_addr), new->ndpr_plen, if_name(new->ndpr_ifp), error)); goto end; /* we should just give up in this case. */ @@ -1736,9 +1732,8 @@ prelist_update(struct nd_prefixctl *new, struct nd_def } if (ifidlen + pr->ndpr_plen != 128) { nd6log((LOG_INFO, - "prelist_update: invalid prefixlen " - "%d for %s, ignored\n", - pr->ndpr_plen, if_name(ifp))); + "%s: invalid prefixlen %d for %s, ignored\n", + __func__, pr->ndpr_plen, if_name(ifp))); goto end; } @@ -1764,10 +1759,9 @@ prelist_update(struct nd_prefixctl *new, struct nd_def if (V_ip6_use_tempaddr) { int e; if ((e = in6_tmpifadd(ia6, 1, 1)) != 0) { - nd6log((LOG_NOTICE, "prelist_update: " - "failed to create a temporary " - "address, errno=%d\n", - e)); + nd6log((LOG_NOTICE, "%s: failed to " + "create a temporary address " + "(errno=%d)\n", __func__, e)); } } ifa_free(&ia6->ia_ifa); @@ -1931,16 +1925,16 @@ restart: if ((flags & NDPRF_ONLINK) != 0 && (e = nd6_prefix_offlink(pr)) != 0) { nd6log((LOG_ERR, - "pfxlist_onlink_check: failed to " - "make %s/%d offlink, errno=%d\n", + "%s: failed to make %s/%d offlink " + "(errno=%d)\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, e)); } else if ((flags & NDPRF_ONLINK) == 0 && (e = nd6_prefix_onlink(pr)) != 0) { nd6log((LOG_ERR, - "pfxlist_onlink_check: failed to " - "make %s/%d onlink, errno=%d\n", + "%s: failed to make %s/%d onlink " + "(errno=%d)\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, e)); @@ -2065,9 +2059,9 @@ nd6_prefix_onlink_rtrequest(struct nd_prefix *pr, stru struct sockaddr_in6 *sin6; sin6 = (struct sockaddr_in6 *)ifa->ifa_addr; - nd6log((LOG_ERR, "nd6_prefix_onlink: failed to add " + nd6log((LOG_ERR, "%s: failed to add " "route for a prefix (%s/%d) on %s, gw=%s, mask=%s, " - "flags=%lx errno = %d\n", + "flags=%lx errno = %d\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, if_name(pr->ndpr_ifp), ip6_sprintf(ip6bufg, &sin6->sin6_addr), @@ -2159,8 +2153,8 @@ nd6_prefix_onlink(struct nd_prefix *pr) * interface. This should, of course, be rare though. */ nd6log((LOG_NOTICE, - "nd6_prefix_onlink: failed to find any ifaddr" - " to add route for a prefix(%s/%d) on %s\n", + "%s: failed to find any ifaddr to add route for a " + "prefix(%s/%d) on %s\n", __func__, ip6_sprintf(ip6buf, &pr->ndpr_prefix.sin6_addr), pr->ndpr_plen, if_name(ifp))); return (0); @@ -2259,10 +2253,9 @@ restart: ND6_RUNLOCK(); if ((e = nd6_prefix_onlink(opr)) != 0) { nd6log((LOG_ERR, - "nd6_prefix_offlink: failed to " - "recover a prefix %s/%d from %s " - "to %s (errno = %d)\n", - ip6_sprintf(ip6buf, + "%s: failed to recover a prefix " + "%s/%d from %s to %s (errno=%d)\n", + __func__, ip6_sprintf(ip6buf, &opr->ndpr_prefix.sin6_addr), opr->ndpr_plen, if_name(ifp), if_name(opr->ndpr_ifp), e)); @@ -2277,10 +2270,9 @@ restart: } else { /* XXX: can we still set the NDPRF_ONLINK flag? */ nd6log((LOG_ERR, - "nd6_prefix_offlink: failed to delete route: " - "%s/%d on %s (errno = %d)\n", - ip6_sprintf(ip6buf, &sa6.sin6_addr), pr->ndpr_plen, - if_name(ifp), error)); + "%s: failed to delete route: %s/%d on %s (errno=%d)\n", + __func__, ip6_sprintf(ip6buf, &sa6.sin6_addr), + pr->ndpr_plen, if_name(ifp), error)); } if (a_failure) @@ -2316,8 +2308,8 @@ in6_tmpifadd(const struct in6_ifaddr *ia0, int forcege again: if (in6_get_tmpifid(ifp, (u_int8_t *)randid, (const u_int8_t *)&ia0->ia_addr.sin6_addr.s6_addr[8], forcegen)) { - nd6log((LOG_NOTICE, "in6_tmpifadd: failed to find a good " - "random IFID\n")); + nd6log((LOG_NOTICE, "%s: failed to find a good random IFID\n", + __func__)); return (EINVAL); } ifra.ifra_addr.sin6_addr.s6_addr32[2] |= @@ -2339,8 +2331,8 @@ in6_tmpifadd(const struct in6_ifaddr *ia0, int forcege } /* Give up. Something strange should have happened. */ - nd6log((LOG_NOTICE, "in6_tmpifadd: failed to " - "find a unique random IFID\n")); + nd6log((LOG_NOTICE, "%s: failed to find a unique random IFID\n", + __func__)); return (EEXIST); } @@ -2393,8 +2385,8 @@ in6_tmpifadd(const struct in6_ifaddr *ia0, int forcege newia = in6ifa_ifpwithaddr(ifp, &ifra.ifra_addr.sin6_addr); if (newia == NULL) { /* XXX: can it happen? */ nd6log((LOG_ERR, - "in6_tmpifadd: ifa update succeeded, but we got " - "no ifaddr\n")); + "%s: ifa update succeeded, but we got no ifaddr\n", + __func__)); return (EINVAL); /* XXX */ } newia->ia6_ndpr = ia0->ia6_ndpr; From owner-svn-src-all@freebsd.org Sun Jan 12 17:52:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 32A0A1DD49B; Sun, 12 Jan 2020 17:52:34 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wknt0ZmLz4dpk; Sun, 12 Jan 2020 17:52:34 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0F33D1F76C; Sun, 12 Jan 2020 17:52:34 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CHqXTJ079405; Sun, 12 Jan 2020 17:52:33 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CHqXrL079401; Sun, 12 Jan 2020 17:52:33 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001121752.00CHqXrL079401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Sun, 12 Jan 2020 17:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356663 - in head/sys: netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: in head/sys: netinet netinet6 X-SVN-Commit-Revision: 356663 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 17:52:34 -0000 Author: tuexen Date: Sun Jan 12 17:52:32 2020 New Revision: 356663 URL: https://svnweb.freebsd.org/changeset/base/356663 Log: Fix race when accepting TCP connections. When expanding a SYN-cache entry to a socket/inp a two step approach was taken: 1) The local address was filled in, then the inp was added to the hash table. 2) The remote address was filled in and the inp was relocated in the hash table. Before the epoch changes, a write lock was held when this happens and the code looking up entries was holding a corresponding read lock. Since the read lock is gone away after the introduction of the epochs, the half populated inp was found during lookup. This resulted in processing TCP segments in the context of the wrong TCP connection. This patch changes the above procedure in a way that the inp is fully populated before inserted into the hash table. Thanks to Paul for reporting the issue on the net@ mailing list and for testing the patch! Reviewed by: rrs@ MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D22971 Modified: head/sys/netinet/in_pcb.c head/sys/netinet/in_pcb.h head/sys/netinet/tcp_syncache.c head/sys/netinet6/in6_pcb.c head/sys/netinet6/in6_pcb.h Modified: head/sys/netinet/in_pcb.c ============================================================================== --- head/sys/netinet/in_pcb.c Sun Jan 12 17:41:09 2020 (r356662) +++ head/sys/netinet/in_pcb.c Sun Jan 12 17:52:32 2020 (r356663) @@ -972,7 +972,7 @@ in_pcbbind_setup(struct inpcb *inp, struct sockaddr *n */ int in_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr *nam, - struct ucred *cred, struct mbuf *m) + struct ucred *cred, struct mbuf *m, bool rehash) { u_short lport, fport; in_addr_t laddr, faddr; @@ -991,6 +991,8 @@ in_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr /* Do the initial binding of the local address if required. */ if (inp->inp_laddr.s_addr == INADDR_ANY && inp->inp_lport == 0) { + KASSERT(rehash == true, + ("Rehashing required for unbound inps")); inp->inp_lport = lport; inp->inp_laddr.s_addr = laddr; if (in_pcbinshash(inp) != 0) { @@ -1005,7 +1007,11 @@ in_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr inp->inp_laddr.s_addr = laddr; inp->inp_faddr.s_addr = faddr; inp->inp_fport = fport; - in_pcbrehash_mbuf(inp, m); + if (rehash) { + in_pcbrehash_mbuf(inp, m); + } else { + in_pcbinshash_mbuf(inp, m); + } if (anonport) inp->inp_flags |= INP_ANONPORT; @@ -1016,7 +1022,7 @@ int in_pcbconnect(struct inpcb *inp, struct sockaddr *nam, struct ucred *cred) { - return (in_pcbconnect_mbuf(inp, nam, cred, NULL)); + return (in_pcbconnect_mbuf(inp, nam, cred, NULL, true)); } /* @@ -2500,7 +2506,7 @@ in_pcblookup_mbuf(struct inpcbinfo *pcbinfo, struct in * Insert PCB onto various hash lists. */ static int -in_pcbinshash_internal(struct inpcb *inp, int do_pcbgroup_update) +in_pcbinshash_internal(struct inpcb *inp, struct mbuf *m) { struct inpcbhead *pcbhash; struct inpcbporthead *pcbporthash; @@ -2566,35 +2572,27 @@ in_pcbinshash_internal(struct inpcb *inp, int do_pcbgr CK_LIST_INSERT_HEAD(pcbhash, inp, inp_hash); inp->inp_flags |= INP_INHASHLIST; #ifdef PCBGROUP - if (do_pcbgroup_update) + if (m != NULL) { + in_pcbgroup_update_mbuf(inp, m); + } else { in_pcbgroup_update(inp); + } #endif return (0); } -/* - * For now, there are two public interfaces to insert an inpcb into the hash - * lists -- one that does update pcbgroups, and one that doesn't. The latter - * is used only in the TCP syncache, where in_pcbinshash is called before the - * full 4-tuple is set for the inpcb, and we don't want to install in the - * pcbgroup until later. - * - * XXXRW: This seems like a misfeature. in_pcbinshash should always update - * connection groups, and partially initialised inpcbs should not be exposed - * to either reservation hash tables or pcbgroups. - */ int in_pcbinshash(struct inpcb *inp) { - return (in_pcbinshash_internal(inp, 1)); + return (in_pcbinshash_internal(inp, NULL)); } int -in_pcbinshash_nopcbgroup(struct inpcb *inp) +in_pcbinshash_mbuf(struct inpcb *inp, struct mbuf *m) { - return (in_pcbinshash_internal(inp, 0)); + return (in_pcbinshash_internal(inp, m)); } /* Modified: head/sys/netinet/in_pcb.h ============================================================================== --- head/sys/netinet/in_pcb.h Sun Jan 12 17:41:09 2020 (r356662) +++ head/sys/netinet/in_pcb.h Sun Jan 12 17:52:32 2020 (r356663) @@ -832,7 +832,7 @@ int in_pcbbind_setup(struct inpcb *, struct sockaddr * u_short *, struct ucred *); int in_pcbconnect(struct inpcb *, struct sockaddr *, struct ucred *); int in_pcbconnect_mbuf(struct inpcb *, struct sockaddr *, struct ucred *, - struct mbuf *); + struct mbuf *, bool); int in_pcbconnect_setup(struct inpcb *, struct sockaddr *, in_addr_t *, u_short *, in_addr_t *, u_short *, struct inpcb **, struct ucred *); @@ -841,7 +841,7 @@ void in_pcbdisconnect(struct inpcb *); void in_pcbdrop(struct inpcb *); void in_pcbfree(struct inpcb *); int in_pcbinshash(struct inpcb *); -int in_pcbinshash_nopcbgroup(struct inpcb *); +int in_pcbinshash_mbuf(struct inpcb *, struct mbuf *); int in_pcbladdr(struct inpcb *, struct in_addr *, struct in_addr *, struct ucred *); struct inpcb * Modified: head/sys/netinet/tcp_syncache.c ============================================================================== --- head/sys/netinet/tcp_syncache.c Sun Jan 12 17:41:09 2020 (r356662) +++ head/sys/netinet/tcp_syncache.c Sun Jan 12 17:52:32 2020 (r356663) @@ -841,34 +841,8 @@ syncache_socket(struct syncache *sc, struct socket *ls #endif } - /* - * Install in the reservation hash table for now, but don't yet - * install a connection group since the full 4-tuple isn't yet - * configured. - */ inp->inp_lport = sc->sc_inc.inc_lport; - if ((error = in_pcbinshash_nopcbgroup(inp)) != 0) { - /* - * Undo the assignments above if we failed to - * put the PCB on the hash lists. - */ #ifdef INET6 - if (sc->sc_inc.inc_flags & INC_ISIPV6) - inp->in6p_laddr = in6addr_any; - else -#endif - inp->inp_laddr.s_addr = INADDR_ANY; - inp->inp_lport = 0; - if ((s = tcp_log_addrs(&sc->sc_inc, NULL, NULL, NULL))) { - log(LOG_DEBUG, "%s; %s: in_pcbinshash failed " - "with error %i\n", - s, __func__, error); - free(s, M_TCPLOG); - } - INP_HASH_WUNLOCK(&V_tcbinfo); - goto abort; - } -#ifdef INET6 if (inp->inp_vflag & INP_IPV6PROTO) { struct inpcb *oinp = sotoinpcb(lso); @@ -900,7 +874,7 @@ syncache_socket(struct syncache *sc, struct socket *ls if (IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) inp->in6p_laddr = sc->sc_inc.inc6_laddr; if ((error = in6_pcbconnect_mbuf(inp, (struct sockaddr *)&sin6, - thread0.td_ucred, m)) != 0) { + thread0.td_ucred, m, false)) != 0) { inp->in6p_laddr = laddr6; if ((s = tcp_log_addrs(&sc->sc_inc, NULL, NULL, NULL))) { log(LOG_DEBUG, "%s; %s: in6_pcbconnect failed " @@ -940,7 +914,7 @@ syncache_socket(struct syncache *sc, struct socket *ls if (inp->inp_laddr.s_addr == INADDR_ANY) inp->inp_laddr = sc->sc_inc.inc_laddr; if ((error = in_pcbconnect_mbuf(inp, (struct sockaddr *)&sin, - thread0.td_ucred, m)) != 0) { + thread0.td_ucred, m, false)) != 0) { inp->inp_laddr = laddr; if ((s = tcp_log_addrs(&sc->sc_inc, NULL, NULL, NULL))) { log(LOG_DEBUG, "%s; %s: in_pcbconnect failed " Modified: head/sys/netinet6/in6_pcb.c ============================================================================== --- head/sys/netinet6/in6_pcb.c Sun Jan 12 17:41:09 2020 (r356662) +++ head/sys/netinet6/in6_pcb.c Sun Jan 12 17:52:32 2020 (r356663) @@ -411,7 +411,7 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr *nam, */ int in6_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr *nam, - struct ucred *cred, struct mbuf *m) + struct ucred *cred, struct mbuf *m, bool rehash) { struct inpcbinfo *pcbinfo = inp->inp_pcbinfo; struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)nam; @@ -437,6 +437,8 @@ in6_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr } if (IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr)) { if (inp->inp_lport == 0) { + KASSERT(rehash == true, + ("Rehashing required for unbound inps")); error = in6_pcbbind(inp, (struct sockaddr *)0, cred); if (error) return (error); @@ -451,7 +453,11 @@ in6_pcbconnect_mbuf(struct inpcb *inp, struct sockaddr inp->inp_flow |= (htonl(ip6_randomflowlabel()) & IPV6_FLOWLABEL_MASK); - in_pcbrehash_mbuf(inp, m); + if (rehash) { + in_pcbrehash_mbuf(inp, m); + } else { + in_pcbinshash_mbuf(inp, m); + } return (0); } @@ -460,7 +466,7 @@ int in6_pcbconnect(struct inpcb *inp, struct sockaddr *nam, struct ucred *cred) { - return (in6_pcbconnect_mbuf(inp, nam, cred, NULL)); + return (in6_pcbconnect_mbuf(inp, nam, cred, NULL, true)); } void Modified: head/sys/netinet6/in6_pcb.h ============================================================================== --- head/sys/netinet6/in6_pcb.h Sun Jan 12 17:41:09 2020 (r356662) +++ head/sys/netinet6/in6_pcb.h Sun Jan 12 17:52:32 2020 (r356663) @@ -86,7 +86,7 @@ void in6_losing(struct inpcb *); int in6_pcbbind(struct inpcb *, struct sockaddr *, struct ucred *); int in6_pcbconnect(struct inpcb *, struct sockaddr *, struct ucred *); int in6_pcbconnect_mbuf(struct inpcb *, struct sockaddr *, - struct ucred *, struct mbuf *); + struct ucred *, struct mbuf *, bool); void in6_pcbdisconnect(struct inpcb *); struct inpcb * in6_pcblookup_local(struct inpcbinfo *, From owner-svn-src-all@freebsd.org Sun Jan 12 19:10:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A33BB1DF1FF; Sun, 12 Jan 2020 19:10:53 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47wmXD2rlnz4jJV; Sun, 12 Jan 2020 19:10:52 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id 00CJAido071538 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Sun, 12 Jan 2020 21:10:47 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 00CJAido071538 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id 00CJAiSr071537; Sun, 12 Jan 2020 21:10:44 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 12 Jan 2020 21:10:44 +0200 From: Konstantin Belousov To: Mateusz Guzik Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356656 - in head/sys: kern sys Message-ID: <20200112191044.GB2068@kib.kiev.ua> References: <202001120609.00C69Anp050819@repo.freebsd.org> <20200112090010.GA2068@kib.kiev.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.3 X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on tom.home X-Rspamd-Queue-Id: 47wmXD2rlnz4jJV X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com X-Spamd-Result: default: False [-2.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FREEMAIL_FROM(0.00)[gmail.com]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; HAS_XAW(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; IP_SCORE_FREEMAIL(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(0.00)[ip: (-3.03), ipnet: 2001:470::/32(-4.67), asn: 6939(-3.57), country: US(-0.05)]; FREEMAIL_TO(0.00)[gmail.com]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 19:10:53 -0000 On Sun, Jan 12, 2020 at 11:08:02AM +0100, Mateusz Guzik wrote: > On 1/12/20, Konstantin Belousov wrote: > > On Sun, Jan 12, 2020 at 06:09:10AM +0000, Mateusz Guzik wrote: > >> Author: mjg > >> Date: Sun Jan 12 06:09:10 2020 > >> New Revision: 356656 > >> URL: https://svnweb.freebsd.org/changeset/base/356656 > >> > >> Log: > >> Add "panicked" boolean which can be tested instead of panicstr > >> > >> The test is performed all the time and reading entire panicstr to do it > >> wastes space. > > What space does it waste ? The space in the read-mostly section ? > > > > And what is the difference between reading a pointer vs. reading a byte ? > > CPU still has to read the whole cache line. > > > > Note the annotation with __read_frequently which groups fields. > > Currently it results in the following (with tail filled up from > __read_mostly): > > ---------------- > ffffffff80c01000 D hc_source_mask > ffffffff80c01004 D pti pti should be remove from __read_frequently, probably moving it to __read_mostly is fine, and changed to bool as well. > ffffffff80c01008 D locks_delay > ffffffff80c0100c D locks_delay_retries > ffffffff80c0100e D locks_delay_loops > ffffffff80c01010 d fortuna_concurrent_read > ffffffff80c01011 D random_chachamode > ffffffff80c01012 D systrace_enabled > ffffffff80c01013 D lockstat_enabled > ffffffff80c01014 D dtrace_malloc_enabled > ffffffff80c01015 D racct_enable > ffffffff80c01016 D sdt_probes_enabled > ffffffff80c01017 D panicked > ffffffff80c01018 D kdb_active > ffffffff80c01019 D trap_enotcap > ffffffff80c0101a D audit_syscalls_enabled > ffffffff80c01020 D cam_dflags > ffffffff80c01028 d epoch_inited > ffffffff80c01030 d rs_epoch > ffffffff80c01038 d biozone > ---------------- > > Should panicstr land here it would avoidably take up 8 bytes instead of 1. > > -- > Mateusz Guzik From owner-svn-src-all@freebsd.org Sun Jan 12 20:12:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45A341E9069; Sun, 12 Jan 2020 20:12:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wnvR17LXz4mHC; Sun, 12 Jan 2020 20:12:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2214B2113B; Sun, 12 Jan 2020 20:12:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CKCZ30064552; Sun, 12 Jan 2020 20:12:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CKCZDW064551; Sun, 12 Jan 2020 20:12:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001122012.00CKCZDW064551@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Sun, 12 Jan 2020 20:12:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356664 - stable/12/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/cddl/contrib/opensolaris/lib/libdtrace/common X-SVN-Commit-Revision: 356664 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 20:12:35 -0000 Author: markj Date: Sun Jan 12 20:12:34 2020 New Revision: 356664 URL: https://svnweb.freebsd.org/changeset/base/356664 Log: MFC r356187: Add libdtrace support for arm64 USDT probes. Modified: stable/12/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Directory Properties: stable/12/ (props changed) Modified: stable/12/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- stable/12/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Jan 12 17:52:32 2020 (r356663) +++ stable/12/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Sun Jan 12 20:12:34 2020 (r356664) @@ -229,9 +229,10 @@ prepare_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, for (j = 0; j < nrel; j++) { #if defined(__aarch64__) -/* XXX */ - printf("%s:%s(%d): aarch64 not implemented\n", - __FUNCTION__, __FILE__, __LINE__); + rel->r_offset = s->dofs_offset + + dofr[j].dofr_offset; + rel->r_info = ELF32_R_INFO(count + dep->de_global, + R_ARM_REL32); #elif defined(__arm__) /* XXX */ printf("%s:%s(%d): arm not implemented\n", @@ -425,7 +426,10 @@ prepare_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, for (j = 0; j < nrel; j++) { #if defined(__aarch64__) -/* XXX */ + rel->r_offset = s->dofs_offset + + dofr[j].dofr_offset; + rel->r_info = ELF64_R_INFO(count + dep->de_global, + R_AARCH64_PREL64); #elif defined(__arm__) /* XXX */ #elif defined(__mips__) @@ -541,6 +545,8 @@ dump_elf32(dtrace_hdl_t *dtp, const dof_hdr_t *dof, in elf_file.ehdr.e_machine = EM_SPARC; #elif defined(__i386) || defined(__amd64) elf_file.ehdr.e_machine = EM_386; +#elif defined(__aarch64__) + elf_file.ehdr.e_machine = EM_AARCH64; #endif elf_file.ehdr.e_version = EV_CURRENT; elf_file.ehdr.e_shoff = sizeof (Elf32_Ehdr); @@ -687,6 +693,8 @@ dump_elf64(dtrace_hdl_t *dtp, const dof_hdr_t *dof, in elf_file.ehdr.e_machine = EM_SPARCV9; #elif defined(__i386) || defined(__amd64) elf_file.ehdr.e_machine = EM_AMD64; +#elif defined(__aarch64__) + elf_file.ehdr.e_machine = EM_AARCH64; #endif elf_file.ehdr.e_version = EV_CURRENT; elf_file.ehdr.e_shoff = sizeof (Elf64_Ehdr); @@ -802,14 +810,66 @@ dt_symtab_lookup(Elf_Data *data_sym, int start, int en } #if defined(__aarch64__) -/* XXX */ +#define DT_OP_NOP 0xd503201f +#define DT_OP_RET 0xd65f03c0 +#define DT_OP_CALL26 0x94000000 +#define DT_OP_JUMP26 0x14000000 + static int dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela, uint32_t *off) { - printf("%s:%s(%d): aarch64 not implemented\n", __FUNCTION__, __FILE__, - __LINE__); - return (-1); + uint32_t *ip; + + /* + * Ensure that the offset is aligned on an instruction boundary. + */ + if ((rela->r_offset & (sizeof (uint32_t) - 1)) != 0) + return (-1); + + /* + * We only know about some specific relocation types. + * We also recognize relocation type NONE, since that gets used for + * relocations of USDT probes, and we might be re-processing a file. + */ + if (GELF_R_TYPE(rela->r_info) != R_AARCH64_CALL26 && + GELF_R_TYPE(rela->r_info) != R_AARCH64_JUMP26 && + GELF_R_TYPE(rela->r_info) != R_AARCH64_NONE) + return (-1); + + ip = (uint32_t *)(p + rela->r_offset); + + /* + * We may have already processed this object file in an earlier linker + * invocation. Check to see if the present instruction sequence matches + * the one we would install below. + */ + if (ip[0] == DT_OP_NOP || ip[0] == DT_OP_RET) + return (0); + + /* + * We only expect call instructions with a displacement of 0, or a jump + * instruction acting as a tail call. + */ + if (ip[0] != DT_OP_CALL26 && ip[0] != DT_OP_JUMP26) { + dt_dprintf("found %x instead of a call or jmp instruction at " + "%llx\n", ip[0], (u_longlong_t)rela->r_offset); + return (-1); + } + + /* + * On arm64, we do not have to differentiate between regular probes and + * is-enabled probes. Both cases are encoded as a regular branch for + * non-tail call locations, and a jump for tail call locations. Calls + * are to be converted into a no-op whereas jumps should become a + * return. + */ + if (ip[0] == DT_OP_CALL26) + ip[0] = DT_OP_NOP; + else + ip[0] = DT_OP_RET; + + return (0); } #elif defined(__arm__) /* XXX */ @@ -1254,6 +1314,8 @@ process_obj(dtrace_hdl_t *dtp, const char *obj, int *e emachine1 = emachine2 = EM_SPARCV9; #elif defined(__i386) || defined(__amd64) emachine1 = emachine2 = EM_AMD64; +#elif defined(__aarch64__) + emachine1 = emachine2 = EM_AARCH64; #endif symsize = sizeof (Elf64_Sym); } else { From owner-svn-src-all@freebsd.org Sun Jan 12 20:19:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 65CE11E9252; Sun, 12 Jan 2020 20:19:01 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wp2s26lCz4mdM; Sun, 12 Jan 2020 20:19:01 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 440E521145; Sun, 12 Jan 2020 20:19:01 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CKJ1WJ065392; Sun, 12 Jan 2020 20:19:01 GMT (envelope-from sbruno@FreeBSD.org) Received: (from sbruno@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CKJ0Od065387; Sun, 12 Jan 2020 20:19:00 GMT (envelope-from sbruno@FreeBSD.org) Message-Id: <202001122019.00CKJ0Od065387@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: sbruno set sender to sbruno@FreeBSD.org using -f From: Sean Bruno Date: Sun, 12 Jan 2020 20:19:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356665 - in stable/12: share/man/man4 sys/dev/sound/pci/hda X-SVN-Group: stable-12 X-SVN-Commit-Author: sbruno X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/dev/sound/pci/hda X-SVN-Commit-Revision: 356665 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 20:19:01 -0000 Author: sbruno Date: Sun Jan 12 20:19:00 2020 New Revision: 356665 URL: https://svnweb.freebsd.org/changeset/base/356665 Log: MFC r350078 Add the ability to accept the default pin widget configuration to help with various laptops using hdaa(4) sound devices. We don't seem to know the "correct" configurations for these devices and the defaults are far superiour, e.g. they work if you don't nuke the default configs. Modified: stable/12/share/man/man4/snd_hda.4 stable/12/sys/dev/sound/pci/hda/hdaa.c stable/12/sys/dev/sound/pci/hda/hdaa.h Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/snd_hda.4 ============================================================================== --- stable/12/share/man/man4/snd_hda.4 Sun Jan 12 20:12:34 2020 (r356664) +++ stable/12/share/man/man4/snd_hda.4 Sun Jan 12 20:19:00 2020 (r356665) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 1, 2018 +.Dd July 16, 2019 .Dt SND_HDA 4 .Os .Sh NAME @@ -153,6 +153,12 @@ The and .Dq Li ovref Ns Ar X options control the voltage used to power external microphones. +.It Va dev.hdaa.%d.init_clear +Zero out the pin widget config setup by the system. +Some systems seem to have unuseable audio devices if the pin widgit +configuration is cleared. +Set this value to 0 to accept the default configuration values setup by the +BIOS. .It Va hint.hdaa.%d.gpio_config Overrides audio function GPIO pins configuration set by BIOS. May be specified as a set of space-separated Modified: stable/12/sys/dev/sound/pci/hda/hdaa.c ============================================================================== --- stable/12/sys/dev/sound/pci/hda/hdaa.c Sun Jan 12 20:12:34 2020 (r356664) +++ stable/12/sys/dev/sound/pci/hda/hdaa.c Sun Jan 12 20:19:00 2020 (r356665) @@ -5034,11 +5034,13 @@ hdaa_audio_prepare_pin_ctrl(struct hdaa_devinfo *devin pincap = w->wclass.pin.cap; /* Disable everything. */ - w->wclass.pin.ctrl &= ~( - HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE | - HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE | - HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE | - HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK); + if (devinfo->init_clear) { + w->wclass.pin.ctrl &= ~( + HDA_CMD_SET_PIN_WIDGET_CTRL_HPHN_ENABLE | + HDA_CMD_SET_PIN_WIDGET_CTRL_OUT_ENABLE | + HDA_CMD_SET_PIN_WIDGET_CTRL_IN_ENABLE | + HDA_CMD_SET_PIN_WIDGET_CTRL_VREF_ENABLE_MASK); + } if (w->enable == 0) { /* Pin is unused so left it disabled. */ @@ -6671,6 +6673,10 @@ hdaa_attach(device_t dev) SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "reconfig", CTLTYPE_INT | CTLFLAG_RW, dev, 0, hdaa_sysctl_reconfig, "I", "Reprocess configuration"); + SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, + "init_clear", CTLFLAG_RW, + &devinfo->init_clear, 1,"Clear initial pin widget configuration"); bus_generic_attach(dev); return (0); } Modified: stable/12/sys/dev/sound/pci/hda/hdaa.h ============================================================================== --- stable/12/sys/dev/sound/pci/hda/hdaa.h Sun Jan 12 20:12:34 2020 (r356664) +++ stable/12/sys/dev/sound/pci/hda/hdaa.h Sun Jan 12 20:19:00 2020 (r356665) @@ -214,6 +214,7 @@ struct hdaa_devinfo { struct hdaa_chan *chans; struct callout poll_jack; int poll_ival; + uint32_t init_clear; }; #define HDAA_CHN_RUNNING 0x00000001 From owner-svn-src-all@freebsd.org Sun Jan 12 20:25:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A00911E9647; Sun, 12 Jan 2020 20:25:12 +0000 (UTC) (envelope-from gad@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wpB03ht0z4nCV; Sun, 12 Jan 2020 20:25:12 +0000 (UTC) (envelope-from gad@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7A2A521323; Sun, 12 Jan 2020 20:25:12 +0000 (UTC) (envelope-from gad@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CKPCk4071373; Sun, 12 Jan 2020 20:25:12 GMT (envelope-from gad@FreeBSD.org) Received: (from gad@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CKPBSW071370; Sun, 12 Jan 2020 20:25:11 GMT (envelope-from gad@FreeBSD.org) Message-Id: <202001122025.00CKPBSW071370@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gad set sender to gad@FreeBSD.org using -f From: Garance A Drosehn Date: Sun, 12 Jan 2020 20:25:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356666 - in head/usr.bin: factor primes X-SVN-Group: head X-SVN-Commit-Author: gad X-SVN-Commit-Paths: in head/usr.bin: factor primes X-SVN-Commit-Revision: 356666 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 20:25:12 -0000 Author: gad Date: Sun Jan 12 20:25:11 2020 New Revision: 356666 URL: https://svnweb.freebsd.org/changeset/base/356666 Log: Fix the way 'factor' behaves when using OpenSSL to match the description of how it works when not compiled with OpenSSL. Also, allow users to specify a hexadecimal number by using a prefix of '0x'. Before this, users could only specify a hexadecimal value if that value included a hex digit ('a'-'f') in the value. PR: 243136 Submitted by: Steve Kargl Reviewed by: gad MFC after: 3 weeks Modified: head/usr.bin/factor/factor.6 head/usr.bin/factor/factor.c head/usr.bin/primes/primes.c Modified: head/usr.bin/factor/factor.6 ============================================================================== --- head/usr.bin/factor/factor.6 Sun Jan 12 20:19:00 2020 (r356665) +++ head/usr.bin/factor/factor.6 Sun Jan 12 20:25:11 2020 (r356666) @@ -36,7 +36,7 @@ .\" .\" chongo /\oo/\ .\" -.Dd October 10, 2002 +.Dd January 12, 2020 .Dt FACTOR 6 .Os .Sh NAME @@ -67,11 +67,22 @@ When .Nm is invoked with no arguments, .Nm -reads numbers, one per line, from standard input, until end of file or error. +reads numbers, one per line, from standard input until end of file or 0 +is entered or an error occurs. Leading white-space and empty lines are ignored. +.Pp Numbers may be preceded by a single .Ql + . +Numbers can be either decimal or hexadecimal strings where the longest +leading substring is used. Numbers are terminated by a non-digit character (such as a newline). +If the string contains only decimal digits, it is treated as a +decimal representation for a number. +A hexadecimal string can contain an optional +.Em 0x +or +.Em 0X +prefix. After a number is read, it is factored. .Pp The @@ -89,7 +100,7 @@ The value must not be greater than the maximum. The default and maximum value of .Ar stop -is 3825123056546413050. +is 18446744073709551615. .Pp When the .Nm primes Modified: head/usr.bin/factor/factor.c ============================================================================== --- head/usr.bin/factor/factor.c Sun Jan 12 20:19:00 2020 (r356665) +++ head/usr.bin/factor/factor.c Sun Jan 12 20:25:11 2020 (r356666) @@ -71,6 +71,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -97,15 +98,16 @@ typedef u_long BN_ULONG; #define BN_is_one(v) (*(v) == 1) #define BN_mod_word(a, b) (*(a) % (b)) -static int BN_dec2bn(BIGNUM **a, const char *str); -static int BN_hex2bn(BIGNUM **a, const char *str); +static int BN_dec2bn(BIGNUM **, const char *); +static int BN_hex2bn(BIGNUM **, const char *); static BN_ULONG BN_div_word(BIGNUM *, BN_ULONG); static void BN_print_fp(FILE *, const BIGNUM *); #endif static void BN_print_dec_fp(FILE *, const BIGNUM *); - +static void convert_str2bn(BIGNUM **, char *); +static bool is_hex_str(char *); static void pr_fact(BIGNUM *); /* print factors of a value */ static void pr_print(BIGNUM *); /* print a prime */ static void usage(void); @@ -148,21 +150,13 @@ main(int argc, char *argv[]) for (p = buf; isblank(*p); ++p); if (*p == '\n' || *p == '\0') continue; - if (*p == '-') - errx(1, "negative numbers aren't permitted."); - if (BN_dec2bn(&val, buf) == 0 && - BN_hex2bn(&val, buf) == 0) - errx(1, "%s: illegal numeric format.", buf); + convert_str2bn(&val, p); pr_fact(val); } /* Factor the arguments. */ else - for (; *argv != NULL; ++argv) { - if (argv[0][0] == '-') - errx(1, "negative numbers aren't permitted."); - if (BN_dec2bn(&val, argv[0]) == 0 && - BN_hex2bn(&val, argv[0]) == 0) - errx(1, "%s: illegal numeric format.", argv[0]); + for (p = *argv; p != NULL; p = *++argv) { + convert_str2bn(&val, p); pr_fact(val); } exit(0); @@ -346,7 +340,7 @@ BN_dec2bn(BIGNUM **a, const char *str) errno = 0; **a = strtoul(str, &p, 10); - return (errno == 0 && (*p == '\n' || *p == '\0')); + return (errno == 0 ? 1 : 0); /* OpenSSL returns 0 on error! */ } static int @@ -356,7 +350,7 @@ BN_hex2bn(BIGNUM **a, const char *str) errno = 0; **a = strtoul(str, &p, 16); - return (errno == 0 && (*p == '\n' || *p == '\0')); + return (errno == 0 ? 1 : 0); /* OpenSSL returns 0 on error! */ } static BN_ULONG @@ -370,3 +364,46 @@ BN_div_word(BIGNUM *a, BN_ULONG b) } #endif + +/* + * Scan the string from left-to-right to see if the longest substring + * is a valid hexadecimal number. + */ +static bool +is_hex_str(char *str) +{ + char c, *p; + bool saw_hex = false; + + for (p = str; *p; p++) { + if (isdigit(*p)) + continue; + c = tolower(*p); + if (c >= 'a' && c <= 'f') { + saw_hex = true; + continue; + } + break; /* Not a hexadecimal digit. */ + } + return saw_hex; +} + +/* Convert string pointed to by *str to a bignum. */ +static void +convert_str2bn(BIGNUM **val, char *p) +{ + int n = 0; + + if (*p == '+') p++; + if (*p == '-') + errx(1, "negative numbers aren't permitted."); + if (*p == '0') { + p++; + if (*p == 'x' || *p == 'X') + n = BN_hex2bn(val, ++p); + } else { + n = is_hex_str(p) ? BN_hex2bn(val, p) : BN_dec2bn(val, p); + } + if (n == 0) + errx(1, "%s: illegal numeric format.", p); +} Modified: head/usr.bin/primes/primes.c ============================================================================== --- head/usr.bin/primes/primes.c Sun Jan 12 20:19:00 2020 (r356665) +++ head/usr.bin/primes/primes.c Sun Jan 12 20:25:11 2020 (r356666) @@ -55,8 +55,8 @@ static const char rcsid[] = * primes [-h] [start [stop]] * * Print primes >= start and < stop. If stop is omitted, - * the value 4294967295 (2^32-1) is assumed. If start is - * omitted, start is read from standard input. + * the value 18446744073709551615 (2^64-1) is assumed. If + * start is omitted, start is read from standard input. * * validation check: there are 664579 primes between 0 and 10^7 */ From owner-svn-src-all@freebsd.org Sun Jan 12 20:47:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E97261EA370; Sun, 12 Jan 2020 20:47:39 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wpgv5wbxz4pKv; Sun, 12 Jan 2020 20:47:39 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C202C216EA; Sun, 12 Jan 2020 20:47:39 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CKldg3084097; Sun, 12 Jan 2020 20:47:39 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CKld5M084094; Sun, 12 Jan 2020 20:47:39 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202001122047.00CKld5M084094@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sun, 12 Jan 2020 20:47:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356667 - in head: lib/libc/sys sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head: lib/libc/sys sys/kern sys/sys X-SVN-Commit-Revision: 356667 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 20:47:40 -0000 Author: cem Date: Sun Jan 12 20:47:38 2020 New Revision: 356667 URL: https://svnweb.freebsd.org/changeset/base/356667 Log: getrandom(2): Add Linux GRND_INSECURE API flag Treat it as a synonym for GRND_NONBLOCK. The reasoning is this: We have two choices for handling Linux's GRND_INSECURE API flag. 1. We could ignore it completely (like GRND_RANDOM). However, this might produce the surprising result of GRND_INSECURE requests blocking, when the Linux API does not block. 2. Alternatively, we could treat GRND_INSECURE requests as requests for GRND_NONBLOCk. Here, the surprising result for Linux programs is that invocations with unseeded random(4) will produce EAGAIN, rather than garbage. Honoring the flag in the way Linux does seems fraught. If we actually use the output of a random(4) implementation prior to seeding, we leak some entropy (in an information theory and also practical sense) from what will be the initial seed to attackers (or allow attackers to arbitrary DoS initial seeding, if we don't leak). This seems unacceptable -- it defeats the purpose of blocking on initial seeding. Secondary to that concern, before seeding we may have arbitrarily little entropy collected; producing output from zero or a handful of entropy bits does not seem particularly useful to userspace. If userspace can accept garbage, insecure, non-random bytes, they can create their own insecure garbage with srandom(time(NULL)) or similar. Any program which would be satisfied with a 3-bit key CTR stream has no need for CSPRNG bytes. So asking the kernel to produce such an output from the secure getrandom(2) API seems inane. For now, we've elected to emulate GRND_INSECURE as an alternative spelling of GRND_NONBLOCK (2). Consider this API not-quite stable for now. We guarantee it will never block. But we will attempt to monitor actual port uptake of this bizarre API and may revise our plans for the unseeded behavior (prior stable/13 branching). Approved by: csprng(markm), manpages(bcr) See also: https://lwn.net/ml/linux-kernel/cover.1577088521.git.luto@kernel.org/ See also: https://lwn.net/ml/linux-kernel/20200107204400.GH3619@mit.edu/ Differential Revision: https://reviews.freebsd.org/D23130 Modified: head/lib/libc/sys/getrandom.2 head/sys/kern/sys_getrandom.c head/sys/sys/random.h Modified: head/lib/libc/sys/getrandom.2 ============================================================================== --- head/lib/libc/sys/getrandom.2 Sun Jan 12 20:25:11 2020 (r356666) +++ head/lib/libc/sys/getrandom.2 Sun Jan 12 20:47:38 2020 (r356667) @@ -1,5 +1,4 @@ -.\" Copyright (c) 2018 Conrad Meyer -.\" All rights reserved. +.\" Copyright 2020, 2018 Conrad Meyer . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -24,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 24, 2018 +.Dd January 12, 2020 .Dt GETRANDOM 2 .Os .Sh NAME @@ -64,13 +63,16 @@ This flag does nothing on and .Pa /dev/urandom are identical. +.It Ql GRND_INSECURE +This flag is treated as an alternative name for +.Dv GRND_NONBLOCK . +It is provided solely for API compatibility with Linux. .El .Pp If the .Xr random 4 device has been seeded, reads of up to 256 bytes will always return as many bytes as requested and will not be interrupted by signals. -.Pp .Sh RETURN VALUES Upon successful completion, the number of bytes which were actually read is returned. @@ -87,6 +89,8 @@ operation returns the following errors: .It Bq Er EAGAIN The .Ql GRND_NONBLOCK +(or +.Ql GRND_INSECURE ) flag was set and the .Xr random 4 device was not yet seeded. @@ -111,7 +115,7 @@ was larger than .Xr getentropy 3 , .Xr random 4 .Sh STANDARDS -.Fn getentropy +.Fn getrandom is non-standard. It is present in Linux. .Sh HISTORY @@ -119,3 +123,11 @@ The .Fn getrandom system call first appeared in .Fx 12.0 . +.Sh CAVEATS +Unlike Linux, the +.Dv GRND_INSECURE +flag on +.Fx +does not produce any output before the +.Xr random 4 +device is seeded. Modified: head/sys/kern/sys_getrandom.c ============================================================================== --- head/sys/kern/sys_getrandom.c Sun Jan 12 20:25:11 2020 (r356666) +++ head/sys/kern/sys_getrandom.c Sun Jan 12 20:47:38 2020 (r356667) @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include -#define GRND_VALIDFLAGS (GRND_NONBLOCK | GRND_RANDOM) +#define GRND_VALIDFLAGS (GRND_NONBLOCK | GRND_RANDOM | GRND_INSECURE) /* * random_read_uio(9) returns EWOULDBLOCK if a nonblocking request would block, @@ -59,6 +59,40 @@ kern_getrandom(struct thread *td, void *user_buf, size return (EINVAL); if (buflen > IOSIZE_MAX) return (EINVAL); + + /* + * Linux compatibility: We have two choices for handling Linux's + * GRND_INSECURE. + * + * 1. We could ignore it completely (like GRND_RANDOM). However, this + * might produce the surprising result of GRND_INSECURE requests + * blocking, when the Linux API does not block. + * + * 2. Alternatively, we could treat GRND_INSECURE requests as requests + * for GRND_NONBLOCk. Here, the surprising result for Linux programs + * is that invocations with unseeded random(4) will produce EAGAIN, + * rather than garbage. + * + * Honoring the flag in the way Linux does seems fraught. If we + * actually use the output of a random(4) implementation prior to + * seeding, we leak some entropy about the initial seed to attackers. + * This seems unacceptable -- it defeats the purpose of blocking on + * initial seeding. + * + * Secondary to that concern, before seeding we may have arbitrarily + * little entropy collected; producing output from zero or a handful of + * entropy bits does not seem particularly useful to userspace. + * + * If userspace can accept garbage, insecure non-random bytes, they can + * create their own insecure garbage with srandom(time(NULL)) or + * similar. Asking the kernel to produce it from the secure + * getrandom(2) API seems inane. + * + * We elect to emulate GRND_INSECURE as an alternative spelling of + * GRND_NONBLOCK (2). + */ + if ((flags & GRND_INSECURE) != 0) + flags |= GRND_NONBLOCK; if (buflen == 0) { td->td_retval[0] = 0; Modified: head/sys/sys/random.h ============================================================================== --- head/sys/sys/random.h Sun Jan 12 20:25:11 2020 (r356666) +++ head/sys/sys/random.h Sun Jan 12 20:47:38 2020 (r356667) @@ -159,6 +159,7 @@ void random_harvest_deregister_source(enum random_entr #define GRND_NONBLOCK 0x1 #define GRND_RANDOM 0x2 +#define GRND_INSECURE 0x4 __BEGIN_DECLS ssize_t getrandom(void *buf, size_t buflen, unsigned int flags); From owner-svn-src-all@freebsd.org Sun Jan 12 23:52:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A2D221EF67A; Sun, 12 Jan 2020 23:52:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wtmx2crsz3FZn; Sun, 12 Jan 2020 23:52:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 553D623B10; Sun, 12 Jan 2020 23:52:17 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00CNqHYO018003; Sun, 12 Jan 2020 23:52:17 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00CNqHG2018001; Sun, 12 Jan 2020 23:52:17 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202001122352.00CNqHG2018001@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sun, 12 Jan 2020 23:52:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356668 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356668 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sun, 12 Jan 2020 23:52:17 -0000 Author: cem Date: Sun Jan 12 23:52:16 2020 New Revision: 356668 URL: https://svnweb.freebsd.org/changeset/base/356668 Log: Fix a typo in r356667 comment No functional change. Reported by: bdragon Approved by: csprng(markm), earlier version X-MFC-With: r356667 Modified: head/sys/kern/sys_getrandom.c Modified: head/sys/kern/sys_getrandom.c ============================================================================== --- head/sys/kern/sys_getrandom.c Sun Jan 12 20:47:38 2020 (r356667) +++ head/sys/kern/sys_getrandom.c Sun Jan 12 23:52:16 2020 (r356668) @@ -69,7 +69,7 @@ kern_getrandom(struct thread *td, void *user_buf, size * blocking, when the Linux API does not block. * * 2. Alternatively, we could treat GRND_INSECURE requests as requests - * for GRND_NONBLOCk. Here, the surprising result for Linux programs + * for GRND_NONBLOCK. Here, the surprising result for Linux programs * is that invocations with unseeded random(4) will produce EAGAIN, * rather than garbage. * From owner-svn-src-all@freebsd.org Mon Jan 13 02:31:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 37EB31F2FEE; Mon, 13 Jan 2020 02:31:54 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyK61VVFz3M8w; Mon, 13 Jan 2020 02:31:54 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2E8D125810; Mon, 13 Jan 2020 02:31:54 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D2Vs3E025355; Mon, 13 Jan 2020 02:31:54 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D2Vpbp025339; Mon, 13 Jan 2020 02:31:51 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001130231.00D2Vpbp025339@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 02:31:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356669 - in head/sys/ufs: ffs ufs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys/ufs: ffs ufs X-SVN-Commit-Revision: 356669 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:31:54 -0000 Author: mjg Date: Mon Jan 13 02:31:51 2020 New Revision: 356669 URL: https://svnweb.freebsd.org/changeset/base/356669 Log: ufs: add a setter for inode i_flag field This will be used later to add vnodes to the lazy list. Reviewed by: kib (previous version), jeff Tested by: pho (in a larger patch) Differential Revision: https://reviews.freebsd.org/D22994 Modified: head/sys/ufs/ffs/ffs_alloc.c head/sys/ufs/ffs/ffs_balloc.c head/sys/ufs/ffs/ffs_inode.c head/sys/ufs/ffs/ffs_snapshot.c head/sys/ufs/ffs/ffs_softdep.c head/sys/ufs/ffs/ffs_vfsops.c head/sys/ufs/ffs/ffs_vnops.c head/sys/ufs/ufs/inode.h head/sys/ufs/ufs/ufs_acl.c head/sys/ufs/ufs/ufs_inode.c head/sys/ufs/ufs/ufs_lookup.c head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ffs/ffs_alloc.c ============================================================================== --- head/sys/ufs/ffs/ffs_alloc.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_alloc.c Mon Jan 13 02:31:51 2020 (r356669) @@ -202,9 +202,9 @@ retry: delta = btodb(size); DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta); if (flags & IO_EXT) - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); else - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); *bnp = bno; return (0); } @@ -329,9 +329,9 @@ retry: delta = btodb(nsize - osize); DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta); if (flags & IO_EXT) - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); else - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); allocbuf(bp, nsize); bp->b_flags |= B_DONE; vfs_bio_bzero_buf(bp, osize, nsize - osize); @@ -413,9 +413,9 @@ retry: delta = btodb(nsize - osize); DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta); if (flags & IO_EXT) - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); else - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); allocbuf(bp, nsize); bp->b_flags |= B_DONE; vfs_bio_bzero_buf(bp, osize, nsize - osize); @@ -743,7 +743,7 @@ ffs_reallocblks_ufs1(ap) else bwrite(sbp); } else { - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (!doasyncfree) ffs_update(vp, 1); } @@ -1007,7 +1007,7 @@ ffs_reallocblks_ufs2(ap) else bwrite(sbp); } else { - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (!doasyncfree) ffs_update(vp, 1); } @@ -1150,7 +1150,7 @@ retry: ip = VTOI(*vpp); if (ip->i_mode) goto dup_alloc; - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); vput(*vpp); } return (error); @@ -1185,7 +1185,7 @@ dup_alloc: (*vpp)->v_type = VNON; if (fs->fs_magic == FS_UFS2_MAGIC) { (*vpp)->v_op = &ffs_vnodeops2; - ip->i_flag |= IN_UFS2; + UFS_INODE_SET_FLAG(ip, IN_UFS2); } else { (*vpp)->v_op = &ffs_vnodeops1; } @@ -3238,7 +3238,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) ip->i_nlink += cmd.size; DIP_SET(ip, i_nlink, ip->i_nlink); ip->i_effnlink += cmd.size; - ip->i_flag |= IN_CHANGE | IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED); error = ffs_update(vp, 1); if (DOINGSOFTDEP(vp)) softdep_change_linkcnt(ip); @@ -3257,7 +3257,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) break; ip = VTOI(vp); DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + cmd.size); - ip->i_flag |= IN_CHANGE | IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED); error = ffs_update(vp, 1); vput(vp); break; @@ -3274,7 +3274,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) break; ip = VTOI(vp); DIP_SET(ip, i_size, cmd.size); - ip->i_flag |= IN_CHANGE | IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED); error = ffs_update(vp, 1); vput(vp); break; @@ -3494,7 +3494,7 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS) vput(vp); break; } - ip->i_flag |= IN_CHANGE | IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED); error = ffs_update(vp, 1); vput(vp); break; Modified: head/sys/ufs/ffs/ffs_balloc.c ============================================================================== --- head/sys/ufs/ffs/ffs_balloc.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_balloc.c Mon Jan 13 02:31:51 2020 (r356669) @@ -154,7 +154,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, i ip->i_size = smalllblktosize(fs, nb + 1); dp->di_size = ip->i_size; dp->di_db[nb] = dbtofsb(fs, bp->b_blkno); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (flags & IO_SYNC) bwrite(bp); else if (DOINGASYNC(vp)) @@ -224,7 +224,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, i nsize, 0, bp); } dp->di_db[lbn] = dbtofsb(fs, bp->b_blkno); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); *bpp = bp; return (0); } @@ -280,7 +280,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, i } allocib = &dp->di_ib[indirs[0].in_off]; *allocib = nb; - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } /* * Fetch through the indirect blocks, allocating as necessary. @@ -542,7 +542,7 @@ fail: (void) chkdq(ip, -btodb(deallocated), cred, FORCE); #endif dp->di_blocks -= btodb(deallocated); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } (void) ffs_syncvnode(vp, MNT_WAIT, 0); /* @@ -645,7 +645,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, i dp->di_extsize = smalllblktosize(fs, nb + 1); dp->di_extb[nb] = dbtofsb(fs, bp->b_blkno); bp->b_xflags |= BX_ALTDATA; - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (flags & IO_SYNC) bwrite(bp); else @@ -719,7 +719,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, i nsize, 0, bp); } dp->di_extb[lbn] = dbtofsb(fs, bp->b_blkno); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); *bpp = bp; return (0); } @@ -748,7 +748,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, i ip->i_size = smalllblktosize(fs, nb + 1); dp->di_size = ip->i_size; dp->di_db[nb] = dbtofsb(fs, bp->b_blkno); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (flags & IO_SYNC) bwrite(bp); else @@ -818,7 +818,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, i nsize, 0, bp); } dp->di_db[lbn] = dbtofsb(fs, bp->b_blkno); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); *bpp = bp; return (0); } @@ -875,7 +875,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, i } allocib = &dp->di_ib[indirs[0].in_off]; *allocib = nb; - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } /* * Fetch through the indirect blocks, allocating as necessary. @@ -1144,7 +1144,7 @@ fail: (void) chkdq(ip, -btodb(deallocated), cred, FORCE); #endif dp->di_blocks -= btodb(deallocated); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } (void) ffs_syncvnode(vp, MNT_WAIT, 0); /* Modified: head/sys/ufs/ffs/ffs_inode.c ============================================================================== --- head/sys/ufs/ffs/ffs_inode.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_inode.c Mon Jan 13 02:31:51 2020 (r356669) @@ -275,7 +275,7 @@ ffs_truncate(vp, length, flags, cred) oldblks[i] = ip->i_din2->di_extb[i]; ip->i_din2->di_extb[i] = 0; } - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if ((error = ffs_update(vp, waitforupdate))) return (error); for (i = 0; i < UFS_NXADDR; i++) { @@ -299,13 +299,13 @@ ffs_truncate(vp, length, flags, cred) bzero(SHORTLINK(ip), (u_int)ip->i_size); ip->i_size = 0; DIP_SET(ip, i_size, 0); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (needextclean) goto extclean; return (ffs_update(vp, waitforupdate)); } if (ip->i_size == length) { - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (needextclean) goto extclean; return (ffs_update(vp, 0)); @@ -339,7 +339,7 @@ ffs_truncate(vp, length, flags, cred) bdwrite(bp); else bawrite(bp); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); return (ffs_update(vp, waitforupdate)); } /* @@ -405,7 +405,7 @@ ffs_truncate(vp, length, flags, cred) softdep_setup_freeblocks(ip, length, flags); ASSERT_VOP_LOCKED(vp, "ffs_truncate1"); if (journaltrunc == 0) { - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); error = ffs_update(vp, 0); } return (error); @@ -489,7 +489,7 @@ ffs_truncate(vp, length, flags, cred) if (i > lastblock) DIP_SET(ip, i_db[i], 0); } - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); allerror = ffs_update(vp, waitforupdate); /* @@ -619,7 +619,7 @@ done: DIP_SET(ip, i_blocks, DIP(ip, i_blocks) - blocksreleased); else /* sanity */ DIP_SET(ip, i_blocks, 0); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); #ifdef QUOTA (void) chkdq(ip, -blocksreleased, NOCRED, FORCE); #endif Modified: head/sys/ufs/ffs/ffs_snapshot.c ============================================================================== --- head/sys/ufs/ffs/ffs_snapshot.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_snapshot.c Mon Jan 13 02:31:51 2020 (r356669) @@ -319,7 +319,7 @@ restart: goto out; ip->i_size = lblktosize(fs, (off_t)numblks); DIP_SET(ip, i_size, ip->i_size); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); error = readblock(vp, bp, numblks - 1); bawrite(bp); if (error != 0) @@ -401,7 +401,7 @@ restart: */ ip->i_flags |= SF_SNAPSHOT; DIP_SET(ip, i_flags, ip->i_flags); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); /* * Ensure that the snapshot is completely on disk. * Since we have marked it as a snapshot it is safe to @@ -1215,7 +1215,7 @@ snapacct_ufs1(vp, oldblkp, lastblkp, fs, lblkno, expun lbn = fragstoblks(fs, blkno); if (lbn < UFS_NDADDR) { blkp = &ip->i_din1->di_db[lbn]; - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } else { error = ffs_balloc_ufs1(vp, lblktosize(fs, (off_t)lbn), fs->fs_bsize, KERNCRED, BA_METAONLY, &ibp); @@ -1501,7 +1501,7 @@ snapacct_ufs2(vp, oldblkp, lastblkp, fs, lblkno, expun lbn = fragstoblks(fs, blkno); if (lbn < UFS_NDADDR) { blkp = &ip->i_din2->di_db[lbn]; - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } else { error = ffs_balloc_ufs2(vp, lblktosize(fs, (off_t)lbn), fs->fs_bsize, KERNCRED, BA_METAONLY, &ibp); @@ -1724,7 +1724,7 @@ ffs_snapremove(vp) */ ip->i_flags &= ~SF_SNAPSHOT; DIP_SET(ip, i_flags, ip->i_flags); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); /* * The dirtied indirects must be written out before * softdep_setup_freeblocks() is called. Otherwise indir_trunc() @@ -1830,7 +1830,7 @@ retry: panic("snapblkfree: inconsistent block type"); if (lbn < UFS_NDADDR) { DIP_SET(ip, i_db[lbn], BLK_NOCOPY); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } else if (I_IS_UFS1(ip)) { ((ufs1_daddr_t *)(ibp->b_data))[indiroff] = BLK_NOCOPY; @@ -1887,7 +1887,7 @@ retry: bdwrite(ibp); } DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + btodb(size)); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); lockmgr(vp->v_vnlock, LK_RELEASE, NULL); return (1); } @@ -2580,7 +2580,7 @@ process_deferred_inactive(struct mount *mp) ip = VTOI(vp); if ((ip->i_flag & IN_LAZYACCESS) != 0) { ip->i_flag &= ~IN_LAZYACCESS; - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); } VI_LOCK(vp); if ((vp->v_iflag & VI_OWEINACT) == 0 || vp->v_usecount > 0) { Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_softdep.c Mon Jan 13 02:31:51 2020 (r356669) @@ -6656,7 +6656,7 @@ softdep_journal_freeblocks(ip, cred, length, flags) * journaling. */ if (length != 0 && lastlbn >= UFS_NDADDR) { - ip->i_flag |= IN_TRUNCATED; + UFS_INODE_SET_FLAG(ip, IN_TRUNCATED); newjtrunc(freeblks, length, 0); } ip->i_size = length; @@ -6780,7 +6780,7 @@ softdep_journal_freeblocks(ip, cred, length, flags) } ip->i_size = length; DIP_SET(ip, i_size, length); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); allocbuf(bp, frags); ffs_update(vp, 0); bawrite(bp); @@ -7647,7 +7647,7 @@ softdep_freefile(pvp, ino, mode) WORKLIST_INSERT(&inodedep->id_inowait, &freefile->fx_list); FREE_LOCK(ump); if (ip->i_number == ino) - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); } /* @@ -8056,7 +8056,7 @@ handle_complete_freeblocks(freeblks, flags) vgone(vp); } else if (DIP(ip, i_modrev) == freeblks->fb_modrev) { DIP_SET(ip, i_blocks, DIP(ip, i_blocks) - spare); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); /* * We must wait so this happens before the * journal is reclaimed. @@ -9873,7 +9873,7 @@ handle_workitem_remove(dirrem, flags) "%ju negative i_nlink %d", (intmax_t)ip->i_number, ip->i_nlink)); DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (ip->i_nlink < ip->i_effnlink) panic("handle_workitem_remove: bad file delta"); if (ip->i_nlink == 0) @@ -9896,7 +9896,7 @@ handle_workitem_remove(dirrem, flags) KASSERT(ip->i_nlink >= 0, ("handle_workitem_remove: directory ino " "%ju negative i_nlink %d", (intmax_t)ip->i_number, ip->i_nlink)); DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (ip->i_nlink < ip->i_effnlink) panic("handle_workitem_remove: bad dir delta"); if (ip->i_nlink == 0) @@ -9938,7 +9938,7 @@ handle_workitem_remove(dirrem, flags) } WORKLIST_INSERT(&inodedep->id_inowait, &dirrem->dm_list); FREE_LOCK(ump); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); out: ffs_update(vp, 0); vput(vp); Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_vfsops.c Mon Jan 13 02:31:51 2020 (r356669) @@ -1816,7 +1816,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags) while (ip->i_gen == 0) ip->i_gen = arc4random(); if ((vp->v_mount->mnt_flag & MNT_RDONLY) == 0) { - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); DIP_SET(ip, i_gen, ip->i_gen); } } Modified: head/sys/ufs/ffs/ffs_vnops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vnops.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ffs/ffs_vnops.c Mon Jan 13 02:31:51 2020 (r356669) @@ -668,7 +668,7 @@ ffs_read(ap) (vp->v_mount->mnt_flag & (MNT_NOATIME | MNT_RDONLY)) == 0 && (ip->i_flag & IN_ACCESS) == 0) { VI_LOCK(vp); - ip->i_flag |= IN_ACCESS; + UFS_INODE_SET_FLAG(ip, IN_ACCESS); VI_UNLOCK(vp); } return (error); @@ -853,7 +853,7 @@ ffs_write(ap) } if (error || xfersize == 0) break; - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); } /* * If we successfully wrote any data, and we are not the superuser @@ -1096,7 +1096,7 @@ ffs_extwrite(struct vnode *vp, struct uio *uio, int io bdwrite(bp); if (error || xfersize == 0) break; - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); } /* * If we successfully wrote any data, and we are not the superuser @@ -1203,11 +1203,11 @@ ffs_lock_ea(struct vnode *vp) ip = VTOI(vp); VI_LOCK(vp); while (ip->i_flag & IN_EA_LOCKED) { - ip->i_flag |= IN_EA_LOCKWAIT; + UFS_INODE_SET_FLAG(ip, IN_EA_LOCKWAIT); msleep(&ip->i_ea_refs, &vp->v_interlock, PINOD + 2, "ufs_ea", 0); } - ip->i_flag |= IN_EA_LOCKED; + UFS_INODE_SET_FLAG(ip, IN_EA_LOCKED); VI_UNLOCK(vp); } Modified: head/sys/ufs/ufs/inode.h ============================================================================== --- head/sys/ufs/ufs/inode.h Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ufs/inode.h Mon Jan 13 02:31:51 2020 (r356669) @@ -138,6 +138,13 @@ struct inode { "\14b12\13is_ufs2\12truncated\11ea_lockwait\10ea_locked" \ "\7lazyaccess\6lazymod\5needsync\4modified\3update\2change\1access" +#define UFS_INODE_SET_FLAG(ip, flags) do { \ + struct inode *_ip = (ip); \ + int _flags = (flags); \ + \ + _ip->i_flag |= _flags; \ +} while (0) + #define i_dirhash i_un.dirhash #define i_snapblklist i_un.snapblklist #define i_din1 dinode_u.din1 Modified: head/sys/ufs/ufs/ufs_acl.c ============================================================================== --- head/sys/ufs/ufs/ufs_acl.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ufs/ufs_acl.c Mon Jan 13 02:31:51 2020 (r356669) @@ -421,7 +421,7 @@ ufs_setacl_nfs4_internal(struct vnode *vp, struct acl ip->i_mode &= ACL_PRESERVE_MASK; ip->i_mode |= mode; DIP_SET(ip, i_mode, ip->i_mode); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); VN_KNOTE_UNLOCKED(vp, NOTE_ATTRIB); @@ -594,7 +594,7 @@ ufs_setacl_posix1e(struct vop_setacl_args *ap) * inode and mark it as changed. */ ufs_sync_inode_from_acl(ap->a_aclp, ip); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); error = UFS_UPDATE(ap->a_vp, 0); } Modified: head/sys/ufs/ufs/ufs_inode.c ============================================================================== --- head/sys/ufs/ufs/ufs_inode.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ufs/ufs_inode.c Mon Jan 13 02:31:51 2020 (r356669) @@ -183,7 +183,7 @@ ufs_inactive(ap) mode = ip->i_mode; ip->i_mode = 0; DIP_SET(ip, i_mode, 0); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); if (DOINGSOFTDEP(vp)) softdep_change_linkcnt(ip); UFS_VFREE(vp, ip->i_number, mode); @@ -241,7 +241,7 @@ ufs_reclaim(ap) #endif if (ip->i_flag & IN_LAZYMOD) - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); UFS_UPDATE(vp, 0); /* * Remove the inode from its hash chain. Modified: head/sys/ufs/ufs/ufs_lookup.c ============================================================================== --- head/sys/ufs/ufs/ufs_lookup.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ufs/ufs_lookup.c Mon Jan 13 02:31:51 2020 (r356669) @@ -556,7 +556,7 @@ found: ufs_dirbad(dp, i_offset, "i_size too small"); dp->i_size = i_offset + DIRSIZ(OFSFMT(vdp), ep); DIP_SET(dp, i_size, dp->i_size); - dp->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE); } brelse(bp); @@ -918,7 +918,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename) dp->i_size = dp->i_offset + DIRBLKSIZ; DIP_SET(dp, i_size, dp->i_size); dp->i_endoff = dp->i_size; - dp->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE); dirp->d_reclen = DIRBLKSIZ; blkoff = dp->i_offset & (VFSTOUFS(dvp->v_mount)->um_mountp->mnt_stat.f_iosize - 1); @@ -946,7 +946,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename) } if (softdep_setup_directory_add(bp, dp, dp->i_offset, dirp->d_ino, newdirbp, 1)) - dp->i_flag |= IN_NEEDSYNC; + UFS_INODE_SET_FLAG(dp, IN_NEEDSYNC); if (newdirbp) bdwrite(newdirbp); bdwrite(bp); @@ -1118,7 +1118,7 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename) error = bwrite(bp); } } - dp->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE); /* * If all went well, and the directory can be shortened, proceed * with the truncation. Note that we have to unlock the inode for @@ -1179,13 +1179,13 @@ ufs_dirremove(dvp, ip, flags, isrmdir) */ if (ip) { ip->i_effnlink--; - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(dvp)) { softdep_setup_unlink(dp, ip); } else { ip->i_nlink--; DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); } } if (flags & DOWHITEOUT) @@ -1195,13 +1195,13 @@ ufs_dirremove(dvp, ip, flags, isrmdir) if ((error = UFS_BLKATOFF(dvp, offset, (char **)&ep, &bp)) != 0) { if (ip) { ip->i_effnlink++; - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(dvp)) { softdep_change_linkcnt(ip); } else { ip->i_nlink++; DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); } } return (error); @@ -1269,7 +1269,7 @@ out: else error = bwrite(bp); } - dp->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE); /* * If the last named reference to a snapshot goes away, * drop its snapshot reference so that it will be reclaimed @@ -1303,13 +1303,13 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir) * necessary. */ oip->i_effnlink--; - oip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(oip, IN_CHANGE); if (DOINGSOFTDEP(vdp)) { softdep_setup_unlink(dp, oip); } else { oip->i_nlink--; DIP_SET(oip, i_nlink, oip->i_nlink); - oip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(oip, IN_CHANGE); } error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp); @@ -1320,13 +1320,13 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir) } if (error) { oip->i_effnlink++; - oip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(oip, IN_CHANGE); if (DOINGSOFTDEP(vdp)) { softdep_change_linkcnt(oip); } else { oip->i_nlink++; DIP_SET(oip, i_nlink, oip->i_nlink); - oip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(oip, IN_CHANGE); } return (error); } @@ -1344,7 +1344,7 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir) error = bwrite(bp); } } - dp->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE); /* * If the last named reference to a snapshot goes away, * drop its snapshot reference so that it will be reclaimed Modified: head/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- head/sys/ufs/ufs/ufs_vnops.c Sun Jan 12 23:52:16 2020 (r356668) +++ head/sys/ufs/ufs/ufs_vnops.c Mon Jan 13 02:31:51 2020 (r356669) @@ -154,13 +154,13 @@ ufs_itimes_locked(struct vnode *vp) return; if ((vp->v_type == VBLK || vp->v_type == VCHR) && !DOINGSOFTDEP(vp)) - ip->i_flag |= IN_LAZYMOD; + UFS_INODE_SET_FLAG(ip, IN_LAZYMOD); else if (((vp->v_mount->mnt_kern_flag & (MNTK_SUSPENDED | MNTK_SUSPEND)) == 0) || (ip->i_flag & (IN_CHANGE | IN_UPDATE))) - ip->i_flag |= IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_MODIFIED); else if (ip->i_flag & IN_ACCESS) - ip->i_flag |= IN_LAZYACCESS; + UFS_INODE_SET_FLAG(ip, IN_LAZYACCESS); vfs_timestamp(&ts); if (ip->i_flag & IN_ACCESS) { DIP_SET(ip, i_atime, ts.tv_sec); @@ -237,7 +237,7 @@ ufs_mknod(ap) if (error) return (error); ip = VTOI(*vpp); - ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE); if (vap->va_rdev != VNOVAL) { /* * Want to be able to use this to make badblock @@ -550,7 +550,7 @@ ufs_setattr(ap) } ip->i_flags = vap->va_flags; DIP_SET(ip, i_flags, vap->va_flags); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); error = UFS_UPDATE(vp, 0); if (ip->i_flags & (IMMUTABLE | APPEND)) return (error); @@ -619,7 +619,7 @@ ufs_setattr(ap) error = vn_utimes_perm(vp, vap, cred, td); if (error != 0) return (error); - ip->i_flag |= IN_CHANGE | IN_MODIFIED; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED); if (vap->va_atime.tv_sec != VNOVAL) { ip->i_flag &= ~IN_ACCESS; DIP_SET(ip, i_atime, vap->va_atime.tv_sec); @@ -690,7 +690,7 @@ ufs_markatime(ap) struct inode *ip = VTOI(vp); VI_LOCK(vp); - ip->i_flag |= IN_ACCESS; + UFS_INODE_SET_FLAG(ip, IN_ACCESS); VI_UNLOCK(vp); /* * XXXKIB No UFS_UPDATE(ap->a_vp, 0) there. @@ -746,7 +746,7 @@ ufs_chmod(vp, mode, cred, td) ip->i_mode &= ~ALLPERMS; ip->i_mode |= (mode & ALLPERMS); DIP_SET(ip, i_mode, ip->i_mode); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); #ifdef UFS_ACL if ((vp->v_mount->mnt_flag & MNT_NFS4ACLS) != 0) error = ufs_update_nfs4_acl_after_mode_change(vp, mode, ip->i_uid, cred, td); @@ -865,7 +865,7 @@ good: if (getinoquota(ip)) panic("ufs_chown: lost quota"); #endif /* QUOTA */ - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) { if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) { ip->i_mode &= ~(ISUID | ISGID); @@ -979,7 +979,7 @@ ufs_link(ap) ip->i_effnlink++; ip->i_nlink++; DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(vp)) softdep_setup_link(VTOI(tdvp), ip); error = UFS_UPDATE(vp, !DOINGSOFTDEP(vp) && !DOINGASYNC(vp)); @@ -992,7 +992,7 @@ ufs_link(ap) ip->i_effnlink--; ip->i_nlink--; DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(vp)) softdep_revert_link(VTOI(tdvp), ip); } @@ -1323,7 +1323,7 @@ relock: fip->i_effnlink++; fip->i_nlink++; DIP_SET(fip, i_nlink, fip->i_nlink); - fip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(fip, IN_CHANGE); if (DOINGSOFTDEP(fvp)) softdep_setup_link(tdp, fip); error = UFS_UPDATE(fvp, !DOINGSOFTDEP(fvp) && !DOINGASYNC(fvp)); @@ -1441,11 +1441,11 @@ relock: if (!newparent) { tdp->i_nlink--; DIP_SET(tdp, i_nlink, tdp->i_nlink); - tdp->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(tdp, IN_CHANGE); } tip->i_nlink--; DIP_SET(tip, i_nlink, tip->i_nlink); - tip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(tip, IN_CHANGE); } } @@ -1476,7 +1476,7 @@ relock: tdp->i_effnlink++; tdp->i_nlink++; DIP_SET(tdp, i_nlink, tdp->i_nlink); - tdp->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(tdp, IN_CHANGE); if (DOINGSOFTDEP(tdvp)) softdep_setup_dotdot_link(tdp, fip); error = UFS_UPDATE(tdvp, !DOINGSOFTDEP(tdvp) && @@ -1546,7 +1546,7 @@ bad: fip->i_effnlink--; fip->i_nlink--; DIP_SET(fip, i_nlink, fip->i_nlink); - fip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(fip, IN_CHANGE); if (DOINGSOFTDEP(fvp)) softdep_revert_link(tdp, fip); goto unlockout; @@ -1861,7 +1861,7 @@ ufs_mkdir(ap) } #endif #endif /* !SUIDDIR */ - ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE); ip->i_mode = dmode; DIP_SET(ip, i_mode, dmode); tvp->v_type = VDIR; /* Rest init'd in getnewvnode(). */ @@ -1882,7 +1882,7 @@ ufs_mkdir(ap) dp->i_effnlink++; dp->i_nlink++; DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE); if (DOINGSOFTDEP(dvp)) softdep_setup_mkdir(dp, ip); error = UFS_UPDATE(dvp, !DOINGSOFTDEP(dvp) && !DOINGASYNC(dvp)); @@ -1926,7 +1926,7 @@ ufs_mkdir(ap) goto bad; ip->i_size = DIRBLKSIZ; DIP_SET(ip, i_size, DIRBLKSIZ); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); bcopy((caddr_t)&dirtemplate, (caddr_t)bp->b_data, sizeof dirtemplate); if (DOINGSOFTDEP(tvp)) { /* @@ -1972,7 +1972,7 @@ bad: dp->i_effnlink--; dp->i_nlink--; DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE); /* * No need to do an explicit VOP_TRUNCATE here, vrele will * do this for us because we set the link count to 0. @@ -1980,7 +1980,7 @@ bad: ip->i_effnlink = 0; ip->i_nlink = 0; DIP_SET(ip, i_nlink, 0); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(tvp)) softdep_revert_mkdir(dp, ip); @@ -2069,11 +2069,11 @@ ufs_rmdir(ap) if (!DOINGSOFTDEP(vp)) { dp->i_nlink--; DIP_SET(dp, i_nlink, dp->i_nlink); - dp->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(dp, IN_CHANGE); error = UFS_UPDATE(dvp, 0); ip->i_nlink--; DIP_SET(ip, i_nlink, ip->i_nlink); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); } cache_purge(vp); #ifdef UFS_DIRHASH @@ -2113,7 +2113,7 @@ ufs_symlink(ap) bcopy(ap->a_target, SHORTLINK(ip), len); ip->i_size = len; DIP_SET(ip, i_size, len); - ip->i_flag |= IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE); error = UFS_UPDATE(vp, 0); } else error = vn_rdwr(UIO_WRITE, vp, __DECONST(void *, ap->a_target), @@ -2629,7 +2629,7 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc) } #endif #endif /* !SUIDDIR */ - ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE; + UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE); ip->i_mode = mode; DIP_SET(ip, i_mode, mode); tvp->v_type = IFTOVT(mode); /* Rest init'd in getnewvnode(). */ @@ -2691,7 +2691,7 @@ bad: ip->i_effnlink = 0; ip->i_nlink = 0; DIP_SET(ip, i_nlink, 0); - ip->i_flag |= IN_CHANGE; + UFS_INODE_SET_FLAG(ip, IN_CHANGE); if (DOINGSOFTDEP(tvp)) softdep_revert_create(VTOI(dvp), ip); vput(tvp); From owner-svn-src-all@freebsd.org Mon Jan 13 02:34:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B725C1F3175; Mon, 13 Jan 2020 02:34:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyMb57Spz3MLr; Mon, 13 Jan 2020 02:34:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AB29C25851; Mon, 13 Jan 2020 02:34:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D2Y3Yt027230; Mon, 13 Jan 2020 02:34:03 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D2Y2GP027222; Mon, 13 Jan 2020 02:34:02 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001130234.00D2Y2GP027222@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 02:34:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356670 - in head/sys: fs/nfsserver kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: fs/nfsserver kern sys X-SVN-Commit-Revision: 356670 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:34:03 -0000 Author: mjg Date: Mon Jan 13 02:34:02 2020 New Revision: 356670 URL: https://svnweb.freebsd.org/changeset/base/356670 Log: vfs: add per-mount vnode lazy list and use it for deferred inactive + msync This obviates the need to scan the entire active list looking for vnodes of interest. msync is handled by adding all vnodes with write count to the lazy list. deferred inactive directly adds vnodes as it sets the VI_DEFINACT flag. Vnodes get dequeued from the list when their hold count reaches 0. Newly added MNT_VNODE_FOREACH_LAZY* macros support filtering so that spurious locking is avoided in the common case. Reviewed by: jeff Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D22995 Modified: head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/kern/vfs_default.c head/sys/kern/vfs_mount.c head/sys/kern/vfs_subr.c head/sys/sys/mount.h head/sys/sys/vnode.h Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Jan 13 02:34:02 2020 (r356670) @@ -3318,6 +3318,7 @@ nfsd_mntinit(void) nfsv4root_mnt.mnt_flag = (MNT_RDONLY | MNT_EXPORTED); TAILQ_INIT(&nfsv4root_mnt.mnt_nvnodelist); TAILQ_INIT(&nfsv4root_mnt.mnt_activevnodelist); + TAILQ_INIT(&nfsv4root_mnt.mnt_lazyvnodelist); nfsv4root_mnt.mnt_export = NULL; TAILQ_INIT(&nfsv4root_opt); TAILQ_INIT(&nfsv4root_newopt); @@ -3325,6 +3326,7 @@ nfsd_mntinit(void) nfsv4root_mnt.mnt_optnew = &nfsv4root_newopt; nfsv4root_mnt.mnt_nvnodelistsize = 0; nfsv4root_mnt.mnt_activevnodelistsize = 0; + nfsv4root_mnt.mnt_lazyvnodelistsize = 0; } /* Modified: head/sys/kern/vfs_default.c ============================================================================== --- head/sys/kern/vfs_default.c Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/kern/vfs_default.c Mon Jan 13 02:34:02 2020 (r356670) @@ -1230,6 +1230,8 @@ vop_stdadd_writecount(struct vop_add_writecount_args * VNASSERT(vp->v_writecount + ap->a_inc >= 0, vp, ("neg writecount increment %d", ap->a_inc)); vp->v_writecount += ap->a_inc; + if (vp->v_writecount > 0 && vp->v_mount != NULL) + vlazy(vp); error = 0; } VI_UNLOCK(vp); Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/kern/vfs_mount.c Mon Jan 13 02:34:02 2020 (r356670) @@ -506,6 +506,8 @@ vfs_mount_alloc(struct vnode *vp, struct vfsconf *vfsp mp->mnt_activevnodelistsize = 0; TAILQ_INIT(&mp->mnt_tmpfreevnodelist); mp->mnt_tmpfreevnodelistsize = 0; + TAILQ_INIT(&mp->mnt_lazyvnodelist); + mp->mnt_lazyvnodelistsize = 0; if (mp->mnt_ref != 0 || mp->mnt_lockref != 0 || mp->mnt_writeopcount != 0) panic("%s: non-zero counters on new mp %p\n", __func__, mp); @@ -575,6 +577,8 @@ vfs_mount_destroy(struct mount *mp) panic("vfs_mount_destroy: nonzero activevnodelistsize"); if (mp->mnt_tmpfreevnodelistsize != 0) panic("vfs_mount_destroy: nonzero tmpfreevnodelistsize"); + if (mp->mnt_lazyvnodelistsize != 0) + panic("vfs_mount_destroy: nonzero lazyvnodelistsize"); if (mp->mnt_lockref != 0) panic("vfs_mount_destroy: nonzero lock refcount"); MNT_IUNLOCK(mp); Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/kern/vfs_subr.c Mon Jan 13 02:34:02 2020 (r356670) @@ -1810,6 +1810,15 @@ delmntque(struct vnode *vp) mp->mnt_activevnodelistsize--; mtx_unlock(&mp->mnt_listmtx); } + if (vp->v_mflag & VMP_LAZYLIST) { + mtx_lock(&mp->mnt_listmtx); + if (vp->v_mflag & VMP_LAZYLIST) { + vp->v_mflag &= ~VMP_LAZYLIST; + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, vp, v_lazylist); + mp->mnt_lazyvnodelistsize--; + } + mtx_unlock(&mp->mnt_listmtx); + } vp->v_mount = NULL; VI_UNLOCK(vp); VNASSERT(mp->mnt_nvnodelistsize > 0, vp, @@ -3038,6 +3047,25 @@ vrefcnt(struct vnode *vp) return (vp->v_usecount); } +void +vlazy(struct vnode *vp) +{ + struct mount *mp; + + VNASSERT(vp->v_holdcnt > 0, vp, ("%s: vnode not held", __func__)); + + if ((vp->v_mflag & VMP_LAZYLIST) != 0) + return; + mp = vp->v_mount; + mtx_lock(&mp->mnt_listmtx); + if ((vp->v_mflag & VMP_LAZYLIST) == 0) { + vp->v_mflag |= VMP_LAZYLIST; + TAILQ_INSERT_TAIL(&mp->mnt_lazyvnodelist, vp, v_lazylist); + mp->mnt_lazyvnodelistsize++; + } + mtx_unlock(&mp->mnt_listmtx); +} + static void vdefer_inactive(struct vnode *vp) { @@ -3054,6 +3082,7 @@ vdefer_inactive(struct vnode *vp) vdropl(vp); return; } + vlazy(vp); vp->v_iflag |= VI_DEFINACT; VI_UNLOCK(vp); counter_u64_add(deferred_inact, 1); @@ -3329,6 +3358,11 @@ vdrop_deactivate(struct vnode *vp) ("vdrop: freeing when we shouldn't")); mp = vp->v_mount; mtx_lock(&mp->mnt_listmtx); + if (vp->v_mflag & VMP_LAZYLIST) { + vp->v_mflag &= ~VMP_LAZYLIST; + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, vp, v_lazylist); + mp->mnt_lazyvnodelistsize--; + } if (vp->v_iflag & VI_ACTIVE) { vp->v_iflag &= ~VI_ACTIVE; TAILQ_REMOVE(&mp->mnt_activevnodelist, vp, v_actfreelist); @@ -3906,7 +3940,9 @@ vn_printf(struct vnode *vp, const char *fmt, ...) } if (vp->v_mflag & VMP_TMPMNTFREELIST) strlcat(buf, "|VMP_TMPMNTFREELIST", sizeof(buf)); - flags = vp->v_mflag & ~(VMP_TMPMNTFREELIST); + if (vp->v_mflag & VMP_LAZYLIST) + strlcat(buf, "|VMP_LAZYLIST", sizeof(buf)); + flags = vp->v_mflag & ~(VMP_TMPMNTFREELIST | VMP_LAZYLIST); if (flags != 0) { snprintf(buf2, sizeof(buf2), "|VMP(0x%lx)", flags); strlcat(buf, buf2, sizeof(buf)); @@ -4126,6 +4162,8 @@ DB_SHOW_COMMAND(mount, db_show_mount) db_printf(" mnt_nvnodelistsize = %d\n", mp->mnt_nvnodelistsize); db_printf(" mnt_activevnodelistsize = %d\n", mp->mnt_activevnodelistsize); + db_printf(" mnt_lazyvnodelistsize = %d\n", + mp->mnt_lazyvnodelistsize); db_printf(" mnt_writeopcount = %d (with %d in the struct)\n", vfs_mount_fetch_counter(mp, MNT_COUNT_WRITEOPCOUNT), mp->mnt_writeopcount); db_printf(" mnt_maxsymlinklen = %d\n", mp->mnt_maxsymlinklen); @@ -4477,6 +4515,13 @@ vfs_deferred_inactive(struct vnode *vp, int lkflags) vdefer_inactive_cond(vp); } +static int +vfs_periodic_inactive_filter(struct vnode *vp, void *arg) +{ + + return (vp->v_iflag & VI_DEFINACT); +} + static void __noinline vfs_periodic_inactive(struct mount *mp, int flags) { @@ -4487,7 +4532,7 @@ vfs_periodic_inactive(struct mount *mp, int flags) if (flags != MNT_WAIT) lkflags |= LK_NOWAIT; - MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { + MNT_VNODE_FOREACH_LAZY(vp, mp, mvp, vfs_periodic_inactive_filter, NULL) { if ((vp->v_iflag & VI_DEFINACT) == 0) { VI_UNLOCK(vp); continue; @@ -4502,12 +4547,27 @@ vfs_want_msync(struct vnode *vp) { struct vm_object *obj; + /* + * This test may be performed without any locks held. + * We rely on vm_object's type stability. + */ if (vp->v_vflag & VV_NOSYNC) return (false); obj = vp->v_object; return (obj != NULL && vm_object_mightbedirty(obj)); } +static int +vfs_periodic_msync_inactive_filter(struct vnode *vp, void *arg __unused) +{ + + if (vp->v_vflag & VV_NOSYNC) + return (false); + if (vp->v_iflag & VI_DEFINACT) + return (true); + return (vfs_want_msync(vp)); +} + static void __noinline vfs_periodic_msync_inactive(struct mount *mp, int flags) { @@ -4527,7 +4587,7 @@ vfs_periodic_msync_inactive(struct mount *mp, int flag objflags = OBJPC_SYNC; } - MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { + MNT_VNODE_FOREACH_LAZY(vp, mp, mvp, vfs_periodic_msync_inactive_filter, NULL) { seen_defer = false; if (vp->v_iflag & VI_DEFINACT) { vp->v_iflag &= ~VI_DEFINACT; @@ -6235,4 +6295,213 @@ __mnt_vnode_markerfree_active(struct vnode **mvp, stru TAILQ_REMOVE(&mp->mnt_activevnodelist, *mvp, v_actfreelist); mtx_unlock(&mp->mnt_listmtx); mnt_vnode_markerfree_active(mvp, mp); +} + +/* + * These are helper functions for filesystems to traverse their + * lazy vnodes. See MNT_VNODE_FOREACH_LAZY() in sys/mount.h + */ +static void +mnt_vnode_markerfree_lazy(struct vnode **mvp, struct mount *mp) +{ + + KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); + + MNT_ILOCK(mp); + MNT_REL(mp); + MNT_IUNLOCK(mp); + free(*mvp, M_VNODE_MARKER); + *mvp = NULL; +} + +/* + * Relock the mp mount vnode list lock with the vp vnode interlock in the + * conventional lock order during mnt_vnode_next_lazy iteration. + * + * On entry, the mount vnode list lock is held and the vnode interlock is not. + * The list lock is dropped and reacquired. On success, both locks are held. + * On failure, the mount vnode list lock is held but the vnode interlock is + * not, and the procedure may have yielded. + */ +static bool +mnt_vnode_next_lazy_relock(struct vnode *mvp, struct mount *mp, + struct vnode *vp) +{ + const struct vnode *tmp; + bool held, ret; + + VNASSERT(mvp->v_mount == mp && mvp->v_type == VMARKER && + TAILQ_NEXT(mvp, v_lazylist) != NULL, mvp, + ("%s: bad marker", __func__)); + VNASSERT(vp->v_mount == mp && vp->v_type != VMARKER, vp, + ("%s: inappropriate vnode", __func__)); + ASSERT_VI_UNLOCKED(vp, __func__); + mtx_assert(&mp->mnt_listmtx, MA_OWNED); + + ret = false; + + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, mvp, v_lazylist); + TAILQ_INSERT_BEFORE(vp, mvp, v_lazylist); + + /* + * Use a hold to prevent vp from disappearing while the mount vnode + * list lock is dropped and reacquired. Normally a hold would be + * acquired with vhold(), but that might try to acquire the vnode + * interlock, which would be a LOR with the mount vnode list lock. + */ + held = refcount_acquire_if_not_zero(&vp->v_holdcnt); + mtx_unlock(&mp->mnt_listmtx); + if (!held) + goto abort; + VI_LOCK(vp); + if (!refcount_release_if_not_last(&vp->v_holdcnt)) { + vdropl(vp); + goto abort; + } + mtx_lock(&mp->mnt_listmtx); + + /* + * Determine whether the vnode is still the next one after the marker, + * excepting any other markers. If the vnode has not been doomed by + * vgone() then the hold should have ensured that it remained on the + * lazy list. If it has been doomed but is still on the lazy list, + * don't abort, but rather skip over it (avoid spinning on doomed + * vnodes). + */ + tmp = mvp; + do { + tmp = TAILQ_NEXT(tmp, v_lazylist); + } while (tmp != NULL && tmp->v_type == VMARKER); + if (tmp != vp) { + mtx_unlock(&mp->mnt_listmtx); + VI_UNLOCK(vp); + goto abort; + } + + ret = true; + goto out; +abort: + maybe_yield(); + mtx_lock(&mp->mnt_listmtx); +out: + if (ret) + ASSERT_VI_LOCKED(vp, __func__); + else + ASSERT_VI_UNLOCKED(vp, __func__); + mtx_assert(&mp->mnt_listmtx, MA_OWNED); + return (ret); +} + +static struct vnode * +mnt_vnode_next_lazy(struct vnode **mvp, struct mount *mp, mnt_lazy_cb_t *cb, + void *cbarg) +{ + struct vnode *vp, *nvp; + + mtx_assert(&mp->mnt_listmtx, MA_OWNED); + KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); +restart: + vp = TAILQ_NEXT(*mvp, v_lazylist); + while (vp != NULL) { + if (vp->v_type == VMARKER) { + vp = TAILQ_NEXT(vp, v_lazylist); + continue; + } + /* + * See if we want to process the vnode. Note we may encounter a + * long string of vnodes we don't care about and hog the list + * as a result. Check for it and requeue the marker. + */ + if (VN_IS_DOOMED(vp) || !cb(vp, cbarg)) { + if (!should_yield()) { + vp = TAILQ_NEXT(vp, v_lazylist); + continue; + } + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, *mvp, + v_lazylist); + TAILQ_INSERT_AFTER(&mp->mnt_lazyvnodelist, vp, *mvp, + v_lazylist); + mtx_unlock(&mp->mnt_listmtx); + kern_yield(PRI_USER); + mtx_lock(&mp->mnt_listmtx); + goto restart; + } + /* + * Try-lock because this is the wrong lock order. If that does + * not succeed, drop the mount vnode list lock and try to + * reacquire it and the vnode interlock in the right order. + */ + if (!VI_TRYLOCK(vp) && + !mnt_vnode_next_lazy_relock(*mvp, mp, vp)) + goto restart; + KASSERT(vp->v_type != VMARKER, ("locked marker %p", vp)); + KASSERT(vp->v_mount == mp || vp->v_mount == NULL, + ("alien vnode on the lazy list %p %p", vp, mp)); + if (vp->v_mount == mp && !VN_IS_DOOMED(vp)) + break; + nvp = TAILQ_NEXT(vp, v_lazylist); + VI_UNLOCK(vp); + vp = nvp; + } + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, *mvp, v_lazylist); + + /* Check if we are done */ + if (vp == NULL) { + mtx_unlock(&mp->mnt_listmtx); + mnt_vnode_markerfree_lazy(mvp, mp); + return (NULL); + } + TAILQ_INSERT_AFTER(&mp->mnt_lazyvnodelist, vp, *mvp, v_lazylist); + mtx_unlock(&mp->mnt_listmtx); + ASSERT_VI_LOCKED(vp, "lazy iter"); + KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); + return (vp); +} + +struct vnode * +__mnt_vnode_next_lazy(struct vnode **mvp, struct mount *mp, mnt_lazy_cb_t *cb, + void *cbarg) +{ + + if (should_yield()) + kern_yield(PRI_USER); + mtx_lock(&mp->mnt_listmtx); + return (mnt_vnode_next_lazy(mvp, mp, cb, cbarg)); +} + +struct vnode * +__mnt_vnode_first_lazy(struct vnode **mvp, struct mount *mp, mnt_lazy_cb_t *cb, + void *cbarg) +{ + struct vnode *vp; + + *mvp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); + MNT_ILOCK(mp); + MNT_REF(mp); + MNT_IUNLOCK(mp); + (*mvp)->v_type = VMARKER; + (*mvp)->v_mount = mp; + + mtx_lock(&mp->mnt_listmtx); + vp = TAILQ_FIRST(&mp->mnt_lazyvnodelist); + if (vp == NULL) { + mtx_unlock(&mp->mnt_listmtx); + mnt_vnode_markerfree_lazy(mvp, mp); + return (NULL); + } + TAILQ_INSERT_BEFORE(vp, *mvp, v_lazylist); + return (mnt_vnode_next_lazy(mvp, mp, cb, cbarg)); +} + +void +__mnt_vnode_markerfree_lazy(struct vnode **mvp, struct mount *mp) +{ + + if (*mvp == NULL) + return; + + mtx_lock(&mp->mnt_listmtx); + TAILQ_REMOVE(&mp->mnt_lazyvnodelist, *mvp, v_lazylist); + mtx_unlock(&mp->mnt_listmtx); + mnt_vnode_markerfree_lazy(mvp, mp); } Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/sys/mount.h Mon Jan 13 02:34:02 2020 (r356670) @@ -223,6 +223,8 @@ struct mount { int mnt_activevnodelistsize;/* (l) # of active vnodes */ struct vnodelst mnt_tmpfreevnodelist; /* (l) list of free vnodes */ int mnt_tmpfreevnodelistsize;/* (l) # of free vnodes */ + struct vnodelst mnt_lazyvnodelist; /* (l) list of lazy vnodes */ + int mnt_lazyvnodelistsize; /* (l) # of lazy vnodes */ struct lock mnt_explock; /* vfs_export walkers lock */ TAILQ_ENTRY(mount) mnt_upper_link; /* (m) we in the all uppers */ TAILQ_HEAD(, mount) mnt_uppers; /* (m) upper mounts over us*/ @@ -266,6 +268,24 @@ void __mnt_vnode_markerfree_active(struct vno #define MNT_VNODE_FOREACH_ACTIVE_ABORT(mp, mvp) \ __mnt_vnode_markerfree_active(&(mvp), (mp)) + +/* + * Definitions for MNT_VNODE_FOREACH_LAZY. + */ +typedef int mnt_lazy_cb_t(struct vnode *, void *); +struct vnode *__mnt_vnode_next_lazy(struct vnode **mvp, struct mount *mp, + mnt_lazy_cb_t *cb, void *cbarg); +struct vnode *__mnt_vnode_first_lazy(struct vnode **mvp, struct mount *mp, + mnt_lazy_cb_t *cb, void *cbarg); +void __mnt_vnode_markerfree_lazy(struct vnode **mvp, struct mount *mp); + +#define MNT_VNODE_FOREACH_LAZY(vp, mp, mvp, cb, cbarg) \ + for (vp = __mnt_vnode_first_lazy(&(mvp), (mp), (cb), (cbarg)); \ + (vp) != NULL; \ + vp = __mnt_vnode_next_lazy(&(mvp), (mp), (cb), (cbarg))) + +#define MNT_VNODE_FOREACH_LAZY_ABORT(mp, mvp) \ + __mnt_vnode_markerfree_lazy(&(mvp), (mp)) #define MNT_ILOCK(mp) mtx_lock(&(mp)->mnt_mtx) #define MNT_ITRYLOCK(mp) mtx_trylock(&(mp)->mnt_mtx) Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Mon Jan 13 02:31:51 2020 (r356669) +++ head/sys/sys/vnode.h Mon Jan 13 02:34:02 2020 (r356670) @@ -148,6 +148,7 @@ struct vnode { * The machinery of being a vnode */ TAILQ_ENTRY(vnode) v_actfreelist; /* l vnode active/free lists */ + TAILQ_ENTRY(vnode) v_lazylist; /* l vnode lazy list */ struct bufobj v_bufobj; /* * Buffer cache object */ /* @@ -260,6 +261,7 @@ struct xvnode { #define VV_READLINK 0x2000 /* fdescfs linux vnode */ #define VMP_TMPMNTFREELIST 0x0001 /* Vnode is on mnt's tmp free list */ +#define VMP_LAZYLIST 0x0002 /* Vnode is on mnt's lazy list */ /* * Vnode attributes. A field value of VNOVAL represents a field whose value @@ -653,6 +655,7 @@ int vaccess_acl_posix1e(enum vtype type, uid_t file_ui struct ucred *cred, int *privused); void vattr_null(struct vattr *vap); int vcount(struct vnode *vp); +void vlazy(struct vnode *); void vdrop(struct vnode *); void vdropl(struct vnode *); int vflush(struct mount *mp, int rootrefs, int flags, struct thread *td); From owner-svn-src-all@freebsd.org Mon Jan 13 02:35:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D4351F324F; Mon, 13 Jan 2020 02:35:16 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyP01Ndtz3MV7; Mon, 13 Jan 2020 02:35:16 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2AA7525858; Mon, 13 Jan 2020 02:35:16 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D2ZGqZ027398; Mon, 13 Jan 2020 02:35:16 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D2ZFq0027393; Mon, 13 Jan 2020 02:35:15 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001130235.00D2ZFq0027393@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 02:35:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356671 - in head/sys/ufs: ffs ufs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys/ufs: ffs ufs X-SVN-Commit-Revision: 356671 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:35:16 -0000 Author: mjg Date: Mon Jan 13 02:35:15 2020 New Revision: 356671 URL: https://svnweb.freebsd.org/changeset/base/356671 Log: ufs: use lazy list instead of active list for syncer Quota code is temporarily regressed to do a full vnode scan. Reviewed by: jeff Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D22996 Modified: head/sys/ufs/ffs/ffs_vfsops.c head/sys/ufs/ffs/ffs_vnops.c head/sys/ufs/ufs/inode.h head/sys/ufs/ufs/ufs_vnops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Mon Jan 13 02:34:02 2020 (r356670) +++ head/sys/ufs/ffs/ffs_vfsops.c Mon Jan 13 02:35:15 2020 (r356671) @@ -1446,6 +1446,23 @@ sync_doupdate(struct inode *ip) IN_UPDATE)) != 0); } +static int +ffs_sync_lazy_filter(struct vnode *vp, void *arg __unused) +{ + struct inode *ip; + + /* + * Flags are safe to access because ->v_data invalidation + * is held off by listmtx. + */ + if (vp->v_type == VNON) + return (false); + ip = VTOI(vp); + if (!sync_doupdate(ip) && (vp->v_iflag & VI_OWEINACT) == 0) + return (false); + return (true); +} + /* * For a lazy sync, we only care about access times, quotas and the * superblock. Other filesystem changes are already converted to @@ -1465,7 +1482,7 @@ ffs_sync_lazy(mp) td = curthread; if ((mp->mnt_flag & MNT_NOATIME) != 0) goto qupdate; - MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { + MNT_VNODE_FOREACH_LAZY(vp, mp, mvp, ffs_sync_lazy_filter, NULL) { if (vp->v_type == VNON) { VI_UNLOCK(vp); continue; Modified: head/sys/ufs/ffs/ffs_vnops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vnops.c Mon Jan 13 02:34:02 2020 (r356670) +++ head/sys/ufs/ffs/ffs_vnops.c Mon Jan 13 02:35:15 2020 (r356671) @@ -113,6 +113,9 @@ static vop_fsync_t ffs_fsync; static vop_getpages_t ffs_getpages; static vop_getpages_async_t ffs_getpages_async; static vop_lock1_t ffs_lock; +#ifdef INVARIANTS +static vop_unlock_t ffs_unlock_debug; +#endif static vop_read_t ffs_read; static vop_write_t ffs_write; static int ffs_extread(struct vnode *vp, struct uio *uio, int ioflag); @@ -135,6 +138,9 @@ struct vop_vector ffs_vnodeops1 = { .vop_getpages = ffs_getpages, .vop_getpages_async = ffs_getpages_async, .vop_lock1 = ffs_lock, +#ifdef INVARIANTS + .vop_unlock = ffs_unlock_debug, +#endif .vop_read = ffs_read, .vop_reallocblks = ffs_reallocblks, .vop_write = ffs_write, @@ -147,6 +153,9 @@ struct vop_vector ffs_fifoops1 = { .vop_fsync = ffs_fsync, .vop_fdatasync = ffs_fdatasync, .vop_lock1 = ffs_lock, +#ifdef INVARIANTS + .vop_unlock = ffs_unlock_debug, +#endif .vop_vptofh = ffs_vptofh, }; VFS_VOP_VECTOR_REGISTER(ffs_fifoops1); @@ -159,6 +168,9 @@ struct vop_vector ffs_vnodeops2 = { .vop_getpages = ffs_getpages, .vop_getpages_async = ffs_getpages_async, .vop_lock1 = ffs_lock, +#ifdef INVARIANTS + .vop_unlock = ffs_unlock_debug, +#endif .vop_read = ffs_read, .vop_reallocblks = ffs_reallocblks, .vop_write = ffs_write, @@ -177,6 +189,9 @@ struct vop_vector ffs_fifoops2 = { .vop_fsync = ffs_fsync, .vop_fdatasync = ffs_fdatasync, .vop_lock1 = ffs_lock, +#ifdef INVARIANTS + .vop_unlock = ffs_unlock_debug, +#endif .vop_reallocblks = ffs_reallocblks, .vop_strategy = ffsext_strategy, .vop_closeextattr = ffs_closeextattr, @@ -463,7 +478,27 @@ ffs_lock(ap) #endif } +#ifdef INVARIANTS static int +ffs_unlock_debug(struct vop_unlock_args *ap) +{ + struct vnode *vp = ap->a_vp; + struct inode *ip = VTOI(vp); + + if (ip->i_flag & UFS_INODE_FLAG_LAZY_MASK) { + if ((vp->v_mflag & VMP_LAZYLIST) == 0) { + VI_LOCK(vp); + VNASSERT((vp->v_mflag & VMP_LAZYLIST), vp, + ("%s: modified vnode (%x) not on lazy list", + __func__, ip->i_flag)); + VI_UNLOCK(vp); + } + } + return (VOP_UNLOCK_APV(&ufs_vnodeops, ap)); +} +#endif + +static int ffs_read_hole(struct uio *uio, long xfersize, long *size) { ssize_t saved_resid, tlen; @@ -665,12 +700,8 @@ ffs_read(ap) vfs_bio_brelse(bp, ioflag); if ((error == 0 || uio->uio_resid != orig_resid) && - (vp->v_mount->mnt_flag & (MNT_NOATIME | MNT_RDONLY)) == 0 && - (ip->i_flag & IN_ACCESS) == 0) { - VI_LOCK(vp); - UFS_INODE_SET_FLAG(ip, IN_ACCESS); - VI_UNLOCK(vp); - } + (vp->v_mount->mnt_flag & (MNT_NOATIME | MNT_RDONLY)) == 0) + UFS_INODE_SET_FLAG_SHARED(ip, IN_ACCESS); return (error); } Modified: head/sys/ufs/ufs/inode.h ============================================================================== --- head/sys/ufs/ufs/inode.h Mon Jan 13 02:34:02 2020 (r356670) +++ head/sys/ufs/ufs/inode.h Mon Jan 13 02:35:15 2020 (r356671) @@ -138,11 +138,32 @@ struct inode { "\14b12\13is_ufs2\12truncated\11ea_lockwait\10ea_locked" \ "\7lazyaccess\6lazymod\5needsync\4modified\3update\2change\1access" +#define UFS_INODE_FLAG_LAZY_MASK \ + (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE | IN_LAZYMOD | IN_LAZYACCESS) + #define UFS_INODE_SET_FLAG(ip, flags) do { \ struct inode *_ip = (ip); \ + struct vnode *_vp = ITOV(_ip); \ int _flags = (flags); \ \ _ip->i_flag |= _flags; \ + if (_flags & UFS_INODE_FLAG_LAZY_MASK) \ + vlazy(_vp); \ +} while (0) + +#define UFS_INODE_SET_FLAG_SHARED(ip, flags) do { \ + struct inode *_ip = (ip); \ + struct vnode *_vp = ITOV(_ip); \ + int _flags = (flags); \ + \ + ASSERT_VI_UNLOCKED(_vp, __func__); \ + if ((_ip->i_flag & (_flags)) != _flags) { \ + VI_LOCK(_vp); \ + _ip->i_flag |= _flags; \ + if (_flags & UFS_INODE_FLAG_LAZY_MASK) \ + vlazy(_vp); \ + VI_UNLOCK(_vp); \ + } \ } while (0) #define i_dirhash i_un.dirhash Modified: head/sys/ufs/ufs/ufs_vnops.c ============================================================================== --- head/sys/ufs/ufs/ufs_vnops.c Mon Jan 13 02:34:02 2020 (r356670) +++ head/sys/ufs/ufs/ufs_vnops.c Mon Jan 13 02:35:15 2020 (r356671) @@ -686,12 +686,9 @@ ufs_markatime(ap) struct vnode *a_vp; } */ *ap; { - struct vnode *vp = ap->a_vp; - struct inode *ip = VTOI(vp); + struct inode *ip = VTOI(ap->a_vp); - VI_LOCK(vp); - UFS_INODE_SET_FLAG(ip, IN_ACCESS); - VI_UNLOCK(vp); + UFS_INODE_SET_FLAG_SHARED(ip, IN_ACCESS); /* * XXXKIB No UFS_UPDATE(ap->a_vp, 0) there. */ From owner-svn-src-all@freebsd.org Mon Jan 13 02:37:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF9191F349E; Mon, 13 Jan 2020 02:37:27 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyRW61rmz3Mj6; Mon, 13 Jan 2020 02:37:27 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B5AFB2585E; Mon, 13 Jan 2020 02:37:27 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D2bR45027819; Mon, 13 Jan 2020 02:37:27 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D2bPhG027806; Mon, 13 Jan 2020 02:37:25 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001130237.00D2bPhG027806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 02:37:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356672 - in head/sys: fs/msdosfs fs/nfsserver fs/tmpfs fs/unionfs kern sys ufs/ufs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: fs/msdosfs fs/nfsserver fs/tmpfs fs/unionfs kern sys ufs/ufs X-SVN-Commit-Revision: 356672 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:37:28 -0000 Author: mjg Date: Mon Jan 13 02:37:25 2020 New Revision: 356672 URL: https://svnweb.freebsd.org/changeset/base/356672 Log: vfs: rework vnode list management The current notion of an active vnode is eliminated. Vnodes transition between 0<->1 hold counts all the time and the associated traversal between different lists induces significant scalability problems in certain workloads. Introduce a global list containing all allocated vnodes. They get unlinked only when UMA reclaims memory and are only requeued when hold count reaches 0. Sample result from an incremental make -s -j 104 bzImage on tmpfs: stock: 118.55s user 3649.73s system 7479% cpu 50.382 total patched: 122.38s user 1780.45s system 6242% cpu 30.480 total Reviewed by: jeff Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D22997 Modified: head/sys/fs/msdosfs/msdosfs_vfsops.c head/sys/fs/nfsserver/nfs_nfsdport.c head/sys/fs/tmpfs/tmpfs_vfsops.c head/sys/fs/unionfs/union_vnops.c head/sys/kern/vfs_mount.c head/sys/kern/vfs_subr.c head/sys/sys/mount.h head/sys/sys/vnode.h head/sys/ufs/ufs/ufs_quota.c Modified: head/sys/fs/msdosfs/msdosfs_vfsops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vfsops.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/fs/msdosfs/msdosfs_vfsops.c Mon Jan 13 02:37:25 2020 (r356672) @@ -792,7 +792,7 @@ msdosfs_unmount(struct mount *mp, int mntflags) vn_printf(vp, "msdosfs_umount(): just before calling VOP_CLOSE()\n"); printf("freef %p, freeb %p, mount %p\n", - TAILQ_NEXT(vp, v_actfreelist), vp->v_actfreelist.tqe_prev, + TAILQ_NEXT(vp, v_vnodelist), vp->v_vnodelist.tqe_prev, vp->v_mount); printf("cleanblkhd %p, dirtyblkhd %p, numoutput %ld, type %d\n", TAILQ_FIRST(&vp->v_bufobj.bo_clean.bv_hd), Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Mon Jan 13 02:37:25 2020 (r356672) @@ -3317,7 +3317,6 @@ nfsd_mntinit(void) inited = 1; nfsv4root_mnt.mnt_flag = (MNT_RDONLY | MNT_EXPORTED); TAILQ_INIT(&nfsv4root_mnt.mnt_nvnodelist); - TAILQ_INIT(&nfsv4root_mnt.mnt_activevnodelist); TAILQ_INIT(&nfsv4root_mnt.mnt_lazyvnodelist); nfsv4root_mnt.mnt_export = NULL; TAILQ_INIT(&nfsv4root_opt); @@ -3325,7 +3324,6 @@ nfsd_mntinit(void) nfsv4root_mnt.mnt_opt = &nfsv4root_opt; nfsv4root_mnt.mnt_optnew = &nfsv4root_newopt; nfsv4root_mnt.mnt_nvnodelistsize = 0; - nfsv4root_mnt.mnt_activevnodelistsize = 0; nfsv4root_mnt.mnt_lazyvnodelistsize = 0; } Modified: head/sys/fs/tmpfs/tmpfs_vfsops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vfsops.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/fs/tmpfs/tmpfs_vfsops.c Mon Jan 13 02:37:25 2020 (r356672) @@ -101,7 +101,7 @@ static const char *tmpfs_updateopts[] = { /* * Handle updates of time from writes to mmaped regions. Use - * MNT_VNODE_FOREACH_ALL instead of MNT_VNODE_FOREACH_ACTIVE, since + * MNT_VNODE_FOREACH_ALL instead of MNT_VNODE_FOREACH_LAZY, since * unmap of the tmpfs-backed vnode does not call vinactive(), due to * vm object type is OBJT_SWAP. * If lazy, only handle delayed update of mtime due to the writes to Modified: head/sys/fs/unionfs/union_vnops.c ============================================================================== --- head/sys/fs/unionfs/union_vnops.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/fs/unionfs/union_vnops.c Mon Jan 13 02:37:25 2020 (r356672) @@ -1706,7 +1706,7 @@ unionfs_getwritemount(struct vop_getwritemount_args *a error = VOP_GETWRITEMOUNT(uvp, ap->a_mpp); else { VI_LOCK(vp); - if (vp->v_iflag & VI_FREE) + if (vp->v_holdcnt == 0) error = EOPNOTSUPP; else error = EACCES; Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/kern/vfs_mount.c Mon Jan 13 02:37:25 2020 (r356672) @@ -502,10 +502,6 @@ vfs_mount_alloc(struct vnode *vp, struct vfsconf *vfsp __rangeof(struct mount, mnt_startzero, mnt_endzero)); TAILQ_INIT(&mp->mnt_nvnodelist); mp->mnt_nvnodelistsize = 0; - TAILQ_INIT(&mp->mnt_activevnodelist); - mp->mnt_activevnodelistsize = 0; - TAILQ_INIT(&mp->mnt_tmpfreevnodelist); - mp->mnt_tmpfreevnodelistsize = 0; TAILQ_INIT(&mp->mnt_lazyvnodelist); mp->mnt_lazyvnodelistsize = 0; if (mp->mnt_ref != 0 || mp->mnt_lockref != 0 || @@ -573,10 +569,6 @@ vfs_mount_destroy(struct mount *mp) KASSERT(TAILQ_EMPTY(&mp->mnt_uppers), ("mnt_uppers")); if (mp->mnt_nvnodelistsize != 0) panic("vfs_mount_destroy: nonzero nvnodelistsize"); - if (mp->mnt_activevnodelistsize != 0) - panic("vfs_mount_destroy: nonzero activevnodelistsize"); - if (mp->mnt_tmpfreevnodelistsize != 0) - panic("vfs_mount_destroy: nonzero tmpfreevnodelistsize"); if (mp->mnt_lazyvnodelistsize != 0) panic("vfs_mount_destroy: nonzero lazyvnodelistsize"); if (mp->mnt_lockref != 0) Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/kern/vfs_subr.c Mon Jan 13 02:37:25 2020 (r356672) @@ -114,7 +114,6 @@ static void vfs_knllock(void *arg); static void vfs_knlunlock(void *arg); static void vfs_knl_assert_locked(void *arg); static void vfs_knl_assert_unlocked(void *arg); -static void vnlru_return_batches(struct vfsops *mnt_op); static void destroy_vpollinfo(struct vpollinfo *vi); static int v_inval_buf_range_locked(struct vnode *vp, struct bufobj *bo, daddr_t startlbn, daddr_t endlbn); @@ -149,10 +148,6 @@ static counter_u64_t vnodes_created; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, vnodes_created, CTLFLAG_RD, &vnodes_created, "Number of vnodes created by getnewvnode"); -static u_long mnt_free_list_batch = 128; -SYSCTL_ULONG(_vfs, OID_AUTO, mnt_free_list_batch, CTLFLAG_RW, - &mnt_free_list_batch, 0, "Limit of vnodes held on mnt's free list"); - /* * Conversion tables for conversion from vnode types to inode formats * and back. @@ -167,9 +162,10 @@ int vttoif_tab[10] = { }; /* - * List of vnodes that are ready for recycling. + * List of allocates vnodes in the system. */ -static TAILQ_HEAD(freelst, vnode) vnode_free_list; +static TAILQ_HEAD(freelst, vnode) vnode_list; +static struct vnode *vnode_list_free_marker; /* * "Free" vnode target. Free vnodes are rarely completely free, but are @@ -195,7 +191,7 @@ static TAILQ_HEAD(freelst, vnode) vnode_free_list; * whenever vnlru_proc() becomes active. */ static u_long wantfreevnodes; -static u_long freevnodes; +static u_long __exclusive_cache_line freevnodes; SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, "Number of \"free\" vnodes"); @@ -225,11 +221,11 @@ static struct mtx mntid_mtx; /* * Lock for any access to the following: - * vnode_free_list + * vnode_list * numvnodes * freevnodes */ -static struct mtx __exclusive_cache_line vnode_free_list_mtx; +static struct mtx __exclusive_cache_line vnode_list_mtx; /* Publicly exported FS */ struct nfs_public nfs_pub; @@ -332,11 +328,11 @@ sysctl_maxvnodes(SYSCTL_HANDLER_ARGS) if (val == desiredvnodes) return (0); - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); desiredvnodes = val; wantfreevnodes = desiredvnodes / 4; vnlru_recalc(); - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); /* * XXX There is no protection against multiple threads changing * desiredvnodes at the same time. Locking above only helps vnlru and @@ -364,10 +360,10 @@ sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS) if (val == wantfreevnodes) return (0); - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); wantfreevnodes = val; vnlru_recalc(); - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); return (0); } @@ -555,6 +551,10 @@ vnode_init(void *mem, int size, int flags) * Initialize rangelocks. */ rangelock_init(&vp->v_rl); + + mtx_lock(&vnode_list_mtx); + TAILQ_INSERT_BEFORE(vnode_list_free_marker, vp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); return (0); } @@ -568,6 +568,9 @@ vnode_fini(void *mem, int size) struct bufobj *bo; vp = mem; + mtx_lock(&vnode_list_mtx); + TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); rangelock_destroy(&vp->v_rl); lockdestroy(vp->v_vnlock); mtx_destroy(&vp->v_interlock); @@ -626,14 +629,16 @@ vntblinit(void *dummy __unused) } wantfreevnodes = desiredvnodes / 4; mtx_init(&mntid_mtx, "mntid", NULL, MTX_DEF); - TAILQ_INIT(&vnode_free_list); - mtx_init(&vnode_free_list_mtx, "vnode_free_list", NULL, MTX_DEF); + TAILQ_INIT(&vnode_list); + mtx_init(&vnode_list_mtx, "vnode_list", NULL, MTX_DEF); /* * The lock is taken to appease WITNESS. */ - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); vnlru_recalc(); - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); + vnode_list_free_marker = vn_alloc_marker(NULL); + TAILQ_INSERT_HEAD(&vnode_list, vnode_list_free_marker, v_vnodelist); vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); vnodepoll_zone = uma_zcreate("VNODEPOLL", sizeof (struct vpollinfo), @@ -1102,7 +1107,7 @@ vlrureclaim(struct mount *mp, bool reclaim_nc_src, int */ if (vp->v_usecount || (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || - ((vp->v_iflag & VI_FREE) != 0) || + vp->v_holdcnt == 0 || VN_IS_DOOMED(vp) || (vp->v_object != NULL && vp->v_object->resident_page_count > trigger)) { VI_UNLOCK(vp); @@ -1171,38 +1176,25 @@ SYSCTL_INT(_debug, OID_AUTO, max_vnlru_free, CTLFLAG_R static void vnlru_free_locked(int count, struct vfsops *mnt_op) { - struct vnode *vp; + struct vnode *vp, *mvp; struct mount *mp; - bool tried_batches; - tried_batches = false; - mtx_assert(&vnode_free_list_mtx, MA_OWNED); + mtx_assert(&vnode_list_mtx, MA_OWNED); if (count > max_vnlru_free) count = max_vnlru_free; - for (; count > 0; count--) { - vp = TAILQ_FIRST(&vnode_free_list); - /* - * The list can be modified while the free_list_mtx - * has been dropped and vp could be NULL here. - */ - if (vp == NULL) { - if (tried_batches) - break; - mtx_unlock(&vnode_free_list_mtx); - vnlru_return_batches(mnt_op); - tried_batches = true; - mtx_lock(&vnode_free_list_mtx); - continue; + mvp = vnode_list_free_marker; +restart: + vp = mvp; + while (count > 0) { + vp = TAILQ_NEXT(vp, v_vnodelist); + if (__predict_false(vp == NULL)) { + TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); + TAILQ_INSERT_TAIL(&vnode_list, mvp, v_vnodelist); + break; } + if (__predict_false(vp->v_type == VMARKER)) + continue; - VNASSERT(vp->v_op != NULL, vp, - ("vnlru_free: vnode already reclaimed.")); - KASSERT((vp->v_iflag & VI_FREE) != 0, - ("Removing vnode not on freelist")); - KASSERT((vp->v_iflag & VI_ACTIVE) == 0, - ("Mangling active vnode")); - TAILQ_REMOVE(&vnode_free_list, vp, v_actfreelist); - /* * Don't recycle if our vnode is from different type * of mount point. Note that mp is type-safe, the @@ -1211,37 +1203,24 @@ vnlru_free_locked(int count, struct vfsops *mnt_op) * Don't recycle if we can't get the interlock without * blocking. */ - if ((mnt_op != NULL && (mp = vp->v_mount) != NULL && + if (vp->v_holdcnt > 0 || (mnt_op != NULL && (mp = vp->v_mount) != NULL && mp->mnt_op != mnt_op) || !VI_TRYLOCK(vp)) { - TAILQ_INSERT_TAIL(&vnode_free_list, vp, v_actfreelist); continue; } - VNASSERT((vp->v_iflag & VI_FREE) != 0 && vp->v_holdcnt == 0, - vp, ("vp inconsistent on freelist")); - - /* - * The clear of VI_FREE prevents activation of the - * vnode. There is no sense in putting the vnode on - * the mount point active list, only to remove it - * later during recycling. Inline the relevant part - * of vholdl(), to avoid triggering assertions or - * activating. - */ - freevnodes--; - vp->v_iflag &= ~VI_FREE; - VNODE_REFCOUNT_FENCE_REL(); - refcount_acquire(&vp->v_holdcnt); - - mtx_unlock(&vnode_free_list_mtx); + TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); + TAILQ_INSERT_AFTER(&vnode_list, vp, mvp, v_vnodelist); + if (__predict_false(vp->v_type == VBAD || vp->v_type == VNON)) { + VI_UNLOCK(vp); + continue; + } + vholdl(vp); + count--; + mtx_unlock(&vnode_list_mtx); VI_UNLOCK(vp); vtryrecycle(vp); - /* - * If the recycled succeeded this vdrop will actually free - * the vnode. If not it will simply place it back on - * the free list. - */ vdrop(vp); - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); + goto restart; } } @@ -1249,16 +1228,16 @@ void vnlru_free(int count, struct vfsops *mnt_op) { - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); vnlru_free_locked(count, mnt_op); - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); } static void vnlru_recalc(void) { - mtx_assert(&vnode_free_list_mtx, MA_OWNED); + mtx_assert(&vnode_list_mtx, MA_OWNED); gapvnodes = imax(desiredvnodes - wantfreevnodes, 100); vhiwat = gapvnodes / 11; /* 9% -- just under the 10% in vlrureclaim() */ vlowat = vhiwat / 2; @@ -1281,63 +1260,6 @@ vspace(void) return (space); } -static void -vnlru_return_batch_locked(struct mount *mp) -{ - struct vnode *vp; - - mtx_assert(&mp->mnt_listmtx, MA_OWNED); - - if (mp->mnt_tmpfreevnodelistsize == 0) - return; - - TAILQ_FOREACH(vp, &mp->mnt_tmpfreevnodelist, v_actfreelist) { - VNASSERT((vp->v_mflag & VMP_TMPMNTFREELIST) != 0, vp, - ("vnode without VMP_TMPMNTFREELIST on mnt_tmpfreevnodelist")); - vp->v_mflag &= ~VMP_TMPMNTFREELIST; - } - mtx_lock(&vnode_free_list_mtx); - TAILQ_CONCAT(&vnode_free_list, &mp->mnt_tmpfreevnodelist, v_actfreelist); - freevnodes += mp->mnt_tmpfreevnodelistsize; - mtx_unlock(&vnode_free_list_mtx); - mp->mnt_tmpfreevnodelistsize = 0; -} - -static void -vnlru_return_batch(struct mount *mp) -{ - - mtx_lock(&mp->mnt_listmtx); - vnlru_return_batch_locked(mp); - mtx_unlock(&mp->mnt_listmtx); -} - -static void -vnlru_return_batches(struct vfsops *mnt_op) -{ - struct mount *mp, *nmp; - bool need_unbusy; - - mtx_lock(&mountlist_mtx); - for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { - need_unbusy = false; - if (mnt_op != NULL && mp->mnt_op != mnt_op) - goto next; - if (mp->mnt_tmpfreevnodelistsize == 0) - goto next; - if (vfs_busy(mp, MBF_NOWAIT | MBF_MNTLSTLOCK) == 0) { - vnlru_return_batch(mp); - need_unbusy = true; - mtx_lock(&mountlist_mtx); - } -next: - nmp = TAILQ_NEXT(mp, mnt_list); - if (need_unbusy) - vfs_unbusy(mp); - } - mtx_unlock(&mountlist_mtx); -} - /* * Attempt to recycle vnodes in a context that is always safe to block. * Calling vlrurecycle() from the bowels of filesystem code has some @@ -1361,7 +1283,7 @@ vnlru_proc(void) force = 0; for (;;) { kproc_suspend_check(vnlruproc); - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); rnumvnodes = atomic_load_long(&numvnodes); /* * If numvnodes is too large (due to desiredvnodes being @@ -1385,11 +1307,11 @@ vnlru_proc(void) if (vsp >= vlowat && force == 0) { vnlruproc_sig = 0; wakeup(&vnlruproc_sig); - msleep(vnlruproc, &vnode_free_list_mtx, + msleep(vnlruproc, &vnode_list_mtx, PVFS|PDROP, "vlruwt", hz); continue; } - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); done = 0; rnumvnodes = atomic_load_long(&numvnodes); rfreevnodes = atomic_load_long(&freevnodes); @@ -1548,7 +1470,7 @@ static int vn_alloc_wait(int suspended) { - mtx_assert(&vnode_free_list_mtx, MA_OWNED); + mtx_assert(&vnode_list_mtx, MA_OWNED); if (numvnodes >= desiredvnodes) { if (suspended) { /* @@ -1562,7 +1484,7 @@ vn_alloc_wait(int suspended) vnlruproc_sig = 1; /* avoid unnecessary wakeups */ wakeup(vnlruproc); } - msleep(&vnlruproc_sig, &vnode_free_list_mtx, PVFS, + msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, "vlruwk", hz); } /* Post-adjust like the pre-adjust in getnewvnode(). */ @@ -1577,7 +1499,7 @@ vn_alloc(struct mount *mp) static int cyclecount; int error __unused; - mtx_lock(&vnode_free_list_mtx); + mtx_lock(&vnode_list_mtx); if (numvnodes < desiredvnodes) cyclecount = 0; else if (cyclecount++ >= freevnodes) { @@ -1603,14 +1525,14 @@ vn_alloc(struct mount *mp) MNTK_SUSPEND)); #if 0 /* XXX Not all VFS_VGET/ffs_vget callers check returns. */ if (error != 0) { - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); return (error); } #endif } vcheckspace(); atomic_add_long(&numvnodes, 1); - mtx_unlock(&vnode_free_list_mtx); + mtx_unlock(&vnode_list_mtx); return (uma_zalloc(vnode_zone, M_WAITOK)); } @@ -1745,8 +1667,6 @@ freevnode(struct vnode *vp) */ CTR2(KTR_VFS, "%s: destroying the vnode %p", __func__, vp); bo = &vp->v_bufobj; - VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, - ("cleaned vnode still on the free list.")); VNASSERT(vp->v_data == NULL, vp, ("cleaned vnode isn't")); VNASSERT(vp->v_holdcnt == 0, vp, ("Non-zero hold count")); VNASSERT(vp->v_usecount == 0, vp, ("Non-zero use count")); @@ -1800,16 +1720,6 @@ delmntque(struct vnode *vp) return; MNT_ILOCK(mp); VI_LOCK(vp); - KASSERT(mp->mnt_activevnodelistsize <= mp->mnt_nvnodelistsize, - ("Active vnode list size %d > Vnode list size %d", - mp->mnt_activevnodelistsize, mp->mnt_nvnodelistsize)); - if (vp->v_iflag & VI_ACTIVE) { - vp->v_iflag &= ~VI_ACTIVE; - mtx_lock(&mp->mnt_listmtx); - TAILQ_REMOVE(&mp->mnt_activevnodelist, vp, v_actfreelist); - mp->mnt_activevnodelistsize--; - mtx_unlock(&mp->mnt_listmtx); - } if (vp->v_mflag & VMP_LAZYLIST) { mtx_lock(&mp->mnt_listmtx); if (vp->v_mflag & VMP_LAZYLIST) { @@ -1879,13 +1789,6 @@ insmntque1(struct vnode *vp, struct mount *mp, VNASSERT(mp->mnt_nvnodelistsize >= 0, vp, ("neg mount point vnode list size")); mp->mnt_nvnodelistsize++; - KASSERT((vp->v_iflag & VI_ACTIVE) == 0, - ("Activating already active vnode")); - vp->v_iflag |= VI_ACTIVE; - mtx_lock(&mp->mnt_listmtx); - TAILQ_INSERT_HEAD(&mp->mnt_activevnodelist, vp, v_actfreelist); - mp->mnt_activevnodelistsize++; - mtx_unlock(&mp->mnt_listmtx); VI_UNLOCK(vp); MNT_IUNLOCK(mp); return (0); @@ -3247,38 +3150,13 @@ vunref(struct vnode *vp) static void vhold_activate(struct vnode *vp) { - struct mount *mp; ASSERT_VI_LOCKED(vp, __func__); VNASSERT(vp->v_holdcnt == 0, vp, ("%s: wrong hold count", __func__)); VNASSERT(vp->v_op != NULL, vp, ("%s: vnode already reclaimed.", __func__)); - /* - * Remove a vnode from the free list, mark it as in use, - * and put it on the active list. - */ - VNASSERT(vp->v_mount != NULL, vp, - ("_vhold: vnode not on per mount vnode list")); - mp = vp->v_mount; - mtx_lock(&mp->mnt_listmtx); - if ((vp->v_mflag & VMP_TMPMNTFREELIST) != 0) { - TAILQ_REMOVE(&mp->mnt_tmpfreevnodelist, vp, v_actfreelist); - mp->mnt_tmpfreevnodelistsize--; - vp->v_mflag &= ~VMP_TMPMNTFREELIST; - } else { - mtx_lock(&vnode_free_list_mtx); - TAILQ_REMOVE(&vnode_free_list, vp, v_actfreelist); - freevnodes--; - mtx_unlock(&vnode_free_list_mtx); - } - KASSERT((vp->v_iflag & VI_ACTIVE) == 0, - ("Activating already active vnode")); - vp->v_iflag &= ~VI_FREE; - vp->v_iflag |= VI_ACTIVE; - TAILQ_INSERT_HEAD(&mp->mnt_activevnodelist, vp, v_actfreelist); - mp->mnt_activevnodelistsize++; - mtx_unlock(&mp->mnt_listmtx); + atomic_subtract_long(&freevnodes, 1); refcount_acquire(&vp->v_holdcnt); } @@ -3288,12 +3166,8 @@ vhold(struct vnode *vp) ASSERT_VI_UNLOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - if (refcount_acquire_if_not_zero(&vp->v_holdcnt)) { - VNODE_REFCOUNT_FENCE_ACQ(); - VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, - ("vhold: vnode with holdcnt is free")); + if (refcount_acquire_if_not_zero(&vp->v_holdcnt)) return; - } VI_LOCK(vp); vholdl(vp); VI_UNLOCK(vp); @@ -3305,7 +3179,7 @@ vholdl(struct vnode *vp) ASSERT_VI_LOCKED(vp, __func__); CTR2(KTR_VFS, "%s: vp %p", __func__, vp); - if ((vp->v_iflag & VI_FREE) == 0) { + if (vp->v_holdcnt > 0) { refcount_acquire(&vp->v_holdcnt); return; } @@ -3348,34 +3222,26 @@ vdrop_deactivate(struct vnode *vp) ("vdrop: returning doomed vnode")); VNASSERT(vp->v_op != NULL, vp, ("vdrop: vnode already reclaimed.")); - VNASSERT((vp->v_iflag & VI_FREE) == 0, vp, - ("vnode already free")); + VNASSERT(vp->v_holdcnt == 0, vp, + ("vdrop: freeing when we shouldn't")); VNASSERT((vp->v_iflag & VI_OWEINACT) == 0, vp, ("vnode with VI_OWEINACT set")); VNASSERT((vp->v_iflag & VI_DEFINACT) == 0, vp, ("vnode with VI_DEFINACT set")); - VNASSERT(vp->v_holdcnt == 0, vp, - ("vdrop: freeing when we shouldn't")); - mp = vp->v_mount; - mtx_lock(&mp->mnt_listmtx); if (vp->v_mflag & VMP_LAZYLIST) { + mp = vp->v_mount; + mtx_lock(&mp->mnt_listmtx); vp->v_mflag &= ~VMP_LAZYLIST; TAILQ_REMOVE(&mp->mnt_lazyvnodelist, vp, v_lazylist); mp->mnt_lazyvnodelistsize--; + mtx_unlock(&mp->mnt_listmtx); } - if (vp->v_iflag & VI_ACTIVE) { - vp->v_iflag &= ~VI_ACTIVE; - TAILQ_REMOVE(&mp->mnt_activevnodelist, vp, v_actfreelist); - mp->mnt_activevnodelistsize--; - } - TAILQ_INSERT_TAIL(&mp->mnt_tmpfreevnodelist, vp, v_actfreelist); - mp->mnt_tmpfreevnodelistsize++; - vp->v_iflag |= VI_FREE; - vp->v_mflag |= VMP_TMPMNTFREELIST; + mtx_lock(&vnode_list_mtx); + TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); + TAILQ_INSERT_TAIL(&vnode_list, vp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); + atomic_add_long(&freevnodes, 1); VI_UNLOCK(vp); - if (mp->mnt_tmpfreevnodelistsize >= mnt_free_list_batch) - vnlru_return_batch_locked(mp); - mtx_unlock(&mp->mnt_listmtx); } void @@ -3922,27 +3788,21 @@ vn_printf(struct vnode *vp, const char *fmt, ...) strlcat(buf, "|VI_TEXT_REF", sizeof(buf)); if (vp->v_iflag & VI_MOUNT) strlcat(buf, "|VI_MOUNT", sizeof(buf)); - if (vp->v_iflag & VI_FREE) - strlcat(buf, "|VI_FREE", sizeof(buf)); - if (vp->v_iflag & VI_ACTIVE) - strlcat(buf, "|VI_ACTIVE", sizeof(buf)); if (vp->v_iflag & VI_DOINGINACT) strlcat(buf, "|VI_DOINGINACT", sizeof(buf)); if (vp->v_iflag & VI_OWEINACT) strlcat(buf, "|VI_OWEINACT", sizeof(buf)); if (vp->v_iflag & VI_DEFINACT) strlcat(buf, "|VI_DEFINACT", sizeof(buf)); - flags = vp->v_iflag & ~(VI_TEXT_REF | VI_MOUNT | VI_FREE | VI_ACTIVE | - VI_DOINGINACT | VI_OWEINACT | VI_DEFINACT); + flags = vp->v_iflag & ~(VI_TEXT_REF | VI_MOUNT | VI_DOINGINACT | + VI_OWEINACT | VI_DEFINACT); if (flags != 0) { snprintf(buf2, sizeof(buf2), "|VI(0x%lx)", flags); strlcat(buf, buf2, sizeof(buf)); } - if (vp->v_mflag & VMP_TMPMNTFREELIST) - strlcat(buf, "|VMP_TMPMNTFREELIST", sizeof(buf)); if (vp->v_mflag & VMP_LAZYLIST) strlcat(buf, "|VMP_LAZYLIST", sizeof(buf)); - flags = vp->v_mflag & ~(VMP_TMPMNTFREELIST | VMP_LAZYLIST); + flags = vp->v_mflag & ~(VMP_LAZYLIST); if (flags != 0) { snprintf(buf2, sizeof(buf2), "|VMP(0x%lx)", flags); strlcat(buf, buf2, sizeof(buf)); @@ -4160,8 +4020,6 @@ DB_SHOW_COMMAND(mount, db_show_mount) vfs_mount_fetch_counter(mp, MNT_COUNT_REF), mp->mnt_ref); db_printf(" mnt_gen = %d\n", mp->mnt_gen); db_printf(" mnt_nvnodelistsize = %d\n", mp->mnt_nvnodelistsize); - db_printf(" mnt_activevnodelistsize = %d\n", - mp->mnt_activevnodelistsize); db_printf(" mnt_lazyvnodelistsize = %d\n", mp->mnt_lazyvnodelistsize); db_printf(" mnt_writeopcount = %d (with %d in the struct)\n", @@ -4179,8 +4037,8 @@ DB_SHOW_COMMAND(mount, db_show_mount) db_printf(" mnt_vfs_ops = %d\n", mp->mnt_vfs_ops); db_printf("\n\nList of active vnodes\n"); - TAILQ_FOREACH(vp, &mp->mnt_activevnodelist, v_actfreelist) { - if (vp->v_type != VMARKER) { + TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) { + if (vp->v_type != VMARKER && vp->v_holdcnt > 0) { vn_printf(vp, "vnode "); if (db_pager_quit) break; @@ -4188,7 +4046,7 @@ DB_SHOW_COMMAND(mount, db_show_mount) } db_printf("\n\nList of inactive vnodes\n"); TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) { - if (vp->v_type != VMARKER && (vp->v_iflag & VI_ACTIVE) == 0) { + if (vp->v_type != VMARKER && vp->v_holdcnt == 0) { vn_printf(vp, "vnode "); if (db_pager_quit) break; @@ -4838,7 +4696,6 @@ sync_fsync(struct vop_fsync_args *ap) * The filesystem at hand may be idle with free vnodes stored in the * batch. Return them instead of letting them stay there indefinitely. */ - vnlru_return_batch(mp); vfs_periodic(mp, MNT_NOWAIT); error = VFS_SYNC(mp, MNT_LAZY); curthread_pflags_restore(save); @@ -6114,191 +5971,6 @@ __mnt_vnode_markerfree_all(struct vnode **mvp, struct /* * These are helper functions for filesystems to traverse their - * active vnodes. See MNT_VNODE_FOREACH_ACTIVE() in sys/mount.h - */ -static void -mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *mp) -{ - - KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); - - MNT_ILOCK(mp); - MNT_REL(mp); - MNT_IUNLOCK(mp); - vn_free_marker(*mvp); - *mvp = NULL; -} - -/* - * Relock the mp mount vnode list lock with the vp vnode interlock in the - * conventional lock order during mnt_vnode_next_active iteration. - * - * On entry, the mount vnode list lock is held and the vnode interlock is not. - * The list lock is dropped and reacquired. On success, both locks are held. - * On failure, the mount vnode list lock is held but the vnode interlock is - * not, and the procedure may have yielded. - */ -static bool -mnt_vnode_next_active_relock(struct vnode *mvp, struct mount *mp, - struct vnode *vp) -{ - const struct vnode *tmp; - bool held, ret; - - VNASSERT(mvp->v_mount == mp && mvp->v_type == VMARKER && - TAILQ_NEXT(mvp, v_actfreelist) != NULL, mvp, - ("%s: bad marker", __func__)); - VNASSERT(vp->v_mount == mp && vp->v_type != VMARKER, vp, - ("%s: inappropriate vnode", __func__)); - ASSERT_VI_UNLOCKED(vp, __func__); - mtx_assert(&mp->mnt_listmtx, MA_OWNED); - - ret = false; - - TAILQ_REMOVE(&mp->mnt_activevnodelist, mvp, v_actfreelist); - TAILQ_INSERT_BEFORE(vp, mvp, v_actfreelist); - - /* - * Use a hold to prevent vp from disappearing while the mount vnode - * list lock is dropped and reacquired. Normally a hold would be - * acquired with vhold(), but that might try to acquire the vnode - * interlock, which would be a LOR with the mount vnode list lock. - */ - held = refcount_acquire_if_not_zero(&vp->v_holdcnt); - mtx_unlock(&mp->mnt_listmtx); - if (!held) - goto abort; - VI_LOCK(vp); - if (!refcount_release_if_not_last(&vp->v_holdcnt)) { - vdropl(vp); - goto abort; - } - mtx_lock(&mp->mnt_listmtx); - - /* - * Determine whether the vnode is still the next one after the marker, - * excepting any other markers. If the vnode has not been doomed by - * vgone() then the hold should have ensured that it remained on the - * active list. If it has been doomed but is still on the active list, - * don't abort, but rather skip over it (avoid spinning on doomed - * vnodes). - */ - tmp = mvp; - do { - tmp = TAILQ_NEXT(tmp, v_actfreelist); - } while (tmp != NULL && tmp->v_type == VMARKER); - if (tmp != vp) { - mtx_unlock(&mp->mnt_listmtx); - VI_UNLOCK(vp); - goto abort; - } - - ret = true; - goto out; -abort: - maybe_yield(); - mtx_lock(&mp->mnt_listmtx); -out: - if (ret) - ASSERT_VI_LOCKED(vp, __func__); - else - ASSERT_VI_UNLOCKED(vp, __func__); - mtx_assert(&mp->mnt_listmtx, MA_OWNED); - return (ret); -} - -static struct vnode * -mnt_vnode_next_active(struct vnode **mvp, struct mount *mp) -{ - struct vnode *vp, *nvp; - - mtx_assert(&mp->mnt_listmtx, MA_OWNED); - KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); -restart: - vp = TAILQ_NEXT(*mvp, v_actfreelist); - while (vp != NULL) { - if (vp->v_type == VMARKER) { - vp = TAILQ_NEXT(vp, v_actfreelist); - continue; - } - /* - * Try-lock because this is the wrong lock order. If that does - * not succeed, drop the mount vnode list lock and try to - * reacquire it and the vnode interlock in the right order. - */ - if (!VI_TRYLOCK(vp) && - !mnt_vnode_next_active_relock(*mvp, mp, vp)) - goto restart; - KASSERT(vp->v_type != VMARKER, ("locked marker %p", vp)); - KASSERT(vp->v_mount == mp || vp->v_mount == NULL, - ("alien vnode on the active list %p %p", vp, mp)); - if (vp->v_mount == mp && !VN_IS_DOOMED(vp)) - break; - nvp = TAILQ_NEXT(vp, v_actfreelist); - VI_UNLOCK(vp); - vp = nvp; - } - TAILQ_REMOVE(&mp->mnt_activevnodelist, *mvp, v_actfreelist); - - /* Check if we are done */ - if (vp == NULL) { - mtx_unlock(&mp->mnt_listmtx); - mnt_vnode_markerfree_active(mvp, mp); - return (NULL); - } - TAILQ_INSERT_AFTER(&mp->mnt_activevnodelist, vp, *mvp, v_actfreelist); - mtx_unlock(&mp->mnt_listmtx); - ASSERT_VI_LOCKED(vp, "active iter"); - KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); - return (vp); -} - -struct vnode * -__mnt_vnode_next_active(struct vnode **mvp, struct mount *mp) -{ - - if (should_yield()) - kern_yield(PRI_USER); - mtx_lock(&mp->mnt_listmtx); - return (mnt_vnode_next_active(mvp, mp)); -} - -struct vnode * -__mnt_vnode_first_active(struct vnode **mvp, struct mount *mp) -{ - struct vnode *vp; - - *mvp = vn_alloc_marker(mp); - MNT_ILOCK(mp); - MNT_REF(mp); - MNT_IUNLOCK(mp); - - mtx_lock(&mp->mnt_listmtx); - vp = TAILQ_FIRST(&mp->mnt_activevnodelist); - if (vp == NULL) { - mtx_unlock(&mp->mnt_listmtx); - mnt_vnode_markerfree_active(mvp, mp); - return (NULL); - } - TAILQ_INSERT_BEFORE(vp, *mvp, v_actfreelist); - return (mnt_vnode_next_active(mvp, mp)); -} - -void -__mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *mp) -{ - - if (*mvp == NULL) - return; - - mtx_lock(&mp->mnt_listmtx); - TAILQ_REMOVE(&mp->mnt_activevnodelist, *mvp, v_actfreelist); - mtx_unlock(&mp->mnt_listmtx); - mnt_vnode_markerfree_active(mvp, mp); -} - -/* - * These are helper functions for filesystems to traverse their * lazy vnodes. See MNT_VNODE_FOREACH_LAZY() in sys/mount.h */ static void @@ -6310,7 +5982,7 @@ mnt_vnode_markerfree_lazy(struct vnode **mvp, struct m MNT_ILOCK(mp); MNT_REL(mp); MNT_IUNLOCK(mp); - free(*mvp, M_VNODE_MARKER); + vn_free_marker(*mvp); *mvp = NULL; } @@ -6454,7 +6126,6 @@ restart: TAILQ_INSERT_AFTER(&mp->mnt_lazyvnodelist, vp, *mvp, v_lazylist); mtx_unlock(&mp->mnt_listmtx); ASSERT_VI_LOCKED(vp, "lazy iter"); - KASSERT((vp->v_iflag & VI_ACTIVE) != 0, ("Non-active vp %p", vp)); return (vp); } @@ -6475,12 +6146,10 @@ __mnt_vnode_first_lazy(struct vnode **mvp, struct moun { struct vnode *vp; - *mvp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); + *mvp = vn_alloc_marker(mp); MNT_ILOCK(mp); MNT_REF(mp); MNT_IUNLOCK(mp); - (*mvp)->v_type = VMARKER; - (*mvp)->v_mount = mp; mtx_lock(&mp->mnt_listmtx); vp = TAILQ_FIRST(&mp->mnt_lazyvnodelist); Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/sys/mount.h Mon Jan 13 02:37:25 2020 (r356672) @@ -219,10 +219,6 @@ struct mount { #define mnt_endzero mnt_gjprovider char *mnt_gjprovider; /* gjournal provider name */ struct mtx mnt_listmtx; - struct vnodelst mnt_activevnodelist; /* (l) list of active vnodes */ - int mnt_activevnodelistsize;/* (l) # of active vnodes */ - struct vnodelst mnt_tmpfreevnodelist; /* (l) list of free vnodes */ - int mnt_tmpfreevnodelistsize;/* (l) # of free vnodes */ struct vnodelst mnt_lazyvnodelist; /* (l) list of lazy vnodes */ int mnt_lazyvnodelistsize; /* (l) # of lazy vnodes */ struct lock mnt_explock; /* vfs_export walkers lock */ @@ -254,20 +250,6 @@ void __mnt_vnode_markerfree_all(struct vnode /* MNT_IUNLOCK(mp); -- done in above function */ \ mtx_assert(MNT_MTX(mp), MA_NOTOWNED); \ } while (0) - -/* - * Definitions for MNT_VNODE_FOREACH_ACTIVE. - */ -struct vnode *__mnt_vnode_next_active(struct vnode **mvp, struct mount *mp); -struct vnode *__mnt_vnode_first_active(struct vnode **mvp, struct mount *mp); -void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *); - -#define MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) \ - for (vp = __mnt_vnode_first_active(&(mvp), (mp)); \ - (vp) != NULL; vp = __mnt_vnode_next_active(&(mvp), (mp))) - -#define MNT_VNODE_FOREACH_ACTIVE_ABORT(mp, mvp) \ - __mnt_vnode_markerfree_active(&(mvp), (mp)) /* * Definitions for MNT_VNODE_FOREACH_LAZY. Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/sys/vnode.h Mon Jan 13 02:37:25 2020 (r356672) @@ -147,7 +147,7 @@ struct vnode { /* * The machinery of being a vnode */ - TAILQ_ENTRY(vnode) v_actfreelist; /* l vnode active/free lists */ + TAILQ_ENTRY(vnode) v_vnodelist; /* l vnode lists */ TAILQ_ENTRY(vnode) v_lazylist; /* l vnode lazy list */ struct bufobj v_bufobj; /* * Buffer cache object */ @@ -239,8 +239,6 @@ struct xvnode { #define VI_TEXT_REF 0x0001 /* Text ref grabbed use ref */ #define VI_MOUNT 0x0020 /* Mount in progress */ -#define VI_FREE 0x0100 /* This vnode is on the freelist */ -#define VI_ACTIVE 0x0200 /* This vnode is on the active list */ #define VI_DOINGINACT 0x0800 /* VOP_INACTIVE is in progress */ #define VI_OWEINACT 0x1000 /* Need to call inactive */ #define VI_DEFINACT 0x2000 /* deferred inactive */ @@ -260,8 +258,7 @@ struct xvnode { #define VV_FORCEINSMQ 0x1000 /* force the insmntque to succeed */ #define VV_READLINK 0x2000 /* fdescfs linux vnode */ -#define VMP_TMPMNTFREELIST 0x0001 /* Vnode is on mnt's tmp free list */ -#define VMP_LAZYLIST 0x0002 /* Vnode is on mnt's lazy list */ +#define VMP_LAZYLIST 0x0001 /* Vnode is on mnt's lazy list */ /* * Vnode attributes. A field value of VNOVAL represents a field whose value Modified: head/sys/ufs/ufs/ufs_quota.c ============================================================================== --- head/sys/ufs/ufs/ufs_quota.c Mon Jan 13 02:35:15 2020 (r356671) +++ head/sys/ufs/ufs/ufs_quota.c Mon Jan 13 02:37:25 2020 (r356672) @@ -1083,7 +1083,7 @@ qsync(struct mount *mp) * synchronizing any modified dquot structures. */ again: - MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) { + MNT_VNODE_FOREACH_ALL(vp, mp, mvp) { if (vp->v_type == VNON) { VI_UNLOCK(vp); continue; @@ -1091,7 +1091,7 @@ again: error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK, td); if (error) { if (error == ENOENT) { - MNT_VNODE_FOREACH_ACTIVE_ABORT(mp, mvp); + MNT_VNODE_FOREACH_ALL_ABORT(mp, mvp); goto again; } continue; From owner-svn-src-all@freebsd.org Mon Jan 13 02:39:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DBCBF1F35C3; Mon, 13 Jan 2020 02:39:41 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyV55X3fz3MwG; Mon, 13 Jan 2020 02:39:41 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B8DE725864; Mon, 13 Jan 2020 02:39:41 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D2dfUY028073; Mon, 13 Jan 2020 02:39:41 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D2df0x028071; Mon, 13 Jan 2020 02:39:41 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001130239.00D2df0x028071@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 02:39:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356673 - in head/sys: kern sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys: kern sys X-SVN-Commit-Revision: 356673 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:39:41 -0000 Author: mjg Date: Mon Jan 13 02:39:41 2020 New Revision: 356673 URL: https://svnweb.freebsd.org/changeset/base/356673 Log: vfs: per-cpu batched requeuing of free vnodes Constant requeuing adds significant lock contention in certain workloads. Lessen the problem by batching it. Per-cpu areas are locked in order to synchronize against UMA freeing memory. vnode's v_mflag is converted to short to prevent the struct from growing. Sample result from an incremental make -s -j 104 bzImage on tmpfs: stock: 122.38s user 1780.45s system 6242% cpu 30.480 total patched: 144.84s user 985.90s system 4856% cpu 23.282 total Reviewed by: jeff Tested by: pho (in a larger patch, previous version) Differential Revision: https://reviews.freebsd.org/D22998 Modified: head/sys/kern/vfs_subr.c head/sys/sys/vnode.h Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Mon Jan 13 02:37:25 2020 (r356672) +++ head/sys/kern/vfs_subr.c Mon Jan 13 02:39:41 2020 (r356673) @@ -295,6 +295,16 @@ static int stat_rush_requests; /* number of times I/O SYSCTL_INT(_debug, OID_AUTO, rush_requests, CTLFLAG_RW, &stat_rush_requests, 0, "Number of times I/O speeded up (rush requests)"); +#define VDBATCH_SIZE 8 +struct vdbatch { + u_int index; + struct mtx lock; + struct vnode *tab[VDBATCH_SIZE]; +}; +DPCPU_DEFINE_STATIC(struct vdbatch, vd); + +static void vdbatch_dequeue(struct vnode *vp); + /* * When shutting down the syncer, run it at four times normal speed. */ @@ -552,6 +562,8 @@ vnode_init(void *mem, int size, int flags) */ rangelock_init(&vp->v_rl); + vp->v_dbatchcpu = NOCPU; + mtx_lock(&vnode_list_mtx); TAILQ_INSERT_BEFORE(vnode_list_free_marker, vp, v_vnodelist); mtx_unlock(&vnode_list_mtx); @@ -568,6 +580,7 @@ vnode_fini(void *mem, int size) struct bufobj *bo; vp = mem; + vdbatch_dequeue(vp); mtx_lock(&vnode_list_mtx); TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); mtx_unlock(&vnode_list_mtx); @@ -602,8 +615,9 @@ vnode_fini(void *mem, int size) static void vntblinit(void *dummy __unused) { + struct vdbatch *vd; + int cpu, physvnodes, virtvnodes; u_int i; - int physvnodes, virtvnodes; /* * Desiredvnodes is a function of the physical memory size and the @@ -669,6 +683,12 @@ vntblinit(void *dummy __unused) for (i = 1; i <= sizeof(struct vnode); i <<= 1) vnsz2log++; vnsz2log--; + + CPU_FOREACH(cpu) { + vd = DPCPU_ID_PTR((cpu), vd); + bzero(vd, sizeof(*vd)); + mtx_init(&vd->lock, "vdbatch", NULL, MTX_DEF); + } } SYSINIT(vfs, SI_SUB_VFS, SI_ORDER_FIRST, vntblinit, NULL); @@ -3199,7 +3219,99 @@ vholdnz(struct vnode *vp) #endif } +static void __noinline +vdbatch_process(struct vdbatch *vd) +{ + struct vnode *vp; + int i; + + mtx_assert(&vd->lock, MA_OWNED); + MPASS(vd->index == VDBATCH_SIZE); + + mtx_lock(&vnode_list_mtx); + for (i = 0; i < VDBATCH_SIZE; i++) { + vp = vd->tab[i]; + TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); + TAILQ_INSERT_TAIL(&vnode_list, vp, v_vnodelist); + MPASS(vp->v_dbatchcpu != NOCPU); + vp->v_dbatchcpu = NOCPU; + } + bzero(vd->tab, sizeof(vd->tab)); + vd->index = 0; + mtx_unlock(&vnode_list_mtx); +} + +static void +vdbatch_enqueue(struct vnode *vp) +{ + struct vdbatch *vd; + + ASSERT_VI_LOCKED(vp, __func__); + VNASSERT(!VN_IS_DOOMED(vp), vp, + ("%s: deferring requeue of a doomed vnode", __func__)); + + if (vp->v_dbatchcpu != NOCPU) { + VI_UNLOCK(vp); + return; + } + + /* + * A hack: pin us to the current CPU so that we know what to put in + * ->v_dbatchcpu. + */ + sched_pin(); + vd = DPCPU_PTR(vd); + mtx_lock(&vd->lock); + MPASS(vd->index < VDBATCH_SIZE); + MPASS(vd->tab[vd->index] == NULL); + vp->v_dbatchcpu = curcpu; + vd->tab[vd->index] = vp; + vd->index++; + VI_UNLOCK(vp); + if (vd->index == VDBATCH_SIZE) + vdbatch_process(vd); + mtx_unlock(&vd->lock); + sched_unpin(); +} + /* + * This routine must only be called for vnodes which are about to be + * deallocated. Supporting dequeue for arbitrary vndoes would require + * validating that the locked batch matches. + */ +static void +vdbatch_dequeue(struct vnode *vp) +{ + struct vdbatch *vd; + int i; + short cpu; + + VNASSERT(vp->v_type == VBAD || vp->v_type == VNON, vp, + ("%s: called for a used vnode\n", __func__)); + + cpu = vp->v_dbatchcpu; + if (cpu == NOCPU) + return; + + vd = DPCPU_ID_PTR(cpu, vd); + mtx_lock(&vd->lock); + for (i = 0; i < vd->index; i++) { + if (vd->tab[i] != vp) + continue; + vp->v_dbatchcpu = NOCPU; + vd->index--; + vd->tab[i] = vd->tab[vd->index]; + vd->tab[vd->index] = NULL; + break; + } + mtx_unlock(&vd->lock); + /* + * Either we dequeued the vnode above or the target CPU beat us to it. + */ + MPASS(vp->v_dbatchcpu == NOCPU); +} + +/* * Drop the hold count of the vnode. If this is the last reference to * the vnode we place it on the free list unless it has been vgone'd * (marked VIRF_DOOMED) in which case we will free it. @@ -3236,12 +3348,8 @@ vdrop_deactivate(struct vnode *vp) mp->mnt_lazyvnodelistsize--; mtx_unlock(&mp->mnt_listmtx); } - mtx_lock(&vnode_list_mtx); - TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); - TAILQ_INSERT_TAIL(&vnode_list, vp, v_vnodelist); - mtx_unlock(&vnode_list_mtx); atomic_add_long(&freevnodes, 1); - VI_UNLOCK(vp); + vdbatch_enqueue(vp); } void Modified: head/sys/sys/vnode.h ============================================================================== --- head/sys/sys/vnode.h Mon Jan 13 02:37:25 2020 (r356672) +++ head/sys/sys/vnode.h Mon Jan 13 02:39:41 2020 (r356673) @@ -171,7 +171,8 @@ struct vnode { u_int v_usecount; /* I ref count of users */ u_int v_iflag; /* i vnode flags (see below) */ u_int v_vflag; /* v vnode flags */ - u_int v_mflag; /* l mnt-specific vnode flags */ + u_short v_mflag; /* l mnt-specific vnode flags */ + short v_dbatchcpu; /* i LRU requeue deferral batch */ int v_writecount; /* I ref count of writers or (negative) text users */ u_int v_hash; From owner-svn-src-all@freebsd.org Mon Jan 13 02:40:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 78E011F3682; Mon, 13 Jan 2020 02:40:26 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wyVx3GqYz3N40; Mon, 13 Jan 2020 02:40:25 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wm1-x341.google.com with SMTP id d73so7973592wmd.1; Sun, 12 Jan 2020 18:40:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=al//UW64AU8rBLvfOpHZP4xZ0Ue9N8HiP2yGyGRHoq8=; b=Q++QMMjEbflcW/kqXNZFgcSF3P/9sj7mwdUZ1uBSX2CI2uJ1MmlPbmdLvQlZ1C0CA5 FchQvLtlrsRTyL53tpg5mRid5jecnr5xKxnh3DxVZCnH6UUHFerXGsciHoSLl+DN+0Qa l+nlXEB1Q6Pw/90TFzXT7oWtJc6Ds587XeIaQnAef0+ERVjK6lJwN/FKSj0qu+HtZmy4 sqnnUwVvLe2sZ/gpF50HYorfeD+ZnywhfHQjEMaLY7elf4qdar3co6vTghXwgFrAKEX3 Lvji7pTul0paUCt+D4lMqNO2ukHSsTC9JqilG/mTnHueeim2aey49zumeQAz0e+2SumQ y4nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=al//UW64AU8rBLvfOpHZP4xZ0Ue9N8HiP2yGyGRHoq8=; b=ZL4Me0AuU/ZG9InFYto4azJFA9cYF9umTiPRM7zT/MZVqO/s+bftVH+bLsxi0YCtZR u/nEmtZ5VyvsSrN+fp0PRgKorI8ACyT0rWuAkxz+BnoWT8fPzFic+EBDd1SgzwGiCO+I pRk4UaU5MdX5eYPJ453f3fa447nQIb3qVTuH4giADxw8UxHcazAo2d6jjwIxtA1Tq9Ja 2Y0oX3vGSoUxV7ajAsWDTGQr8K9oTrG81A1/Ueun1n3OrDuWYdkUml/qEMS8ATvllQwG af9IXxTfhQ1JVa+96s85nnX4eX8j9Vliw66FHh4ZuemiRD35RVSI1Z4vKnOGqKqgsTrN m75w== X-Gm-Message-State: APjAAAVU4t9aysOkfVaNXsfJM2QwA7lCeg0ZjvcqDijMOlObg0u8YcA4 /f6oIMHcBRlKiFKNNuOAxn8Eqj23CBV2pZrT6yKc0w== X-Google-Smtp-Source: APXvYqye+1/eIlai3f6r18SB+r4DahLuzzs6SaOwxojA7D3D8PsuUdi2M/ROGxgxS/He3Fp9EhOQgdSqtEmPzkdVmm8= X-Received: by 2002:a1c:6a07:: with SMTP id f7mr17563727wmc.171.1578883223558; Sun, 12 Jan 2020 18:40:23 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Sun, 12 Jan 2020 18:40:22 -0800 (PST) In-Reply-To: <202001130239.00D2df0x028071@repo.freebsd.org> References: <202001130239.00D2df0x028071@repo.freebsd.org> From: Mateusz Guzik Date: Mon, 13 Jan 2020 03:40:22 +0100 Message-ID: Subject: Re: svn commit: r356673 - in head/sys: kern sys To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47wyVx3GqYz3N40 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=Q++QMMjE; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::341 as permitted sender) smtp.mailfrom=mjguzik@gmail.com X-Spamd-Result: default: False [-3.00 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_GOOD(-0.10)[text/plain]; TO_DN_NONE(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; IP_SCORE(0.00)[ip: (2.60), ipnet: 2a00:1450::/32(-2.60), asn: 15169(-1.84), country: US(-0.05)]; DKIM_TRACE(0.00)[gmail.com:+]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_NONE(0.00)[1.4.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.5.4.1.0.0.a.2.list.dnswl.org : 127.0.5.0]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com.dwl.dnswl.org : 127.0.5.0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 02:40:26 -0000 On 1/13/20, Mateusz Guzik wrote: > Author: mjg > Date: Mon Jan 13 02:39:41 2020 > New Revision: 356673 > URL: https://svnweb.freebsd.org/changeset/base/356673 > > Log: > vfs: per-cpu batched requeuing of free vnodes > > Constant requeuing adds significant lock contention in certain > workloads. Lessen the problem by batching it. > > Per-cpu areas are locked in order to synchronize against UMA freeing > memory. > > vnode's v_mflag is converted to short to prevent the struct from > growing. > > Sample result from an incremental make -s -j 104 bzImage on tmpfs: > stock: 122.38s user 1780.45s system 6242% cpu 30.480 total > patched: 144.84s user 985.90s system 4856% cpu 23.282 total > > Reviewed by: jeff That's: jeff (previous version) > Tested by: pho (in a larger patch, previous version) > Differential Revision: https://reviews.freebsd.org/D22998 > > Modified: > head/sys/kern/vfs_subr.c > head/sys/sys/vnode.h > > Modified: head/sys/kern/vfs_subr.c > ============================================================================== > --- head/sys/kern/vfs_subr.c Mon Jan 13 02:37:25 2020 (r356672) > +++ head/sys/kern/vfs_subr.c Mon Jan 13 02:39:41 2020 (r356673) > @@ -295,6 +295,16 @@ static int stat_rush_requests; /* number of times I/O > SYSCTL_INT(_debug, OID_AUTO, rush_requests, CTLFLAG_RW, > &stat_rush_requests, 0, > "Number of times I/O speeded up (rush requests)"); > > +#define VDBATCH_SIZE 8 > +struct vdbatch { > + u_int index; > + struct mtx lock; > + struct vnode *tab[VDBATCH_SIZE]; > +}; > +DPCPU_DEFINE_STATIC(struct vdbatch, vd); > + > +static void vdbatch_dequeue(struct vnode *vp); > + > /* > * When shutting down the syncer, run it at four times normal speed. > */ > @@ -552,6 +562,8 @@ vnode_init(void *mem, int size, int flags) > */ > rangelock_init(&vp->v_rl); > > + vp->v_dbatchcpu = NOCPU; > + > mtx_lock(&vnode_list_mtx); > TAILQ_INSERT_BEFORE(vnode_list_free_marker, vp, v_vnodelist); > mtx_unlock(&vnode_list_mtx); > @@ -568,6 +580,7 @@ vnode_fini(void *mem, int size) > struct bufobj *bo; > > vp = mem; > + vdbatch_dequeue(vp); > mtx_lock(&vnode_list_mtx); > TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); > mtx_unlock(&vnode_list_mtx); > @@ -602,8 +615,9 @@ vnode_fini(void *mem, int size) > static void > vntblinit(void *dummy __unused) > { > + struct vdbatch *vd; > + int cpu, physvnodes, virtvnodes; > u_int i; > - int physvnodes, virtvnodes; > > /* > * Desiredvnodes is a function of the physical memory size and the > @@ -669,6 +683,12 @@ vntblinit(void *dummy __unused) > for (i = 1; i <= sizeof(struct vnode); i <<= 1) > vnsz2log++; > vnsz2log--; > + > + CPU_FOREACH(cpu) { > + vd = DPCPU_ID_PTR((cpu), vd); > + bzero(vd, sizeof(*vd)); > + mtx_init(&vd->lock, "vdbatch", NULL, MTX_DEF); > + } > } > SYSINIT(vfs, SI_SUB_VFS, SI_ORDER_FIRST, vntblinit, NULL); > > @@ -3199,7 +3219,99 @@ vholdnz(struct vnode *vp) > #endif > } > > +static void __noinline > +vdbatch_process(struct vdbatch *vd) > +{ > + struct vnode *vp; > + int i; > + > + mtx_assert(&vd->lock, MA_OWNED); > + MPASS(vd->index == VDBATCH_SIZE); > + > + mtx_lock(&vnode_list_mtx); > + for (i = 0; i < VDBATCH_SIZE; i++) { > + vp = vd->tab[i]; > + TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); > + TAILQ_INSERT_TAIL(&vnode_list, vp, v_vnodelist); > + MPASS(vp->v_dbatchcpu != NOCPU); > + vp->v_dbatchcpu = NOCPU; > + } > + bzero(vd->tab, sizeof(vd->tab)); > + vd->index = 0; > + mtx_unlock(&vnode_list_mtx); > +} > + > +static void > +vdbatch_enqueue(struct vnode *vp) > +{ > + struct vdbatch *vd; > + > + ASSERT_VI_LOCKED(vp, __func__); > + VNASSERT(!VN_IS_DOOMED(vp), vp, > + ("%s: deferring requeue of a doomed vnode", __func__)); > + > + if (vp->v_dbatchcpu != NOCPU) { > + VI_UNLOCK(vp); > + return; > + } > + > + /* > + * A hack: pin us to the current CPU so that we know what to put in > + * ->v_dbatchcpu. > + */ > + sched_pin(); > + vd = DPCPU_PTR(vd); > + mtx_lock(&vd->lock); > + MPASS(vd->index < VDBATCH_SIZE); > + MPASS(vd->tab[vd->index] == NULL); > + vp->v_dbatchcpu = curcpu; > + vd->tab[vd->index] = vp; > + vd->index++; > + VI_UNLOCK(vp); > + if (vd->index == VDBATCH_SIZE) > + vdbatch_process(vd); > + mtx_unlock(&vd->lock); > + sched_unpin(); > +} > + > /* > + * This routine must only be called for vnodes which are about to be > + * deallocated. Supporting dequeue for arbitrary vndoes would require > + * validating that the locked batch matches. > + */ > +static void > +vdbatch_dequeue(struct vnode *vp) > +{ > + struct vdbatch *vd; > + int i; > + short cpu; > + > + VNASSERT(vp->v_type == VBAD || vp->v_type == VNON, vp, > + ("%s: called for a used vnode\n", __func__)); > + > + cpu = vp->v_dbatchcpu; > + if (cpu == NOCPU) > + return; > + > + vd = DPCPU_ID_PTR(cpu, vd); > + mtx_lock(&vd->lock); > + for (i = 0; i < vd->index; i++) { > + if (vd->tab[i] != vp) > + continue; > + vp->v_dbatchcpu = NOCPU; > + vd->index--; > + vd->tab[i] = vd->tab[vd->index]; > + vd->tab[vd->index] = NULL; > + break; > + } > + mtx_unlock(&vd->lock); > + /* > + * Either we dequeued the vnode above or the target CPU beat us to it. > + */ > + MPASS(vp->v_dbatchcpu == NOCPU); > +} > + > +/* > * Drop the hold count of the vnode. If this is the last reference to > * the vnode we place it on the free list unless it has been vgone'd > * (marked VIRF_DOOMED) in which case we will free it. > @@ -3236,12 +3348,8 @@ vdrop_deactivate(struct vnode *vp) > mp->mnt_lazyvnodelistsize--; > mtx_unlock(&mp->mnt_listmtx); > } > - mtx_lock(&vnode_list_mtx); > - TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); > - TAILQ_INSERT_TAIL(&vnode_list, vp, v_vnodelist); > - mtx_unlock(&vnode_list_mtx); > atomic_add_long(&freevnodes, 1); > - VI_UNLOCK(vp); > + vdbatch_enqueue(vp); > } > > void > > Modified: head/sys/sys/vnode.h > ============================================================================== > --- head/sys/sys/vnode.h Mon Jan 13 02:37:25 2020 (r356672) > +++ head/sys/sys/vnode.h Mon Jan 13 02:39:41 2020 (r356673) > @@ -171,7 +171,8 @@ struct vnode { > u_int v_usecount; /* I ref count of users */ > u_int v_iflag; /* i vnode flags (see below) */ > u_int v_vflag; /* v vnode flags */ > - u_int v_mflag; /* l mnt-specific vnode flags */ > + u_short v_mflag; /* l mnt-specific vnode flags */ > + short v_dbatchcpu; /* i LRU requeue deferral batch */ > int v_writecount; /* I ref count of writers or > (negative) text users */ > u_int v_hash; > _______________________________________________ > svn-src-all@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" > -- Mateusz Guzik From owner-svn-src-all@freebsd.org Mon Jan 13 03:36:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF70E1F525C; Mon, 13 Jan 2020 03:36:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wzlw4BNfz3wkY; Mon, 13 Jan 2020 03:36:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8B04426481; Mon, 13 Jan 2020 03:36:44 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D3aiq8067368; Mon, 13 Jan 2020 03:36:44 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D3ahMv067364; Mon, 13 Jan 2020 03:36:43 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001130336.00D3ahMv067364@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 03:36:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356674 - in stable/11: lib/libc/gen sys/sys X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable/11: lib/libc/gen sys/sys X-SVN-Commit-Revision: 356674 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 03:36:44 -0000 Author: kevans Date: Mon Jan 13 03:36:43 2020 New Revision: 356674 URL: https://svnweb.freebsd.org/changeset/base/356674 Log: MFC r324815: Make elf_aux_info() as public libc function. - Teach elf aux vector functions about newly added AT_HWCAP and AT_HWCAP2 vectors. - Export _elf_aux_info() as new public libc function elf_aux_info(3) The elf_aux_info(3) should be considered as FreeBSD counterpart of glibc getauxval() with more robust interface. Note: We cannot name this new function as getauxval(), with glibc compatible interface. Some ports autodetect its existence and then expects that all Linux specific AT_<*> vectors are defined and implemented. Added: stable/11/sys/sys/auxv.h - copied unchanged from r324815, head/sys/sys/auxv.h Modified: stable/11/lib/libc/gen/Symbol.map stable/11/lib/libc/gen/auxv.c Directory Properties: stable/11/ (props changed) Modified: stable/11/lib/libc/gen/Symbol.map ============================================================================== --- stable/11/lib/libc/gen/Symbol.map Mon Jan 13 02:39:41 2020 (r356673) +++ stable/11/lib/libc/gen/Symbol.map Mon Jan 13 03:36:43 2020 (r356674) @@ -420,6 +420,7 @@ FBSD_1.4 { }; FBSD_1.5 { + elf_aux_info; sem_clockwait_np; setproctitle_fast; }; Modified: stable/11/lib/libc/gen/auxv.c ============================================================================== --- stable/11/lib/libc/gen/auxv.c Mon Jan 13 02:39:41 2020 (r356673) +++ stable/11/lib/libc/gen/auxv.c Mon Jan 13 03:36:43 2020 (r356674) @@ -33,6 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "un-namespace.h" #include "libc_private.h" @@ -65,8 +66,10 @@ __init_elf_aux_vector(void) static pthread_once_t aux_once = PTHREAD_ONCE_INIT; static int pagesize, osreldate, canary_len, ncpus, pagesizes_len; +static int hwcap_present, hwcap2_present; static char *canary, *pagesizes; static void *timekeep; +static u_long hwcap, hwcap2; static void init_aux(void) @@ -83,6 +86,16 @@ init_aux(void) canary_len = aux->a_un.a_val; break; + case AT_HWCAP: + hwcap_present = 1; + hwcap = (u_long)(aux->a_un.a_val); + break; + + case AT_HWCAP2: + hwcap2_present = 1; + hwcap2 = (u_long)(aux->a_un.a_val); + break; + case AT_PAGESIZES: pagesizes = (char *)(aux->a_un.a_ptr); break; @@ -110,6 +123,8 @@ init_aux(void) } } +__weak_reference(_elf_aux_info, elf_aux_info); + int _elf_aux_info(int aux, void *buf, int buflen) { @@ -130,6 +145,20 @@ _elf_aux_info(int aux, void *buf, int buflen) } else res = ENOENT; break; + case AT_HWCAP: + if (hwcap_present && buflen == sizeof(u_long)) { + *(u_long *)buf = hwcap; + res = 0; + } else + res = ENOENT; + break; + case AT_HWCAP2: + if (hwcap2_present && buflen == sizeof(u_long)) { + *(u_long *)buf = hwcap2; + res = 0; + } else + res = ENOENT; + break; case AT_PAGESIZES: if (pagesizes != NULL && pagesizes_len >= buflen) { memcpy(buf, pagesizes, buflen); @@ -137,7 +166,6 @@ _elf_aux_info(int aux, void *buf, int buflen) } else res = ENOENT; break; - case AT_PAGESZ: if (buflen == sizeof(int)) { if (pagesize != 0) { Copied: stable/11/sys/sys/auxv.h (from r324815, head/sys/sys/auxv.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/11/sys/sys/auxv.h Mon Jan 13 03:36:43 2020 (r356674, copy of r324815, head/sys/sys/auxv.h) @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2017 Michal Meloun + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _SYS_AUXV_H_ +#define _SYS_AUXV_H_ + +#include +#include + +int elf_aux_info(int aux, void *buf, int buflen); + +#endif /* !_SYS_AUXV_H_ */ From owner-svn-src-all@freebsd.org Mon Jan 13 03:39:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3E9BD1F5368; Mon, 13 Jan 2020 03:39:03 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47wzpb11csz3wsG; Mon, 13 Jan 2020 03:39:03 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1E38526485; Mon, 13 Jan 2020 03:39:03 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D3d2Ch067583; Mon, 13 Jan 2020 03:39:02 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D3d2tR067582; Mon, 13 Jan 2020 03:39:02 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202001130339.00D3d2tR067582@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Mon, 13 Jan 2020 03:39:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356675 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 356675 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 03:39:03 -0000 Author: mhorne Date: Mon Jan 13 03:39:02 2020 New Revision: 356675 URL: https://svnweb.freebsd.org/changeset/base/356675 Log: RISC-V: fix global symbol lookups for mpentry with lld This is a follow up to r356481. In locore.S, before virtual memory is set up, we should avoid using indirect address lookups through the GOT. Therefore we need to convert uses of the la instruction to lla, which always generates an auipc/addi pair of instructions. This conversion was done for the BSP case, but not the AP case, resulting in a fault somewhere before mpva and a failure to bring APs online. Reported by: lwhsu Reviewed by: lwhsu, jrtc27 (accepted in a comment) Differential Revision: https://reviews.freebsd.org/D23138 Modified: head/sys/riscv/riscv/locore.S Modified: head/sys/riscv/riscv/locore.S ============================================================================== --- head/sys/riscv/riscv/locore.S Mon Jan 13 03:36:43 2020 (r356674) +++ head/sys/riscv/riscv/locore.S Mon Jan 13 03:39:02 2020 (r356675) @@ -287,7 +287,7 @@ ENTRY(mpentry) li t1, 4 mulw t1, t1, a0 /* Get the pointer */ - la t0, __riscv_boot_ap + lla t0, __riscv_boot_ap add t0, t0, t1 1: @@ -296,7 +296,7 @@ ENTRY(mpentry) beqz t1, 1b /* Setup stack pointer */ - la t0, secondary_stacks + lla t0, secondary_stacks li t1, (PAGE_SIZE * KSTACK_PAGES) mulw t2, t1, a0 add t0, t0, t2 @@ -306,14 +306,14 @@ ENTRY(mpentry) add sp, t0, t1 /* Setup supervisor trap vector */ - la t0, mpva + lla t0, mpva sub t0, t0, s9 li t1, KERNBASE add t0, t0, t1 csrw stvec, t0 /* Set page tables base register */ - la s2, pagetable_l1 + lla s2, pagetable_l1 srli s2, s2, PAGE_SHIFT li t0, SATP_MODE_SV39 or s2, s2, t0 From owner-svn-src-all@freebsd.org Mon Jan 13 06:55:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25FEB1F9305; Mon, 13 Jan 2020 06:55:36 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47x49N0DXYz45Z7; Mon, 13 Jan 2020 06:55:36 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0352493A; Mon, 13 Jan 2020 06:55:36 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D6tZV3091284; Mon, 13 Jan 2020 06:55:35 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D6tZGC091283; Mon, 13 Jan 2020 06:55:35 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202001130655.00D6tZGC091283@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 13 Jan 2020 06:55:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356677 - head/usr.bin/systat X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/usr.bin/systat X-SVN-Commit-Revision: 356677 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 06:55:36 -0000 Author: cy Date: Mon Jan 13 06:55:35 2020 New Revision: 356677 URL: https://svnweb.freebsd.org/changeset/base/356677 Log: As of r356642 desiredvnodes is u_long. Modified: head/usr.bin/systat/vmstat.c Modified: head/usr.bin/systat/vmstat.c ============================================================================== --- head/usr.bin/systat/vmstat.c Mon Jan 13 06:55:31 2020 (r356676) +++ head/usr.bin/systat/vmstat.c Mon Jan 13 06:55:35 2020 (r356677) @@ -116,7 +116,7 @@ static struct Info { long nchcount; long *intrcnt; long bufspace; - int desiredvnodes; + u_long desiredvnodes; long numvnodes; long freevnodes; int numdirtybuffers; From owner-svn-src-all@freebsd.org Mon Jan 13 06:55:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1CE661F9301; Mon, 13 Jan 2020 06:55:33 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47x49J71sWz45Z6; Mon, 13 Jan 2020 06:55:32 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EC62D939; Mon, 13 Jan 2020 06:55:32 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D6tWgq091234; Mon, 13 Jan 2020 06:55:32 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D6tVQN091228; Mon, 13 Jan 2020 06:55:31 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202001130655.00D6tVQN091228@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 13 Jan 2020 06:55:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356676 - in head: contrib/unbound lib/libunbound usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.sbin/unbound/control usr.sbin/unbound/daemon X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: in head: contrib/unbound lib/libunbound usr.sbin/unbound usr.sbin/unbound/anchor usr.sbin/unbound/checkconf usr.sbin/unbound/control usr.sbin/unbound/daemon X-SVN-Commit-Revision: 356676 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 06:55:33 -0000 Author: cy Date: Mon Jan 13 06:55:31 2020 New Revision: 356676 URL: https://svnweb.freebsd.org/changeset/base/356676 Log: Unbound's config.h is manually maintained, using a ./configure produced config.h as a guide. In practice contributed software maintains a copy of config.h within its build directory tree containing its Makefile. usr.sbin/unbound is the home for its config.h. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22983 Added: head/usr.sbin/unbound/config.h (contents, props changed) - copied, changed from r356675, head/contrib/unbound/config.h Deleted: head/contrib/unbound/config.h Modified: head/lib/libunbound/Makefile head/usr.sbin/unbound/anchor/Makefile head/usr.sbin/unbound/checkconf/Makefile head/usr.sbin/unbound/control/Makefile head/usr.sbin/unbound/daemon/Makefile Modified: head/lib/libunbound/Makefile ============================================================================== --- head/lib/libunbound/Makefile Mon Jan 13 03:39:02 2020 (r356675) +++ head/lib/libunbound/Makefile Mon Jan 13 06:55:31 2020 (r356676) @@ -13,6 +13,7 @@ PRIVATELIB= PACKAGE= unbound CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} -I${.OBJDIR} +CFLAGS+= -I${SRCTOP}/usr.sbin/unbound SRCS= alloc.c as112.c authzone.c autotrust.c cachedb.c config_file.c \ configlexer.l configparser.y context.c dname.c dns.c dns64.c \ Modified: head/usr.sbin/unbound/anchor/Makefile ============================================================================== --- head/usr.sbin/unbound/anchor/Makefile Mon Jan 13 03:39:02 2020 (r356675) +++ head/usr.sbin/unbound/anchor/Makefile Mon Jan 13 06:55:31 2020 (r356676) @@ -10,6 +10,7 @@ EXPATDIR= ${SRCTOP}/contrib/expat PROG= local-unbound-anchor SRCS= unbound-anchor.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} -I${EXPATDIR}/lib +CFLAGS+= -I${.CURDIR:H} -I${.CURDIR} LIBADD= unbound bsdxml ssl crypto pthread MAN= local-unbound-anchor.8 Modified: head/usr.sbin/unbound/checkconf/Makefile ============================================================================== --- head/usr.sbin/unbound/checkconf/Makefile Mon Jan 13 03:39:02 2020 (r356675) +++ head/usr.sbin/unbound/checkconf/Makefile Mon Jan 13 06:55:31 2020 (r356676) @@ -9,6 +9,7 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound PROG= local-unbound-checkconf SRCS= ub_event.c unbound-checkconf.c worker_cb.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} +CFLAGS+= -I${.CURDIR:H} -I${.CURDIR} LIBADD= unbound pthread MAN= local-unbound-checkconf.8 Copied and modified: head/usr.sbin/unbound/config.h (from r356675, head/contrib/unbound/config.h) ============================================================================== --- head/contrib/unbound/config.h Mon Jan 13 03:39:02 2020 (r356675, copy source) +++ head/usr.sbin/unbound/config.h Mon Jan 13 06:55:31 2020 (r356676) @@ -1,5 +1,6 @@ /* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ +/* $FreeBSD$ */ /* apply the noreturn attribute to a function that exits the program */ #define ATTR_NORETURN __attribute__((__noreturn__)) Modified: head/usr.sbin/unbound/control/Makefile ============================================================================== --- head/usr.sbin/unbound/control/Makefile Mon Jan 13 03:39:02 2020 (r356675) +++ head/usr.sbin/unbound/control/Makefile Mon Jan 13 06:55:31 2020 (r356676) @@ -9,6 +9,7 @@ UNBOUNDDIR= ${SRCTOP}/contrib/unbound PROG= local-unbound-control SRCS= ub_event.c unbound-control.c worker_cb.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} +CFLAGS+= -I${.CURDIR:H} -I${.CURDIR} LIBADD= unbound crypto ssl pthread MAN= local-unbound-control.8 Modified: head/usr.sbin/unbound/daemon/Makefile ============================================================================== --- head/usr.sbin/unbound/daemon/Makefile Mon Jan 13 03:39:02 2020 (r356675) +++ head/usr.sbin/unbound/daemon/Makefile Mon Jan 13 06:55:31 2020 (r356676) @@ -10,6 +10,7 @@ PROG= local-unbound SRCS= acl_list.c cachedump.c daemon.c remote.c shm_main.c stats.c \ ub_event.c unbound.c worker.c CFLAGS+= -I${UNBOUNDDIR} -I${LDNSDIR} +CFLAGS+= -I${.CURDIR:H} -I${.CURDIR} LIBADD= unbound util ssl crypto pthread MAN= local-unbound.8 local-unbound.conf.5 From owner-svn-src-all@freebsd.org Mon Jan 13 06:55:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 328941F9349; Mon, 13 Jan 2020 06:55:39 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47x49Q72BNz45fK; Mon, 13 Jan 2020 06:55:38 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2B9793B; Mon, 13 Jan 2020 06:55:38 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00D6tcw2091329; Mon, 13 Jan 2020 06:55:38 GMT (envelope-from cy@FreeBSD.org) Received: (from cy@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00D6tcn9091328; Mon, 13 Jan 2020 06:55:38 GMT (envelope-from cy@FreeBSD.org) Message-Id: <202001130655.00D6tcn9091328@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cy set sender to cy@FreeBSD.org using -f From: Cy Schubert Date: Mon, 13 Jan 2020 06:55:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356678 - head/usr.bin/systat X-SVN-Group: head X-SVN-Commit-Author: cy X-SVN-Commit-Paths: head/usr.bin/systat X-SVN-Commit-Revision: 356678 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 06:55:39 -0000 Author: cy Date: Mon Jan 13 06:55:38 2020 New Revision: 356678 URL: https://svnweb.freebsd.org/changeset/base/356678 Log: Sync with r356645. desiredvnodes is now maxvnodes. Modified: head/usr.bin/systat/vmstat.c Modified: head/usr.bin/systat/vmstat.c ============================================================================== --- head/usr.bin/systat/vmstat.c Mon Jan 13 06:55:35 2020 (r356677) +++ head/usr.bin/systat/vmstat.c Mon Jan 13 06:55:38 2020 (r356678) @@ -116,7 +116,7 @@ static struct Info { long nchcount; long *intrcnt; long bufspace; - u_long desiredvnodes; + u_long maxvnodes; long numvnodes; long freevnodes; int numdirtybuffers; @@ -349,7 +349,7 @@ labelkre(void) "| | | | | | | | | | |"); mvprintw(VNSTATROW, VNSTATCOL + 8, "dtbuf"); - mvprintw(VNSTATROW + 1, VNSTATCOL + 8, "desvn"); + mvprintw(VNSTATROW + 1, VNSTATCOL + 8, "maxvn"); mvprintw(VNSTATROW + 2, VNSTATCOL + 8, "numvn"); mvprintw(VNSTATROW + 3, VNSTATCOL + 8, "frevn"); @@ -520,7 +520,7 @@ showkre(void) break; } putint(s.numdirtybuffers, VNSTATROW, VNSTATCOL, 7); - putint(s.desiredvnodes, VNSTATROW + 1, VNSTATCOL, 7); + putint(s.maxvnodes, VNSTATROW + 1, VNSTATCOL, 7); putint(s.numvnodes, VNSTATROW + 2, VNSTATCOL, 7); putint(s.freevnodes, VNSTATROW + 3, VNSTATCOL, 7); putint(s.nchcount, NAMEIROW + 2, NAMEICOL, 8); @@ -780,7 +780,7 @@ getinfo(struct Info *ls) GETSYSCTL("vm.stats.vm.v_inactive_count", ls->v_inactive_count); GETSYSCTL("vm.stats.vm.v_laundry_count", ls->v_laundry_count); GETSYSCTL("vfs.bufspace", ls->bufspace); - GETSYSCTL("kern.maxvnodes", ls->desiredvnodes); + GETSYSCTL("kern.maxvnodes", ls->maxvnodes); GETSYSCTL("vfs.numvnodes", ls->numvnodes); GETSYSCTL("vfs.freevnodes", ls->freevnodes); GETSYSCTL("vfs.cache.nchstats", ls->nchstats); From owner-svn-src-all@freebsd.org Mon Jan 13 11:27:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 488B51FFB55; Mon, 13 Jan 2020 11:27:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xBC71FBjz4Lxc; Mon, 13 Jan 2020 11:27:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 25DA23E4D; Mon, 13 Jan 2020 11:27:31 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DBRVH1055676; Mon, 13 Jan 2020 11:27:31 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DBRU1B055673; Mon, 13 Jan 2020 11:27:30 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001131127.00DBRU1B055673@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 13 Jan 2020 11:27:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356679 - in stable/12/sys: dev/usb sys X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/12/sys: dev/usb sys X-SVN-Commit-Revision: 356679 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 11:27:31 -0000 Author: hselasky Date: Mon Jan 13 11:27:30 2020 New Revision: 356679 URL: https://svnweb.freebsd.org/changeset/base/356679 Log: MFC r356409: Add own counter for cancelled USB transfers. Do not count these as errors. Bump the freebsd version to force recompilation of external modules. Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/usb_device.h stable/12/sys/dev/usb/usb_transfer.c stable/12/sys/sys/param.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/usb_device.h ============================================================================== --- stable/12/sys/dev/usb/usb_device.h Mon Jan 13 06:55:38 2020 (r356678) +++ stable/12/sys/dev/usb/usb_device.h Mon Jan 13 11:27:30 2020 (r356679) @@ -191,6 +191,7 @@ struct usb_device { /* statistics */ struct usb_device_statistics stats_err; struct usb_device_statistics stats_ok; + struct usb_device_statistics stats_cancelled; /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; Modified: stable/12/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/12/sys/dev/usb/usb_transfer.c Mon Jan 13 06:55:38 2020 (r356678) +++ stable/12/sys/dev/usb/usb_transfer.c Mon Jan 13 11:27:30 2020 (r356679) @@ -2593,7 +2593,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t } #endif /* keep some statistics */ - if (xfer->error) { + if (xfer->error == USB_ERR_CANCELLED) { + info->udev->stats_cancelled.uds_requests + [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; + } else if (xfer->error != USB_ERR_NORMAL_COMPLETION) { info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { Modified: stable/12/sys/sys/param.h ============================================================================== --- stable/12/sys/sys/param.h Mon Jan 13 06:55:38 2020 (r356678) +++ stable/12/sys/sys/param.h Mon Jan 13 11:27:30 2020 (r356679) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1201509 /* Master, propagated to newvers */ +#define __FreeBSD_version 1201510 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 13 11:30:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 417511FFBFE; Mon, 13 Jan 2020 11:30:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xBG80pgZz4M6f; Mon, 13 Jan 2020 11:30:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 172D23E53; Mon, 13 Jan 2020 11:30:08 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DBU7QG055886; Mon, 13 Jan 2020 11:30:07 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DBU7xT055882; Mon, 13 Jan 2020 11:30:07 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001131130.00DBU7xT055882@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 13 Jan 2020 11:30:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356680 - in stable/11/sys: dev/usb sys X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/11/sys: dev/usb sys X-SVN-Commit-Revision: 356680 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 11:30:08 -0000 Author: hselasky Date: Mon Jan 13 11:30:07 2020 New Revision: 356680 URL: https://svnweb.freebsd.org/changeset/base/356680 Log: MFC r356409: Add own counter for cancelled USB transfers. Do not count these as errors. Bump the FreeBSD version to force recompilation of external modules. Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/usb_device.h stable/11/sys/dev/usb/usb_transfer.c stable/11/sys/sys/param.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/usb_device.h ============================================================================== --- stable/11/sys/dev/usb/usb_device.h Mon Jan 13 11:27:30 2020 (r356679) +++ stable/11/sys/dev/usb/usb_device.h Mon Jan 13 11:30:07 2020 (r356680) @@ -189,6 +189,7 @@ struct usb_device { /* statistics */ struct usb_device_statistics stats_err; struct usb_device_statistics stats_ok; + struct usb_device_statistics stats_cancelled; /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; Modified: stable/11/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/11/sys/dev/usb/usb_transfer.c Mon Jan 13 11:27:30 2020 (r356679) +++ stable/11/sys/dev/usb/usb_transfer.c Mon Jan 13 11:30:07 2020 (r356680) @@ -2592,7 +2592,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t } #endif /* keep some statistics */ - if (xfer->error) { + if (xfer->error == USB_ERR_CANCELLED) { + info->udev->stats_cancelled.uds_requests + [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; + } else if (xfer->error != USB_ERR_NORMAL_COMPLETION) { info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { Modified: stable/11/sys/sys/param.h ============================================================================== --- stable/11/sys/sys/param.h Mon Jan 13 11:27:30 2020 (r356679) +++ stable/11/sys/sys/param.h Mon Jan 13 11:30:07 2020 (r356680) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1103506 /* Master, propagated to newvers */ +#define __FreeBSD_version 1103507 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 13 11:33:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27F421FFE3B; Mon, 13 Jan 2020 11:33:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xBKY0Gb9z4MTG; Mon, 13 Jan 2020 11:33:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0476E4052; Mon, 13 Jan 2020 11:33:05 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DBX4IC061359; Mon, 13 Jan 2020 11:33:04 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DBX4Mr061356; Mon, 13 Jan 2020 11:33:04 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001131133.00DBX4Mr061356@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Mon, 13 Jan 2020 11:33:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356681 - in stable/10/sys: dev/usb sys X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: in stable/10/sys: dev/usb sys X-SVN-Commit-Revision: 356681 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 11:33:05 -0000 Author: hselasky Date: Mon Jan 13 11:33:03 2020 New Revision: 356681 URL: https://svnweb.freebsd.org/changeset/base/356681 Log: MFC r356409: Add own counter for cancelled USB transfers. Do not count these as errors. Bump the FreeBSD version to force recompilation of external modules. Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/usb_device.h stable/10/sys/dev/usb/usb_transfer.c stable/10/sys/sys/param.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/usb_device.h ============================================================================== --- stable/10/sys/dev/usb/usb_device.h Mon Jan 13 11:30:07 2020 (r356680) +++ stable/10/sys/dev/usb/usb_device.h Mon Jan 13 11:33:03 2020 (r356681) @@ -189,6 +189,7 @@ struct usb_device { /* statistics */ struct usb_device_statistics stats_err; struct usb_device_statistics stats_ok; + struct usb_device_statistics stats_cancelled; /* generic clear stall message */ struct usb_udev_msg cs_msg[2]; Modified: stable/10/sys/dev/usb/usb_transfer.c ============================================================================== --- stable/10/sys/dev/usb/usb_transfer.c Mon Jan 13 11:30:07 2020 (r356680) +++ stable/10/sys/dev/usb/usb_transfer.c Mon Jan 13 11:33:03 2020 (r356681) @@ -2592,7 +2592,10 @@ usbd_transfer_done(struct usb_xfer *xfer, usb_error_t } #endif /* keep some statistics */ - if (xfer->error) { + if (xfer->error == USB_ERR_CANCELLED) { + info->udev->stats_cancelled.uds_requests + [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; + } else if (xfer->error != USB_ERR_NORMAL_COMPLETION) { info->udev->stats_err.uds_requests [xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE]++; } else { Modified: stable/10/sys/sys/param.h ============================================================================== --- stable/10/sys/sys/param.h Mon Jan 13 11:30:07 2020 (r356680) +++ stable/10/sys/sys/param.h Mon Jan 13 11:33:03 2020 (r356681) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1004502 /* Master, propagated to newvers */ +#define __FreeBSD_version 1004503 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@freebsd.org Mon Jan 13 14:30:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B70EF2257D4; Mon, 13 Jan 2020 14:30:20 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xGG44SsYz4YbK; Mon, 13 Jan 2020 14:30:20 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 949BC5FBB; Mon, 13 Jan 2020 14:30:20 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DEUKvp064221; Mon, 13 Jan 2020 14:30:20 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DEUK7x064219; Mon, 13 Jan 2020 14:30:20 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001131430.00DEUK7x064219@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Mon, 13 Jan 2020 14:30:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356682 - in head/sys: compat/linuxkpi/common/src kern X-SVN-Group: head X-SVN-Commit-Author: kib X-SVN-Commit-Paths: in head/sys: compat/linuxkpi/common/src kern X-SVN-Commit-Revision: 356682 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 14:30:20 -0000 Author: kib Date: Mon Jan 13 14:30:19 2020 New Revision: 356682 URL: https://svnweb.freebsd.org/changeset/base/356682 Log: Code must not unlock a mutex while owning the thread lock. Reviewed by: hselasky, markj Sponsored by: Mellanox Technologies MFC after: 1 week Differential revision: https://reviews.freebsd.org/D23150 Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c head/sys/kern/subr_epoch.c Modified: head/sys/compat/linuxkpi/common/src/linux_rcu.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_rcu.c Mon Jan 13 11:33:03 2020 (r356681) +++ head/sys/compat/linuxkpi/common/src/linux_rcu.c Mon Jan 13 14:30:19 2020 (r356682) @@ -298,14 +298,13 @@ linux_synchronize_rcu(void) "linux_synchronize_rcu() can sleep"); td = curthread; + DROP_GIANT(); /* * Synchronizing RCU might change the CPU core this function * is running on. Save current values: */ thread_lock(td); - - DROP_GIANT(); old_cpu = PCPU_GET(cpuid); old_pinned = td->td_pinned; Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Mon Jan 13 11:33:03 2020 (r356681) +++ head/sys/kern/subr_epoch.c Mon Jan 13 14:30:19 2020 (r356682) @@ -610,8 +610,8 @@ epoch_wait_preempt(epoch_t epoch) KASSERT(!in_epoch(epoch), ("epoch_wait_preempt() called in the middle " "of an epoch section of the same epoch")); #endif - thread_lock(td); DROP_GIANT(); + thread_lock(td); old_cpu = PCPU_GET(cpuid); old_pinned = td->td_pinned; From owner-svn-src-all@freebsd.org Mon Jan 13 14:33:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6F7B52259DC; Mon, 13 Jan 2020 14:33:52 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xGL82KYBz4Yyj; Mon, 13 Jan 2020 14:33:52 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4B23D61A1; Mon, 13 Jan 2020 14:33:52 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DEXqOa070030; Mon, 13 Jan 2020 14:33:52 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DEXpx7070028; Mon, 13 Jan 2020 14:33:51 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001131433.00DEXpx7070028@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Mon, 13 Jan 2020 14:33:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356683 - in head/sys/ufs: ffs ufs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/sys/ufs: ffs ufs X-SVN-Commit-Revision: 356683 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 14:33:52 -0000 Author: mjg Date: Mon Jan 13 14:33:51 2020 New Revision: 356683 URL: https://svnweb.freebsd.org/changeset/base/356683 Log: ufs: relax an overzealous assert added in r356671 Part of i_flag can persist across a drop to hold count of 0, at which point the vnode is taken off the lazy list. Then whoever locks and unlocks the vnode can trip on the assert. This trips over kyua running a test untarring character devices to ufs. Reported by: lwhsu Modified: head/sys/ufs/ffs/ffs_vnops.c head/sys/ufs/ufs/inode.h Modified: head/sys/ufs/ffs/ffs_vnops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vnops.c Mon Jan 13 14:30:19 2020 (r356682) +++ head/sys/ufs/ffs/ffs_vnops.c Mon Jan 13 14:33:51 2020 (r356683) @@ -485,7 +485,7 @@ ffs_unlock_debug(struct vop_unlock_args *ap) struct vnode *vp = ap->a_vp; struct inode *ip = VTOI(vp); - if (ip->i_flag & UFS_INODE_FLAG_LAZY_MASK) { + if (ip->i_flag & UFS_INODE_FLAG_LAZY_MASK_ASSERTABLE) { if ((vp->v_mflag & VMP_LAZYLIST) == 0) { VI_LOCK(vp); VNASSERT((vp->v_mflag & VMP_LAZYLIST), vp, Modified: head/sys/ufs/ufs/inode.h ============================================================================== --- head/sys/ufs/ufs/inode.h Mon Jan 13 14:30:19 2020 (r356682) +++ head/sys/ufs/ufs/inode.h Mon Jan 13 14:33:51 2020 (r356683) @@ -140,6 +140,12 @@ struct inode { #define UFS_INODE_FLAG_LAZY_MASK \ (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE | IN_LAZYMOD | IN_LAZYACCESS) +/* + * Some flags can persist a vnode transitioning to 0 hold count and being tkaen + * off the list. + */ +#define UFS_INODE_FLAG_LAZY_MASK_ASSERTABLE \ + (UFS_INODE_FLAG_LAZY_MASK & ~(IN_LAZYMOD | IN_LAZYACCESS)) #define UFS_INODE_SET_FLAG(ip, flags) do { \ struct inode *_ip = (ip); \ From owner-svn-src-all@freebsd.org Mon Jan 13 14:40:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B2234225FE6; Mon, 13 Jan 2020 14:40:37 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xGTx44dsz4Zrb; Mon, 13 Jan 2020 14:40:37 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 711D4260165; Mon, 13 Jan 2020 15:40:35 +0100 (CET) Subject: Re: svn commit: r356682 - in head/sys: compat/linuxkpi/common/src kern To: Konstantin Belousov , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202001131430.00DEUK7x064219@repo.freebsd.org> From: Hans Petter Selasky Message-ID: <616cbd60-098f-fbf3-e1f3-9c5d4c78cc13@selasky.org> Date: Mon, 13 Jan 2020 15:39:26 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <202001131430.00DEUK7x064219@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47xGTx44dsz4Zrb X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 14:40:37 -0000 On 2020-01-13 15:30, Konstantin Belousov wrote: > Author: kib > Date: Mon Jan 13 14:30:19 2020 > New Revision: 356682 > URL:https://svnweb.freebsd.org/changeset/base/356682 > > Log: > Code must not unlock a mutex while owning the thread lock. Because the thread lock is not recursive. --HPS From owner-svn-src-all@freebsd.org Mon Jan 13 14:50:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8D88226C5E; Mon, 13 Jan 2020 14:50:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xGjB5wSWz4c6X; Mon, 13 Jan 2020 14:50:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C68C6639C; Mon, 13 Jan 2020 14:50:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DEoMMC076234; Mon, 13 Jan 2020 14:50:22 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DEoMT0076233; Mon, 13 Jan 2020 14:50:22 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001131450.00DEoMT0076233@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Mon, 13 Jan 2020 14:50:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356684 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356684 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 14:50:23 -0000 Author: emaste Date: Mon Jan 13 14:50:22 2020 New Revision: 356684 URL: https://svnweb.freebsd.org/changeset/base/356684 Log: src.conf.5: regen after r356615, KERBEROS_SUPPORT dep on KERBEROS Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Mon Jan 13 14:33:51 2020 (r356683) +++ head/share/man/man5/src.conf.5 Mon Jan 13 14:50:22 2020 (r356684) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 8, 2020 +.Dd January 13, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -465,6 +465,8 @@ When set, it enforces these options: .It .Va WITHOUT_KERBEROS .It +.Va WITHOUT_KERBEROS_SUPPORT +.It .Va WITHOUT_LDNS .It .Va WITHOUT_LDNS_UTILS @@ -1447,6 +1449,8 @@ When set, it enforces these options: .Bl -item -compact .It .Va WITHOUT_KERBEROS +.It +.Va WITHOUT_KERBEROS_SUPPORT .It .Va WITHOUT_LDNS .It From owner-svn-src-all@freebsd.org Mon Jan 13 16:31:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A5AA1E21CD; Mon, 13 Jan 2020 16:31:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xJxK2JQqz3FWK; Mon, 13 Jan 2020 16:31:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4A82D76D4; Mon, 13 Jan 2020 16:31:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DGV1A0037690; Mon, 13 Jan 2020 16:31:01 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DGV1aC037689; Mon, 13 Jan 2020 16:31:01 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001131631.00DGV1aC037689@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jan 2020 16:31:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356685 - head/release X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release X-SVN-Commit-Revision: 356685 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 16:31:01 -0000 Author: gjb Date: Mon Jan 13 16:31:00 2020 New Revision: 356685 URL: https://svnweb.freebsd.org/changeset/base/356685 Log: Ensure the TYPE, BRANCH, and REVISION variables are set in cloudware targets when OSRELEASE is overridden. Submitted by: Trond Endrestol PR: 243287 MFC after: 3 days Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: head/release/Makefile.vm Modified: head/release/Makefile.vm ============================================================================== --- head/release/Makefile.vm Mon Jan 13 14:50:22 2020 (r356684) +++ head/release/Makefile.vm Mon Jan 13 16:31:00 2020 (r356685) @@ -39,6 +39,12 @@ VAGRANT-VMWARE_FORMAT= vmdk VAGRANT-VMWARE_DESC= Vagrant Image for VMWare VAGRANT-VMWARE_DISK= ${OSRELEASE}.vmware.${VAGRANT_FORMAT} +.for _V in TYPE BRANCH REVISION +. if !defined(${_V}) || empty(${_V}) +${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} +. endif +.endfor + emulator-portinstall: .if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ( ${TARGET_ARCH} != "i386" ) || ( ${MACHINE_ARCH} != "amd64" ) From owner-svn-src-all@freebsd.org Mon Jan 13 16:31:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1A6991E247C; Mon, 13 Jan 2020 16:31:59 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xJyQ71JWz3Fxh; Mon, 13 Jan 2020 16:31:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBB567735; Mon, 13 Jan 2020 16:31:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DGVwbn040051; Mon, 13 Jan 2020 16:31:58 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DGVwTs040050; Mon, 13 Jan 2020 16:31:58 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001131631.00DGVwTs040050@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Mon, 13 Jan 2020 16:31:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356686 - head/release X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/release X-SVN-Commit-Revision: 356686 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 16:31:59 -0000 Author: gjb Date: Mon Jan 13 16:31:58 2020 New Revision: 356686 URL: https://svnweb.freebsd.org/changeset/base/356686 Log: Fix a typo. MFC after: 3 days Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: head/release/Makefile Modified: head/release/Makefile ============================================================================== --- head/release/Makefile Mon Jan 13 16:31:00 2020 (r356685) +++ head/release/Makefile Mon Jan 13 16:31:58 2020 (r356686) @@ -54,7 +54,7 @@ TARGET_ARCH= ${TARGET} IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} DISTDIR= dist -# Define OSRELEASE by using newvars.sh +# Define OSRELEASE by using newvers.sh .if !defined(OSRELEASE) || empty(OSRELEASE) .for _V in TYPE BRANCH REVISION ${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} From owner-svn-src-all@freebsd.org Mon Jan 13 16:52:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0A1F1E2D44; Mon, 13 Jan 2020 16:52:27 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xKQ35Ys2z3H1S; Mon, 13 Jan 2020 16:52:27 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BA2647AE2; Mon, 13 Jan 2020 16:52:27 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DGqR0c053008; Mon, 13 Jan 2020 16:52:27 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DGqQJq053004; Mon, 13 Jan 2020 16:52:26 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001131652.00DGqQJq053004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Mon, 13 Jan 2020 16:52:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356687 - in head/usr.bin: . gprof X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: in head/usr.bin: . gprof X-SVN-Commit-Revision: 356687 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 16:52:27 -0000 Author: kp Date: Mon Jan 13 16:52:26 2020 New Revision: 356687 URL: https://svnweb.freebsd.org/changeset/base/356687 Log: gprof: Enable riscv Add a missing riscv.h header file, and fix the check for riscv (must test MACHINE_CPUARCH, not MACHINE_ARCH, if we want to use 'riscv'). Sponsored by: Axiado Added: head/usr.bin/gprof/riscv.h (contents, props changed) Modified: head/usr.bin/Makefile head/usr.bin/gprof/Makefile head/usr.bin/gprof/gprof.h Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Mon Jan 13 16:31:58 2020 (r356686) +++ head/usr.bin/Makefile Mon Jan 13 16:52:26 2020 (r356687) @@ -261,7 +261,7 @@ SUBDIR.${MK_TOOLCHAIN}+= objcopy SUBDIR.${MK_TOOLCHAIN}+= file2c # ARM64TODO gprof does not build # RISCVTODO gprof does not build -.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_CPUARCH} != "riscv" +.if ${MACHINE_ARCH} != "aarch64" SUBDIR.${MK_TOOLCHAIN}+= gprof .endif SUBDIR.${MK_TOOLCHAIN}+= indent Modified: head/usr.bin/gprof/Makefile ============================================================================== --- head/usr.bin/gprof/Makefile Mon Jan 13 16:31:58 2020 (r356686) +++ head/usr.bin/gprof/Makefile Mon Jan 13 16:52:26 2020 (r356687) @@ -5,7 +5,7 @@ PROG= gprof SRCS= gprof.c arcs.c dfn.c elf.c lookup.c hertz.c \ printgprof.c printlist.c kernel.c -.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "riscv" && \ +.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_CPUARCH} != "riscv" && \ ${MACHINE_ARCH} != "s390x" SRCS+= aout.c CFLAGS+= -DWITH_AOUT Modified: head/usr.bin/gprof/gprof.h ============================================================================== --- head/usr.bin/gprof/gprof.h Mon Jan 13 16:31:58 2020 (r356686) +++ head/usr.bin/gprof/gprof.h Mon Jan 13 16:52:26 2020 (r356687) @@ -57,6 +57,9 @@ #if __sparc64__ # include "sparc64.h" #endif +#if __riscv +# include "riscv.h" +#endif /* * booleans Added: head/usr.bin/gprof/riscv.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/gprof/riscv.h Mon Jan 13 16:52:26 2020 (r356687) @@ -0,0 +1,41 @@ +/*- + * SPDX-License-Identifier: BSD-3-Clause + * + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + + /* + * offset (in bytes) of the code from the entry address of a routine. + * (see asgnsamples for use and explanation.) + */ +#define OFFSET_OF_CODE 0 + +enum opermodes { dummy }; +typedef enum opermodes operandenum; From owner-svn-src-all@freebsd.org Mon Jan 13 17:02:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 662811E371C; Mon, 13 Jan 2020 17:02:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xKdv265Qz3J20; Mon, 13 Jan 2020 17:02:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4391A7DE3; Mon, 13 Jan 2020 17:02:43 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DH2hhS058939; Mon, 13 Jan 2020 17:02:43 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DH2gN3058938; Mon, 13 Jan 2020 17:02:42 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131702.00DH2gN3058938@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 17:02:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356688 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 356688 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 17:02:43 -0000 Author: kevans Date: Mon Jan 13 17:02:42 2020 New Revision: 356688 URL: https://svnweb.freebsd.org/changeset/base/356688 Log: Install tap(4) manpage as vmnet(4) as well If one comes across a vmnet interface, this is a useful pointer to have towards what it actually is if they're otherwise unfamiliar. MFC after: 3 days Modified: head/share/man/man4/Makefile head/share/man/man4/tap.4 Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Mon Jan 13 16:52:26 2020 (r356687) +++ head/share/man/man4/Makefile Mon Jan 13 17:02:42 2020 (r356688) @@ -729,7 +729,9 @@ MLINKS+=stf.4 if_stf.4 MLINKS+=stge.4 if_stge.4 MLINKS+=syncache.4 syncookies.4 MLINKS+=syscons.4 sc.4 -MLINKS+=tap.4 if_tap.4 +MLINKS+=tap.4 if_tap.4 \ + tap.4 vmnet.4 \ + tap.4 if_vmnet.4 MLINKS+=tdfx.4 tdfx_linux.4 MLINKS+=ti.4 if_ti.4 MLINKS+=tun.4 if_tun.4 Modified: head/share/man/man4/tap.4 ============================================================================== --- head/share/man/man4/tap.4 Mon Jan 13 16:52:26 2020 (r356687) +++ head/share/man/man4/tap.4 Mon Jan 13 17:02:42 2020 (r356688) @@ -1,11 +1,12 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd April 29, 2019 +.Dd January 13, 2020 .Dt TAP 4 .Os .Sh NAME -.Nm tap +.Nm tap , +.Nm vmnet .Nd Ethernet tunnel software network interface .Sh SYNOPSIS .Cd device tuntap From owner-svn-src-all@freebsd.org Mon Jan 13 18:16:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BF4051E6E37; Mon, 13 Jan 2020 18:16:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMHY4jLnz3yP4; Mon, 13 Jan 2020 18:16:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9862E8B1A; Mon, 13 Jan 2020 18:16:57 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIGvve010376; Mon, 13 Jan 2020 18:16:57 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIGvkS010375; Mon, 13 Jan 2020 18:16:57 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131816.00DIGvkS010375@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:16:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356689 - stable/12/sys/arm/allwinner X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/sys/arm/allwinner X-SVN-Commit-Revision: 356689 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:16:57 -0000 Author: kevans Date: Mon Jan 13 18:16:57 2020 New Revision: 356689 URL: https://svnweb.freebsd.org/changeset/base/356689 Log: MFC r356600: a10_ahci: grab the target-supply regulator and enable it This regulator is marked regulator-boot-on, but it will get shutdown if it's not actually used/enabled by a driver. This should fix sata on the cubieboard{1,2}. Modified: stable/12/sys/arm/allwinner/a10_ahci.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/allwinner/a10_ahci.c ============================================================================== --- stable/12/sys/arm/allwinner/a10_ahci.c Mon Jan 13 17:02:42 2020 (r356688) +++ stable/12/sys/arm/allwinner/a10_ahci.c Mon Jan 13 18:16:57 2020 (r356689) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include /* * Allwinner a1x/a2x/a8x SATA attachment. This is just the AHCI register @@ -119,6 +120,11 @@ __FBSDID("$FreeBSD$"); #define PLL_FREQ 100000000 +struct ahci_a10_softc { + struct ahci_controller ahci_ctlr; + regulator_t ahci_reg; +}; + static void inline ahci_set(struct resource *m, bus_size_t off, uint32_t set) { @@ -296,10 +302,12 @@ static int ahci_a10_attach(device_t dev) { int error; + struct ahci_a10_softc *sc; struct ahci_controller *ctlr; clk_t clk_pll, clk_gate; - ctlr = device_get_softc(dev); + sc = device_get_softc(dev); + ctlr = &sc->ahci_ctlr; clk_pll = clk_gate = NULL; ctlr->quirks = AHCI_Q_NOPMP; @@ -312,6 +320,19 @@ ahci_a10_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return (ENXIO); + /* Enable the regulator */ + error = regulator_get_by_ofw_property(dev, 0, "target-supply", + &sc->ahci_reg); + if (error != 0) { + device_printf(dev, "Cannot get regulator\n"); + goto fail; + } + error = regulator_enable(sc->ahci_reg); + if (error != 0) { + device_printf(dev, "Could not enable regulator\n"); + goto fail; + } + /* Enable clocks */ error = clk_get_by_ofw_index(dev, 0, 0, &clk_gate); if (error != 0) { @@ -358,6 +379,8 @@ ahci_a10_attach(device_t dev) return (ahci_attach(dev)); fail: + if (sc->ahci_reg != 0) + regulator_disable(sc->ahci_reg); if (clk_gate != NULL) clk_release(clk_gate); if (clk_pll != NULL) @@ -389,7 +412,7 @@ static device_method_t ahci_ata_methods[] = { static driver_t ahci_ata_driver = { "ahci", ahci_ata_methods, - sizeof(struct ahci_controller) + sizeof(struct ahci_a10_softc) }; DRIVER_MODULE(a10_ahci, simplebus, ahci_ata_driver, ahci_devclass, 0, 0); From owner-svn-src-all@freebsd.org Mon Jan 13 18:18:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D5E2B1E6F26; Mon, 13 Jan 2020 18:18:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMKD5KHfz3yXx; Mon, 13 Jan 2020 18:18:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B1CCF8B1B; Mon, 13 Jan 2020 18:18:24 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIIOg7010501; Mon, 13 Jan 2020 18:18:24 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIIO7S010500; Mon, 13 Jan 2020 18:18:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131818.00DIIO7S010500@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:18:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356690 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356690 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:18:24 -0000 Author: kevans Date: Mon Jan 13 18:18:24 2020 New Revision: 356690 URL: https://svnweb.freebsd.org/changeset/base/356690 Log: MFC r356601-r356602: inetd fixes for WITHOUT_* knobs r356601: inetd: free WITHOUT_INET6_SUPPORT build of warnings If inetd is compiled without inet6 support, we need to error out on rpc+inet6 services rather than attempting to call into rpc bits with an uninitialized netid. v4bind is only used with INET6 support, so move it under the proper #ifdefs with v6bind. Reported by: Pavel Timofeev r356602: inetd: two more nits Use __COPYRIGHT for copyright to simply either embed it via .ident or have it properly marked __unused Move an ipsec reference to IPSEC Modified: stable/11/usr.sbin/inetd/inetd.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/inetd/inetd.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/inetd/inetd.c ============================================================================== --- stable/11/usr.sbin/inetd/inetd.c Mon Jan 13 18:16:57 2020 (r356689) +++ stable/11/usr.sbin/inetd/inetd.c Mon Jan 13 18:18:24 2020 (r356690) @@ -27,10 +27,12 @@ * SUCH DAMAGE. */ +#include +__FBSDID("$FreeBSD$"); + #ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ - The Regents of the University of California. All rights reserved.\n"; +__COPYRIGHT("@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ + The Regents of the University of California. All rights reserved.\n"); #endif /* not lint */ #ifndef lint @@ -39,9 +41,6 @@ static char sccsid[] = "@(#)from: inetd.c 8.4 (Berkele #endif #endif /* not lint */ -#include -__FBSDID("$FreeBSD$"); - /* * Inetd - Internet super-server * @@ -1358,6 +1357,15 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o sock.sin_port = sep->se_ctrladdr6.sin6_port; } } +#else + else { + syslog(LOG_ERR, + "%s/%s: inetd compiled without inet6 support\n", + sep->se_service, sep->se_proto); + (void) close(sep->se_fd); + sep->se_fd = -1; + return; + } #endif if (debug) print_service("REG ", sep); @@ -1609,8 +1617,8 @@ getconfigent(void) #ifdef IPSEC char *policy; #endif - int v4bind; #ifdef INET6 + int v4bind; int v6bind; #endif int i; @@ -1620,8 +1628,8 @@ getconfigent(void) policy = NULL; #endif more: - v4bind = 0; #ifdef INET6 + v4bind = 0; v6bind = 0; #endif while ((cp = nextline(fconfig)) != NULL) { @@ -1650,7 +1658,9 @@ more: break; } if (cp == NULL) { +#ifdef IPSEC free(policy); +#endif return (NULL); } @@ -1785,7 +1795,9 @@ more: #endif if (sep->se_proto[strlen(sep->se_proto) - 1] == '4') { sep->se_proto[strlen(sep->se_proto) - 1] = '\0'; +#ifdef INET6 v4bind = 1; +#endif continue; } /* illegal version num */ From owner-svn-src-all@freebsd.org Mon Jan 13 18:18:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5000D1E6F2D; Mon, 13 Jan 2020 18:18:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMKF1Ky7z3yXy; Mon, 13 Jan 2020 18:18:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2908A8B1C; Mon, 13 Jan 2020 18:18:25 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIIOwg010507; Mon, 13 Jan 2020 18:18:24 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIIOM4010506; Mon, 13 Jan 2020 18:18:24 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131818.00DIIOM4010506@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:18:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356690 - in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/inetd 12/usr.sbin/inetd X-SVN-Commit-Revision: 356690 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:18:25 -0000 Author: kevans Date: Mon Jan 13 18:18:24 2020 New Revision: 356690 URL: https://svnweb.freebsd.org/changeset/base/356690 Log: MFC r356601-r356602: inetd fixes for WITHOUT_* knobs r356601: inetd: free WITHOUT_INET6_SUPPORT build of warnings If inetd is compiled without inet6 support, we need to error out on rpc+inet6 services rather than attempting to call into rpc bits with an uninitialized netid. v4bind is only used with INET6 support, so move it under the proper #ifdefs with v6bind. Reported by: Pavel Timofeev r356602: inetd: two more nits Use __COPYRIGHT for copyright to simply either embed it via .ident or have it properly marked __unused Move an ipsec reference to IPSEC Modified: stable/12/usr.sbin/inetd/inetd.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/inetd/inetd.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/inetd/inetd.c ============================================================================== --- stable/12/usr.sbin/inetd/inetd.c Mon Jan 13 18:16:57 2020 (r356689) +++ stable/12/usr.sbin/inetd/inetd.c Mon Jan 13 18:18:24 2020 (r356690) @@ -29,10 +29,12 @@ * SUCH DAMAGE. */ +#include +__FBSDID("$FreeBSD$"); + #ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ - The Regents of the University of California. All rights reserved.\n"; +__COPYRIGHT("@(#) Copyright (c) 1983, 1991, 1993, 1994\n\ + The Regents of the University of California. All rights reserved.\n"); #endif /* not lint */ #ifndef lint @@ -41,9 +43,6 @@ static char sccsid[] = "@(#)from: inetd.c 8.4 (Berkele #endif #endif /* not lint */ -#include -__FBSDID("$FreeBSD$"); - /* * Inetd - Internet super-server * @@ -1360,6 +1359,15 @@ setsockopt(fd, SOL_SOCKET, opt, (char *)&on, sizeof (o sock.sin_port = sep->se_ctrladdr6.sin6_port; } } +#else + else { + syslog(LOG_ERR, + "%s/%s: inetd compiled without inet6 support\n", + sep->se_service, sep->se_proto); + (void) close(sep->se_fd); + sep->se_fd = -1; + return; + } #endif if (debug) print_service("REG ", sep); @@ -1611,8 +1619,8 @@ getconfigent(void) #ifdef IPSEC char *policy; #endif - int v4bind; #ifdef INET6 + int v4bind; int v6bind; #endif int i; @@ -1622,8 +1630,8 @@ getconfigent(void) policy = NULL; #endif more: - v4bind = 0; #ifdef INET6 + v4bind = 0; v6bind = 0; #endif while ((cp = nextline(fconfig)) != NULL) { @@ -1652,7 +1660,9 @@ more: break; } if (cp == NULL) { +#ifdef IPSEC free(policy); +#endif return (NULL); } @@ -1787,7 +1797,9 @@ more: #endif if (sep->se_proto[strlen(sep->se_proto) - 1] == '4') { sep->se_proto[strlen(sep->se_proto) - 1] = '\0'; +#ifdef INET6 v4bind = 1; +#endif continue; } /* illegal version num */ From owner-svn-src-all@freebsd.org Mon Jan 13 18:20:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D38381E7072; Mon, 13 Jan 2020 18:20:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMM84zy5z3ynJ; Mon, 13 Jan 2020 18:20:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A60BE8B21; Mon, 13 Jan 2020 18:20:04 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIK45x010678; Mon, 13 Jan 2020 18:20:04 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIK4ku010677; Mon, 13 Jan 2020 18:20:04 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131820.00DIK4ku010677@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:20:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356691 - stable/12/tests/sys/fs/fusefs X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/tests/sys/fs/fusefs X-SVN-Commit-Revision: 356691 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:20:04 -0000 Author: kevans Date: Mon Jan 13 18:20:04 2020 New Revision: 356691 URL: https://svnweb.freebsd.org/changeset/base/356691 Log: MFC r356614: tests: fusefs: silence remaining unsigned/signed warnings External GCC turns these into errors; cast to long to silence them. Modified: stable/12/tests/sys/fs/fusefs/setattr.cc Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/fs/fusefs/setattr.cc ============================================================================== --- stable/12/tests/sys/fs/fusefs/setattr.cc Mon Jan 13 18:18:24 2020 (r356690) +++ stable/12/tests/sys/fs/fusefs/setattr.cc Mon Jan 13 18:20:04 2020 (r356691) @@ -586,11 +586,11 @@ TEST_F(Setattr, utimensat) { in.body.setattr.valid == valid && (time_t)in.body.setattr.atime == newtimes[0].tv_sec && - in.body.setattr.atimensec == + (long)in.body.setattr.atimensec == newtimes[0].tv_nsec && (time_t)in.body.setattr.mtime == newtimes[1].tv_sec && - in.body.setattr.mtimensec == + (long)in.body.setattr.mtimensec == newtimes[1].tv_nsec); }, Eq(true)), _) @@ -641,7 +641,7 @@ TEST_F(Setattr, utimensat_mtime_only) { in.body.setattr.valid == valid && (time_t)in.body.setattr.mtime == newtimes[1].tv_sec && - in.body.setattr.mtimensec == + (long)in.body.setattr.mtimensec == newtimes[1].tv_nsec); }, Eq(true)), _) From owner-svn-src-all@freebsd.org Mon Jan 13 18:22:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 20BCA1E7328; Mon, 13 Jan 2020 18:22:52 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMQN03P7z40D0; Mon, 13 Jan 2020 18:22:52 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F14C38CE1; Mon, 13 Jan 2020 18:22:51 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIMpPu016285; Mon, 13 Jan 2020 18:22:51 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIMprF016284; Mon, 13 Jan 2020 18:22:51 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131822.00DIMprF016284@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:22:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356692 - in stable: 11/usr.sbin/camdd 12/usr.sbin/camdd X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/camdd 12/usr.sbin/camdd X-SVN-Commit-Revision: 356692 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:22:52 -0000 Author: kevans Date: Mon Jan 13 18:22:51 2020 New Revision: 356692 URL: https://svnweb.freebsd.org/changeset/base/356692 Log: MFC r356617: camdd: initialize devs earlier GCC9 points out that devs may be used initialized after the bailout label; in-fact, if num_io_opts != 2 then it is. Move the initialization up a little bit. Modified: stable/11/usr.sbin/camdd/camdd.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/usr.sbin/camdd/camdd.c Directory Properties: stable/12/ (props changed) Modified: stable/11/usr.sbin/camdd/camdd.c ============================================================================== --- stable/11/usr.sbin/camdd/camdd.c Mon Jan 13 18:20:04 2020 (r356691) +++ stable/11/usr.sbin/camdd/camdd.c Mon Jan 13 18:22:51 2020 (r356692) @@ -2984,13 +2984,13 @@ camdd_rw(struct camdd_io_opts *io_opts, int num_io_opt int error = 0; int i; + bzero(devs, sizeof(devs)); + if (num_io_opts != 2) { warnx("Must have one input and one output path"); error = 1; goto bailout; } - - bzero(devs, sizeof(devs)); for (i = 0; i < num_io_opts; i++) { switch (io_opts[i].dev_type) { From owner-svn-src-all@freebsd.org Mon Jan 13 18:22:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D6F01E732C; Mon, 13 Jan 2020 18:22:52 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMQN3DwDz40D1; Mon, 13 Jan 2020 18:22:52 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6A5AF8CE2; Mon, 13 Jan 2020 18:22:52 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIMqPx016291; Mon, 13 Jan 2020 18:22:52 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIMqHZ016290; Mon, 13 Jan 2020 18:22:52 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131822.00DIMqHZ016290@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:22:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356692 - in stable: 11/usr.sbin/camdd 12/usr.sbin/camdd X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/usr.sbin/camdd 12/usr.sbin/camdd X-SVN-Commit-Revision: 356692 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:22:52 -0000 Author: kevans Date: Mon Jan 13 18:22:51 2020 New Revision: 356692 URL: https://svnweb.freebsd.org/changeset/base/356692 Log: MFC r356617: camdd: initialize devs earlier GCC9 points out that devs may be used initialized after the bailout label; in-fact, if num_io_opts != 2 then it is. Move the initialization up a little bit. Modified: stable/12/usr.sbin/camdd/camdd.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/usr.sbin/camdd/camdd.c Directory Properties: stable/11/ (props changed) Modified: stable/12/usr.sbin/camdd/camdd.c ============================================================================== --- stable/12/usr.sbin/camdd/camdd.c Mon Jan 13 18:20:04 2020 (r356691) +++ stable/12/usr.sbin/camdd/camdd.c Mon Jan 13 18:22:51 2020 (r356692) @@ -3086,13 +3086,13 @@ camdd_rw(struct camdd_io_opts *io_opts, int num_io_opt int error = 0; int i; + bzero(devs, sizeof(devs)); + if (num_io_opts != 2) { warnx("Must have one input and one output path"); error = 1; goto bailout; } - - bzero(devs, sizeof(devs)); for (i = 0; i < num_io_opts; i++) { switch (io_opts[i].dev_type) { From owner-svn-src-all@freebsd.org Mon Jan 13 18:22:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5909E1E73A1; Mon, 13 Jan 2020 18:22:56 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMQS0p5bz40KH; Mon, 13 Jan 2020 18:22:55 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BB0108CE3; Mon, 13 Jan 2020 18:22:55 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIMth2016342; Mon, 13 Jan 2020 18:22:55 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIMtrW016338; Mon, 13 Jan 2020 18:22:55 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001131822.00DIMtrW016338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Mon, 13 Jan 2020 18:22:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356693 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: in head/stand: efi/libefi i386/libi386 libofw uboot/lib X-SVN-Commit-Revision: 356693 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:22:56 -0000 Author: tsoome Date: Mon Jan 13 18:22:54 2020 New Revision: 356693 URL: https://svnweb.freebsd.org/changeset/base/356693 Log: loader: allocate properly aligned buffer for network packet Use memalign(4, size) to ensure we have properly aligned buffer. MFC after: 2 weeks Modified: head/stand/efi/libefi/efinet.c head/stand/i386/libi386/pxe.c head/stand/libofw/ofw_net.c head/stand/uboot/lib/net.c Modified: head/stand/efi/libefi/efinet.c ============================================================================== --- head/stand/efi/libefi/efinet.c Mon Jan 13 18:22:51 2020 (r356692) +++ head/stand/efi/libefi/efinet.c Mon Jan 13 18:22:54 2020 (r356693) @@ -178,7 +178,7 @@ efinet_get(struct iodesc *desc, void **pkt, time_t tim return (ret); bufsz = net->Mode->MaxPacketSize + ETHER_HDR_LEN + ETHER_CRC_LEN; - buf = malloc(bufsz + ETHER_ALIGN); + buf = memalign(4, bufsz + ETHER_ALIGN); if (buf == NULL) return (ret); ptr = buf + ETHER_ALIGN; Modified: head/stand/i386/libi386/pxe.c ============================================================================== --- head/stand/i386/libi386/pxe.c Mon Jan 13 18:22:51 2020 (r356692) +++ head/stand/i386/libi386/pxe.c Mon Jan 13 18:22:54 2020 (r356693) @@ -484,7 +484,7 @@ pxe_netif_receive(void **pkt) } size = isr->FrameLength; - buf = malloc(size + ETHER_ALIGN); + buf = memalign(4, size + ETHER_ALIGN); if (buf == NULL) { bio_free(isr, sizeof(*isr)); return (-1); Modified: head/stand/libofw/ofw_net.c ============================================================================== --- head/stand/libofw/ofw_net.c Mon Jan 13 18:22:51 2020 (r356692) +++ head/stand/libofw/ofw_net.c Mon Jan 13 18:22:54 2020 (r356693) @@ -142,7 +142,7 @@ ofwn_get(struct iodesc *desc, void **pkt, time_t timeo * a small shortcut here. */ len = ETHER_MAX_LEN; - buf = malloc(len + ETHER_ALIGN); + buf = memalign(4, len + ETHER_ALIGN); if (buf == NULL) return (-1); ptr = buf + ETHER_ALIGN; Modified: head/stand/uboot/lib/net.c ============================================================================== --- head/stand/uboot/lib/net.c Mon Jan 13 18:22:51 2020 (r356692) +++ head/stand/uboot/lib/net.c Mon Jan 13 18:22:54 2020 (r356693) @@ -302,7 +302,7 @@ net_get(struct iodesc *desc, void **pkt, time_t timeou #endif if (rlen > 0) { - buf = malloc(rlen + ETHER_ALIGN); + buf = memalign(4, rlen + ETHER_ALIGN); if (buf == NULL) return (-1); memcpy(buf + ETHER_ALIGN, sc->sc_rxbuf, rlen); From owner-svn-src-all@freebsd.org Mon Jan 13 18:26:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C597B1E752D; Mon, 13 Jan 2020 18:26:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMVW4tdWz40cc; Mon, 13 Jan 2020 18:26:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A27908CE7; Mon, 13 Jan 2020 18:26:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DIQRA2016555; Mon, 13 Jan 2020 18:26:27 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DIQRkl016554; Mon, 13 Jan 2020 18:26:27 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001131826.00DIQRkl016554@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Mon, 13 Jan 2020 18:26:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356694 - head/share/man/man4 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/share/man/man4 X-SVN-Commit-Revision: 356694 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:26:27 -0000 Author: kevans Date: Mon Jan 13 18:26:27 2020 New Revision: 356694 URL: https://svnweb.freebsd.org/changeset/base/356694 Log: tap(4): also note that we drop configured addresses This provides a specific pointer for users of tap(4) to understand why their interfaces are losing their addresses, and specifically how to workaround this if they need different behavior. This manpage received a .Dd bump earlier today in r35688, so no bump occurs this time. Submitted by: sigsys@gmail.com (via IRC) Modified: head/share/man/man4/tap.4 Modified: head/share/man/man4/tap.4 ============================================================================== --- head/share/man/man4/tap.4 Mon Jan 13 18:22:54 2020 (r356693) +++ head/share/man/man4/tap.4 Mon Jan 13 18:26:27 2020 (r356694) @@ -281,6 +281,7 @@ On the last close of the data device, the interface is brought down (as if with .Dq ifconfig tap Ns Sy N No down ) +and has all of its configured addresses deleted unless the device is a .Em VMnet device, or has From owner-svn-src-all@freebsd.org Mon Jan 13 18:29:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 71C2C1E7625; Mon, 13 Jan 2020 18:29:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMZN2Q0Dz40mj; Mon, 13 Jan 2020 18:29:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 48FED8CEB; Mon, 13 Jan 2020 18:29:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DITmQZ016749; Mon, 13 Jan 2020 18:29:48 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DITmev016747; Mon, 13 Jan 2020 18:29:48 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001131829.00DITmev016747@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 13 Jan 2020 18:29:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356695 - head/usr.bin/diff X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/usr.bin/diff X-SVN-Commit-Revision: 356695 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:29:48 -0000 Author: markj Date: Mon Jan 13 18:29:47 2020 New Revision: 356695 URL: https://svnweb.freebsd.org/changeset/base/356695 Log: Optimize diff -q. Once we know whether the files differ, we don't need to do any further work. PR: 242828 Submitted by: fehmi noyan isi (original version) Reviewed by: bapt, kevans MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23152 Modified: head/usr.bin/diff/diffreg.c Modified: head/usr.bin/diff/diffreg.c ============================================================================== --- head/usr.bin/diff/diffreg.c Mon Jan 13 18:26:27 2020 (r356694) +++ head/usr.bin/diff/diffreg.c Mon Jan 13 18:29:47 2020 (r356695) @@ -349,6 +349,11 @@ diffreg(char *file1, char *file2, int flags, int capsi goto closem; } + if (diff_format == D_BRIEF) { + rval = D_DIFFER; + status |= 1; + goto closem; + } if ((flags & D_FORCEASCII) == 0 && (!asciifile(f1) || !asciifile(f2))) { rval = D_BINARY; From owner-svn-src-all@freebsd.org Mon Jan 13 18:31:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6C2F1E78E5 for ; Mon, 13 Jan 2020 18:31:05 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3d.ore.mailhop.org (outbound3d.ore.mailhop.org [54.186.57.195]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMbs13sdz40xb for ; Mon, 13 Jan 2020 18:31:04 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1578940263; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=vN1bdST37tMgGxhPx4C+EQLYdOj1+bH6ai+gScLns/g/h382N2TpzPcrYewsxC8ic0Yj8Rd+gPxK3 gjvAPLcbgKDTEGvQmMz/nCGtUaPSIXyltqw6Osj/kZL6XSIF8dVpJWFydRSEfxac1zDsg/JJ5l+A/q 2M1VKs+KdCag8gwz2f66KaN2kjza4qj5EOsjfiGrwWDpX1ogA23xtFSPtse6xCmTzvK67hE6qZqTvk IK9T+lSom2JLJnRLocOnPcJ1T3JA+OmtfebB4ATtOpMHKAPNpa9vGl7iWdaFBxJh7zPM3kmPVLwTLP NXH/Ee2HEchVRI4Q5gmOEP2qPPorYdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:dkim-signature:from; bh=ciP+eh26h/khVCBT/4cz6qxbcXgErNlq6tPwU2CJ0CY=; b=vVznAiwWIoqYfAud8b4/Ab5rEo5cvC6K1HaC+24RX1lMCNl3UupVonvsHQx1NVAX40XImUN+AsG1B At4J2NFSAFWihdsNrWWgwEfi4D1R8NjTkx9cyW2De5YHcLSypgZT//5GbqBtAqKBk/bz8hh7/yk/aR xYTjBkkpEBs5OLGJ0Tz42Pski6P0MRWeXNm/l21LALiVHZWrXypC5d9InECrwoqRi4L8UXgAGlIbc+ AcFRTL1fQOJfmweZaKKCIJx++VGF26fcMG3xdcZzxUZVVagBy0HergaWcrE2mpItMaP4ogE/RcYjAi /21bBFZ9soPEhRhtQtqsJ9GYwzt2Fsg== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:from; bh=ciP+eh26h/khVCBT/4cz6qxbcXgErNlq6tPwU2CJ0CY=; b=kCeA9w65RpqYMfiOrw59pWbR7v7AgmOJgOC5GVlXFpldLtQKtFMJhRoq0fp9h7NbtZ8Ly0ERzsffI R41ygHAB888Hka/TS7Huos3lcc6ZKBowmv27Leo/8NSFgdvH0UaAFIb6TysMqfXxcYC7UJQIx+57ak VdVhO2N0ChLQqQVqq9iuOtd2DU2cc3ooMNptM2rr4sfOQT0uf9zo4xBKSfV2//E2h4j60JwrefsUIN lZuUJpomBKbMP3fRy7g5HgBGCQ7pSXqeaPlDaPkmzFc8Kah7OPPJNXnbgY0pFlWo+5snynmpoiiVl0 HP9vMhIwW+xbRC7mgkDl0VNjQkLShOg== X-MHO-RoutePath: aGlwcGll X-MHO-User: d9855afa-3632-11ea-b80d-052b4a66b6b2 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id d9855afa-3632-11ea-b80d-052b4a66b6b2; Mon, 13 Jan 2020 18:31:02 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 00DIV1Ns055383; Mon, 13 Jan 2020 11:31:01 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <5a3e388ed5c91a6d1f88ecc91c08dc103d0369d1.camel@freebsd.org> Subject: Re: svn commit: r356693 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib From: Ian Lepore To: Toomas Soome , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Mon, 13 Jan 2020 11:31:01 -0700 In-Reply-To: <202001131822.00DIMtrW016338@repo.freebsd.org> References: <202001131822.00DIMtrW016338@repo.freebsd.org> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47xMbs13sdz40xb X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.987,0]; NEURAL_HAM_LONG(-0.99)[-0.992,0]; ASN(0.00)[asn:16509, ipnet:54.186.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:31:05 -0000 On Mon, 2020-01-13 at 18:22 +0000, Toomas Soome wrote: > Author: tsoome > Date: Mon Jan 13 18:22:54 2020 > New Revision: 356693 > URL: https://svnweb.freebsd.org/changeset/base/356693 > > Log: > loader: allocate properly aligned buffer for network packet > > Use memalign(4, size) to ensure we have properly aligned buffer. > > MFC after: 2 weeks > > Modified: > head/stand/efi/libefi/efinet.c > head/stand/i386/libi386/pxe.c > head/stand/libofw/ofw_net.c > head/stand/uboot/lib/net.c > The malloc implementation in libstand already g'tees minimum alignment of 16 bytes on most arches, 64 bytes on arches that use u-boot (see libsa/zalloc_defs.h). So how does this change anything? -- Ian From owner-svn-src-all@freebsd.org Mon Jan 13 18:43:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E10E81E8070 for ; Mon, 13 Jan 2020 18:43:55 +0000 (UTC) (envelope-from tsoome@me.com) Received: from pv50p00im-ztdg10021801.me.com (pv50p00im-ztdg10021801.me.com [17.58.6.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMtg29mXz426M for ; Mon, 13 Jan 2020 18:43:55 +0000 (UTC) (envelope-from tsoome@me.com) Received: from nazgul.lan (148-52-235-80.sta.estpak.ee [80.235.52.148]) by pv50p00im-ztdg10021801.me.com (Postfix) with ESMTPSA id 49157360A0F; Mon, 13 Jan 2020 18:43:52 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Subject: Re: svn commit: r356693 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib From: Toomas Soome In-Reply-To: <5a3e388ed5c91a6d1f88ecc91c08dc103d0369d1.camel@freebsd.org> Date: Mon, 13 Jan 2020 20:43:49 +0200 Cc: Toomas Soome , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <4437F251-43CC-4DED-B449-00A9516C75E2@me.com> References: <202001131822.00DIMtrW016338@repo.freebsd.org> <5a3e388ed5c91a6d1f88ecc91c08dc103d0369d1.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.3608.40.2.2.4) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2020-01-13_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=638 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1908290000 definitions=main-2001130151 X-Rspamd-Queue-Id: 47xMtg29mXz426M X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.60 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:17.58.0.0/16]; FREEMAIL_FROM(0.00)[me.com]; MV_CASE(0.50)[]; RCPT_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[me.com:+]; DMARC_POLICY_ALLOW(-0.50)[me.com,quarantine]; RECEIVED_SPAMHAUS_PBL(0.00)[148.52.235.80.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; RCVD_IN_DNSWL_LOW(-0.10)[56.6.58.17.list.dnswl.org : 127.0.5.1]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:714, ipnet:17.58.0.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[me.com]; R_DKIM_ALLOW(-0.20)[me.com:s=1a1hai]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (-4.76), ipnet: 17.58.0.0/20(-1.92), asn: 714(-2.24), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; DWL_DNSWL_LOW(-1.00)[me.com.dwl.dnswl.org : 127.0.5.1]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:43:55 -0000 > On 13. Jan 2020, at 20:31, Ian Lepore wrote: >=20 > On Mon, 2020-01-13 at 18:22 +0000, Toomas Soome wrote: >> Author: tsoome >> Date: Mon Jan 13 18:22:54 2020 >> New Revision: 356693 >> URL: https://svnweb.freebsd.org/changeset/base/356693 >>=20 >> Log: >> loader: allocate properly aligned buffer for network packet >>=20 >> Use memalign(4, size) to ensure we have properly aligned buffer. >>=20 >> MFC after: 2 weeks >>=20 >> Modified: >> head/stand/efi/libefi/efinet.c >> head/stand/i386/libi386/pxe.c >> head/stand/libofw/ofw_net.c >> head/stand/uboot/lib/net.c >>=20 >=20 > The malloc implementation in libstand already g'tees minimum alignment > of 16 bytes on most arches, 64 bytes on arches that use u-boot (see > libsa/zalloc_defs.h). So how does this change anything? >=20 Hi! Well, given the amount of knobs etc, it does not hurt to be explicit, = does it? rgds, toomas= From owner-svn-src-all@freebsd.org Mon Jan 13 18:45:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F10E71E81CF for ; Mon, 13 Jan 2020 18:45:28 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound3d.ore.mailhop.org (outbound3d.ore.mailhop.org [54.186.57.195]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xMwS5brFz42JY for ; Mon, 13 Jan 2020 18:45:28 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1578941127; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=hbzPHHZVcMFrctZP+kH3gxzmQchTSRePsq239mKJHBYv3u+976VXq2RQtD+jLmOUrhy9rJshkEP79 FTHqm/Ni69KafNrt98hOPh4vtGLF+RBd1i2xkJAPjSEhSEoM9topIw3CLae4FS6hh8a7CbQJCi1LAg PSNAsB3N1R+NTj4tHUT6jkhCLT4qMqjbkBaKjSY8B8Jr7wJaWyH3e7WHLCFFLygwFqVbozEBW4NKv6 MM73zY6aqizfUqa5rWJIiwPdNWXIA7J5TW/tSTxDCXZ+t7fK3NvFjpwWAcM2NqqUjJjwUKmpY1bVU7 ZQ7W3RnVXWLyb9Ve7IPV6VHBqk0jePQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:dkim-signature:from; bh=X/fB/+w5Krp/0QvHEpFd9ovkLTcPohzEoGgmWF74YIs=; b=Wgh0XbV3kztGd7FJ5O8csvO7EnLjMa8dy/boEv/RFBt8y3Zhv2VNppBdD+e1GMr1e3PyntAw9P3eD aBbo2Op45+tY0GZKCIpr5SBcbjiEN267FUh5OMYU4DpKDbXwFGCc4OyfYECe468TyNVxMbZAcmPXp9 zm9eykQ4VsfgXL9+PZGWbUMgAzinrEphKP5KqILx38jNS9vmGDSosgTurTW82ZhLWZaYuQLiQP0p5p s1eF5Vj4q3pwOUfmzSvam6XTWAmc7tZsIqlCBsas7xMLntxrYQ9l5nNhYDJ+v9Rg5+MONtiBg/+DQF IT8/RQqPhmbHz42RUae0EJ2qgHZsw5Q== ARC-Authentication-Results: i=1; outbound3.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:cc:to:from:subject:message-id:from; bh=X/fB/+w5Krp/0QvHEpFd9ovkLTcPohzEoGgmWF74YIs=; b=ve4stQ/U+DPo2AKoO4RjmpigTTWlaHRwABahcAoXBWgnySt03A3/rEBB6vcSOev1D2nG913CcODwU BvY/YB0uuXAxFGDjGdwqOQ2c2v0Lcmycpd8DNcJac/1w8L3ReBWylLFSzVDpar4lkjEnbLnJWwx1Oo n9u8aVsLLh17/jIXqEEsRKmaFMOXyOA5nfE/A0pvnCqrpVlvTkvBrVUen+Hts8mOvVGUk1F+uE/6NQ DUusPfCCNjntJk8Zf/GznxWFtcZ+g1By83OwP+ICJgJbCoqnTJoZyBdAXq0+f0Ht5pk2VTrWXUpLax c4u1J4P0OXlnD/aiYPo/iyLiG6dPqSg== X-MHO-RoutePath: aGlwcGll X-MHO-User: dc78efbf-3634-11ea-b80d-052b4a66b6b2 X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound3.ore.mailhop.org (Halon) with ESMTPSA id dc78efbf-3634-11ea-b80d-052b4a66b6b2; Mon, 13 Jan 2020 18:45:26 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 00DIjPQe055439; Mon, 13 Jan 2020 11:45:25 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <15236c9adbb7ec8c90375e283f7d1d5d5eafe6be.camel@freebsd.org> Subject: Re: svn commit: r356693 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib From: Ian Lepore To: Toomas Soome Cc: Toomas Soome , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Mon, 13 Jan 2020 11:45:25 -0700 In-Reply-To: <4437F251-43CC-4DED-B449-00A9516C75E2@me.com> References: <202001131822.00DIMtrW016338@repo.freebsd.org> <5a3e388ed5c91a6d1f88ecc91c08dc103d0369d1.camel@freebsd.org> <4437F251-43CC-4DED-B449-00A9516C75E2@me.com> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47xMwS5brFz42JY X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.987,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; ASN(0.00)[asn:16509, ipnet:54.186.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 18:45:29 -0000 On Mon, 2020-01-13 at 20:43 +0200, Toomas Soome wrote: > > On 13. Jan 2020, at 20:31, Ian Lepore wrote: > > > > On Mon, 2020-01-13 at 18:22 +0000, Toomas Soome wrote: > > > Author: tsoome > > > Date: Mon Jan 13 18:22:54 2020 > > > New Revision: 356693 > > > URL: https://svnweb.freebsd.org/changeset/base/356693 > > > > > > Log: > > > loader: allocate properly aligned buffer for network packet > > > > > > Use memalign(4, size) to ensure we have properly aligned buffer. > > > > > > MFC after: 2 weeks > > > > > > Modified: > > > head/stand/efi/libefi/efinet.c > > > head/stand/i386/libi386/pxe.c > > > head/stand/libofw/ofw_net.c > > > head/stand/uboot/lib/net.c > > > > > > > The malloc implementation in libstand already g'tees minimum > > alignment > > of 16 bytes on most arches, 64 bytes on arches that use u-boot (see > > libsa/zalloc_defs.h). So how does this change anything? > > > > Hi! > > Well, given the amount of knobs etc, it does not hurt to be explicit, > does it? > > rgds, > toomas I think it does hurt, because now it misleads you into thinking it's 4- byte aligned when it's actually 16 or 64. (That's what made me reply at all, my first gut reaction to reading the commit message was "but 4 is not at all the right alignment on many platforms"). -- Ian From owner-svn-src-all@freebsd.org Mon Jan 13 19:22:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B00381E9B97; Mon, 13 Jan 2020 19:22:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xNlc4DSnz44gT; Mon, 13 Jan 2020 19:22:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C5CC9843; Mon, 13 Jan 2020 19:22:52 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DJMqCP052423; Mon, 13 Jan 2020 19:22:52 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DJMqbM052422; Mon, 13 Jan 2020 19:22:52 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001131922.00DJMqbM052422@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 13 Jan 2020 19:22:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356696 - stable/12/share/mk X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/share/mk X-SVN-Commit-Revision: 356696 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 19:22:52 -0000 Author: bdrewery Date: Mon Jan 13 19:22:52 2020 New Revision: 356696 URL: https://svnweb.freebsd.org/changeset/base/356696 Log: MFC r355588: Fix WITHOUT_CLANG build. PR: 240507 Modified: stable/12/share/mk/src.opts.mk Directory Properties: stable/12/ (props changed) Modified: stable/12/share/mk/src.opts.mk ============================================================================== --- stable/12/share/mk/src.opts.mk Mon Jan 13 18:29:47 2020 (r356695) +++ stable/12/share/mk/src.opts.mk Mon Jan 13 19:22:52 2020 (r356696) @@ -129,6 +129,7 @@ __DEFAULT_YES_OPTIONS = \ LIBPTHREAD \ LIBTHR \ LLVM_COV \ + LLVM_TARGET_ALL \ LOADER_GELI \ LOADER_LUA \ LOADER_OFW \ @@ -217,7 +218,6 @@ __DEFAULT_NO_OPTIONS = \ # RIGHT option is disabled. __DEFAULT_DEPENDENT_OPTIONS= \ CLANG_FULL/CLANG \ - LLVM_TARGET_ALL/CLANG \ LOADER_VERIEXEC/BEARSSL \ LOADER_EFI_SECUREBOOT/LOADER_VERIEXEC \ VERIEXEC/BEARSSL \ @@ -269,9 +269,9 @@ __LLVM_TARGETS= \ x86 __LLVM_TARGET_FILT= C/(amd64|i386)/x86/:S/sparc64/sparc/:S/arm64/aarch64/ .for __llt in ${__LLVM_TARGETS} -# Default the given TARGET's LLVM_TARGET support to the value of MK_CLANG. +# Default enable the given TARGET's LLVM_TARGET support .if ${__TT:${__LLVM_TARGET_FILT}} == ${__llt} -__DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/CLANG +__DEFAULT_YES_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu} # Disable other targets for arm and armv6, to work around "relocation truncated # to fit" errors with BFD ld, since libllvm.a will get too large to link. .elif ${__T} == "arm" || ${__T} == "armv6" @@ -279,8 +279,7 @@ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_${__llt:tu} # aarch64 needs arm for -m32 support. .elif ${__TT} == "arm64" && ${__llt} == "arm" __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_ARM/LLVM_TARGET_AARCH64 -# Default the rest of the LLVM_TARGETs to the value of MK_LLVM_TARGET_ALL -# which is based on MK_CLANG. +# Default the rest of the LLVM_TARGETs to the value of MK_LLVM_TARGET_ALL. .else __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/LLVM_TARGET_ALL .endif From owner-svn-src-all@freebsd.org Mon Jan 13 19:30:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 572EC1E9DBA; Mon, 13 Jan 2020 19:30:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xNwC1fP6z44w9; Mon, 13 Jan 2020 19:30:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 33EC69862; Mon, 13 Jan 2020 19:30:19 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DJUJpl052869; Mon, 13 Jan 2020 19:30:19 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DJUJeW052868; Mon, 13 Jan 2020 19:30:19 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001131930.00DJUJeW052868@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 13 Jan 2020 19:30:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356697 - stable/12/usr.sbin/mergemaster X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/usr.sbin/mergemaster X-SVN-Commit-Revision: 356697 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 19:30:19 -0000 Author: bdrewery Date: Mon Jan 13 19:30:18 2020 New Revision: 356697 URL: https://svnweb.freebsd.org/changeset/base/356697 Log: MFC r355379,r355381: r355379: Run make in parallel. r355381: Use full path to sysctl(8) since /sbin is not in PATH. Modified: stable/12/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/12/usr.sbin/mergemaster/mergemaster.sh Mon Jan 13 19:22:52 2020 (r356696) +++ stable/12/usr.sbin/mergemaster/mergemaster.sh Mon Jan 13 19:30:18 2020 (r356697) @@ -508,6 +508,7 @@ SOURCEDIR=$(realpath "$SOURCEDIR") # Setup make to use system files from SOURCEDIR MM_MAKE="make ${ARCHSTRING} -m ${SOURCEDIR}/share/mk -DNO_FILEMON" +MM_MAKE="${MM_MAKE} -j$(/sbin/sysctl -n hw.ncpu)" # Check DESTDIR against the mergemaster mtree database to see what # files the user changed from the reference files. From owner-svn-src-all@freebsd.org Mon Jan 13 19:33:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 741071EA035; Mon, 13 Jan 2020 19:33:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xNzq2MK6z45Jg; Mon, 13 Jan 2020 19:33:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BFE49A22; Mon, 13 Jan 2020 19:33:27 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DJXRKS058695; Mon, 13 Jan 2020 19:33:27 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DJXRDM058694; Mon, 13 Jan 2020 19:33:27 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001131933.00DJXRDM058694@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 13 Jan 2020 19:33:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356698 - stable/11/usr.sbin/mergemaster X-SVN-Group: stable-11 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/11/usr.sbin/mergemaster X-SVN-Commit-Revision: 356698 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 19:33:27 -0000 Author: bdrewery Date: Mon Jan 13 19:33:26 2020 New Revision: 356698 URL: https://svnweb.freebsd.org/changeset/base/356698 Log: MFC r355379,r355381: r355379: Run make in parallel. r355381: Use full path to sysctl(8) since /sbin is not in PATH. Modified: stable/11/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/11/usr.sbin/mergemaster/mergemaster.sh Mon Jan 13 19:30:18 2020 (r356697) +++ stable/11/usr.sbin/mergemaster/mergemaster.sh Mon Jan 13 19:33:26 2020 (r356698) @@ -487,6 +487,7 @@ SOURCEDIR=$(realpath "$SOURCEDIR") # Setup make to use system files from SOURCEDIR MM_MAKE="make ${ARCHSTRING} -m ${SOURCEDIR}/share/mk -DNO_FILEMON" +MM_MAKE="${MM_MAKE} -j$(/sbin/sysctl -n hw.ncpu)" # Check DESTDIR against the mergemaster mtree database to see what # files the user changed from the reference files. From owner-svn-src-all@freebsd.org Mon Jan 13 19:34:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 928791EA0DD; Mon, 13 Jan 2020 19:34:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xP0l3N5vz45Qd; Mon, 13 Jan 2020 19:34:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6EE8D9A23; Mon, 13 Jan 2020 19:34:15 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DJYF3T058771; Mon, 13 Jan 2020 19:34:15 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DJYFiX058770; Mon, 13 Jan 2020 19:34:15 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001131934.00DJYFiX058770@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Mon, 13 Jan 2020 19:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356699 - stable/12/share/man/man5 X-SVN-Group: stable-12 X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: stable/12/share/man/man5 X-SVN-Commit-Revision: 356699 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 19:34:15 -0000 Author: bdrewery Date: Mon Jan 13 19:34:15 2020 New Revision: 356699 URL: https://svnweb.freebsd.org/changeset/base/356699 Log: Regen src.conf.5 Modified: stable/12/share/man/man5/src.conf.5 Modified: stable/12/share/man/man5/src.conf.5 ============================================================================== --- stable/12/share/man/man5/src.conf.5 Mon Jan 13 19:33:26 2020 (r356698) +++ stable/12/share/man/man5/src.conf.5 Mon Jan 13 19:34:15 2020 (r356699) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd October 28, 2019 +.Dd January 13, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -368,39 +368,6 @@ When set, it enforces these options: .It .Va WITHOUT_LLVM_COV .El -.Pp -When set, these options are also in effect: -.Pp -.Bl -inset -compact -.It Va WITHOUT_LLVM_TARGET_AARCH64 -(unless -.Va WITH_LLVM_TARGET_AARCH64 -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_ALL -(unless -.Va WITH_LLVM_TARGET_ALL -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_ARM -(unless -.Va WITH_LLVM_TARGET_ARM -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_MIPS -(unless -.Va WITH_LLVM_TARGET_MIPS -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_POWERPC -(unless -.Va WITH_LLVM_TARGET_POWERPC -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_SPARC -(unless -.Va WITH_LLVM_TARGET_SPARC -is set explicitly) -.It Va WITHOUT_LLVM_TARGET_X86 -(unless -.Va WITH_LLVM_TARGET_X86 -is set explicitly) -.El .It Va WITH_CLANG Set to build the Clang C/C++ compiler during the normal phase of the build. .Pp @@ -1108,7 +1075,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. +arm/arm and arm/armv6. .It Va WITH_LLVM_TARGET_AARCH64 Set to build LLVM target support for AArch64. The @@ -1116,13 +1083,10 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITHOUT_LLVM_TARGET_ALL Set to only build the required LLVM target support. This option is preferred to specific target support options. -.Pp -This is a default setting on -riscv/riscv64 and sparc64/sparc64. When set, these options are also in effect: .Pp .Bl -inset -compact @@ -1147,29 +1111,11 @@ is set explicitly) .Va WITH_LLVM_TARGET_SPARC is set explicitly) .El -.It Va WITH_LLVM_TARGET_ALL -Set to build support for all LLVM targets. -This option is always applied to the bootstrap compiler for buildworld when -LLVM is used. -.Pp -This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. .It Va WITHOUT_LLVM_TARGET_ARM Set to not build LLVM target support for ARM. The .Va LLVM_TARGET_ALL option should be used rather than this in most cases. -.Pp -This is a default setting on -riscv/riscv64 and sparc64/sparc64. -.It Va WITH_LLVM_TARGET_ARM -Set to build LLVM target support for ARM. -The -.Va LLVM_TARGET_ALL -option should be used rather than this in most cases. -.Pp -This is a default setting on -amd64/amd64, arm/arm, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. .It Va WITH_LLVM_TARGET_BPF Set to build LLVM target support for BPF. The @@ -1182,7 +1128,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. +arm/arm and arm/armv6. .It Va WITH_LLVM_TARGET_MIPS Set to build LLVM target support for MIPS. The @@ -1190,7 +1136,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITHOUT_LLVM_TARGET_POWERPC Set to not build LLVM target support for PowerPC. The @@ -1198,7 +1144,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. +arm/arm and arm/armv6. .It Va WITH_LLVM_TARGET_POWERPC Set to build LLVM target support for PowerPC. The @@ -1206,7 +1152,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LLVM_TARGET_RISCV Set to build LLVM target support for RISC-V. The @@ -1219,7 +1165,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. +arm/arm and arm/armv6. .It Va WITH_LLVM_TARGET_SPARC Set to build LLVM target support for SPARC. The @@ -1227,7 +1173,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITHOUT_LLVM_TARGET_X86 Set to not build LLVM target support for X86. The @@ -1235,7 +1181,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -arm/arm, arm/armv6, riscv/riscv64 and sparc64/sparc64. +arm/arm and arm/armv6. .It Va WITH_LLVM_TARGET_X86 Set to build LLVM target support for X86. The @@ -1243,7 +1189,7 @@ The option should be used rather than this in most cases. .Pp This is a default setting on -amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and powerpc/powerpcspe. +amd64/amd64, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, powerpc/powerpcspe, riscv/riscv64 and sparc64/sparc64. .It Va WITH_LOADER_EFI_SECUREBOOT Enable building .Xr loader 8 From owner-svn-src-all@freebsd.org Mon Jan 13 19:54:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 34FB71EAAE3 for ; Mon, 13 Jan 2020 19:54:43 +0000 (UTC) (envelope-from tsoome@me.com) Received: from pv50p00im-ztdg10021901.me.com (pv50p00im-ztdg10021901.me.com [17.58.6.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xPSK51P0z46fF for ; Mon, 13 Jan 2020 19:54:41 +0000 (UTC) (envelope-from tsoome@me.com) Received: from nazgul.lan (148-52-235-80.sta.estpak.ee [80.235.52.148]) by pv50p00im-ztdg10021901.me.com (Postfix) with ESMTPSA id D33458804C6; Mon, 13 Jan 2020 19:54:38 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Subject: Re: svn commit: r356693 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib From: Toomas Soome In-Reply-To: <15236c9adbb7ec8c90375e283f7d1d5d5eafe6be.camel@freebsd.org> Date: Mon, 13 Jan 2020 21:54:29 +0200 Cc: Toomas Soome , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: 7bit Message-Id: References: <202001131822.00DIMtrW016338@repo.freebsd.org> <5a3e388ed5c91a6d1f88ecc91c08dc103d0369d1.camel@freebsd.org> <4437F251-43CC-4DED-B449-00A9516C75E2@me.com> <15236c9adbb7ec8c90375e283f7d1d5d5eafe6be.camel@freebsd.org> To: Ian Lepore X-Mailer: Apple Mail (2.3608.40.2.2.4) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2020-01-13_06:, , signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 mlxscore=0 mlxlogscore=699 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1908290000 definitions=main-2001130162 X-Rspamd-Queue-Id: 47xPSK51P0z46fF X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.60 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:17.58.0.0/16]; FREEMAIL_FROM(0.00)[me.com]; MV_CASE(0.50)[]; RCPT_COUNT_FIVE(0.00)[5]; DKIM_TRACE(0.00)[me.com:+]; DMARC_POLICY_ALLOW(-0.50)[me.com,quarantine]; RECEIVED_SPAMHAUS_PBL(0.00)[148.52.235.80.khpj7ygk5idzvmvt5x4ziurxhy.zen.dq.spamhaus.net : 127.0.0.10]; RCVD_IN_DNSWL_LOW(-0.10)[55.6.58.17.list.dnswl.org : 127.0.5.1]; MIME_TRACE(0.00)[0:+]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:714, ipnet:17.58.0.0/20, country:US]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[me.com]; R_DKIM_ALLOW(-0.20)[me.com:s=1a1hai]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.00)[ip: (-7.06), ipnet: 17.58.0.0/20(-1.92), asn: 714(-2.24), country: US(-0.05)]; IP_SCORE_FREEMAIL(0.00)[]; DWL_DNSWL_LOW(-1.00)[me.com.dwl.dnswl.org : 127.0.5.1]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 19:54:43 -0000 > On 13. Jan 2020, at 20:45, Ian Lepore wrote: > > On Mon, 2020-01-13 at 20:43 +0200, Toomas Soome wrote: >>> On 13. Jan 2020, at 20:31, Ian Lepore wrote: >>> >>> On Mon, 2020-01-13 at 18:22 +0000, Toomas Soome wrote: >>>> Author: tsoome >>>> Date: Mon Jan 13 18:22:54 2020 >>>> New Revision: 356693 >>>> URL: https://svnweb.freebsd.org/changeset/base/356693 >>>> >>>> Log: >>>> loader: allocate properly aligned buffer for network packet >>>> >>>> Use memalign(4, size) to ensure we have properly aligned buffer. >>>> >>>> MFC after: 2 weeks >>>> >>>> Modified: >>>> head/stand/efi/libefi/efinet.c >>>> head/stand/i386/libi386/pxe.c >>>> head/stand/libofw/ofw_net.c >>>> head/stand/uboot/lib/net.c >>>> >>> >>> The malloc implementation in libstand already g'tees minimum >>> alignment >>> of 16 bytes on most arches, 64 bytes on arches that use u-boot (see >>> libsa/zalloc_defs.h). So how does this change anything? >>> >> >> Hi! >> >> Well, given the amount of knobs etc, it does not hurt to be explicit, >> does it? >> >> rgds, >> toomas > > I think it does hurt, because now it misleads you into thinking it's 4- > byte aligned when it's actually 16 or 64. (That's what made me reply > at all, my first gut reaction to reading the commit message was "but 4 > is not at all the right alignment on many platforms"). > hm, I think you are right. time for backout. thanks for bringing this into my attention, toomas From owner-svn-src-all@freebsd.org Mon Jan 13 20:02:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A1AC11EAFB9; Mon, 13 Jan 2020 20:02:28 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xPdJ1zQ9z47DM; Mon, 13 Jan 2020 20:02:28 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3EFC99FA8; Mon, 13 Jan 2020 20:02:28 +0000 (UTC) (envelope-from tsoome@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DK2SLF075520; Mon, 13 Jan 2020 20:02:28 GMT (envelope-from tsoome@FreeBSD.org) Received: (from tsoome@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DK2RVD075517; Mon, 13 Jan 2020 20:02:27 GMT (envelope-from tsoome@FreeBSD.org) Message-Id: <202001132002.00DK2RVD075517@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tsoome set sender to tsoome@FreeBSD.org using -f From: Toomas Soome Date: Mon, 13 Jan 2020 20:02:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356700 - in head/stand: efi/libefi i386/libi386 libofw uboot/lib X-SVN-Group: head X-SVN-Commit-Author: tsoome X-SVN-Commit-Paths: in head/stand: efi/libefi i386/libi386 libofw uboot/lib X-SVN-Commit-Revision: 356700 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 20:02:28 -0000 Author: tsoome Date: Mon Jan 13 20:02:27 2020 New Revision: 356700 URL: https://svnweb.freebsd.org/changeset/base/356700 Log: Backout 356693. The libsa malloc does provide necessary alignment and memalign by 4 will reduce alignment for some platforms. Thanks for Ian for pointing this out. Modified: head/stand/efi/libefi/efinet.c head/stand/i386/libi386/pxe.c head/stand/libofw/ofw_net.c head/stand/uboot/lib/net.c Modified: head/stand/efi/libefi/efinet.c ============================================================================== --- head/stand/efi/libefi/efinet.c Mon Jan 13 19:34:15 2020 (r356699) +++ head/stand/efi/libefi/efinet.c Mon Jan 13 20:02:27 2020 (r356700) @@ -178,7 +178,7 @@ efinet_get(struct iodesc *desc, void **pkt, time_t tim return (ret); bufsz = net->Mode->MaxPacketSize + ETHER_HDR_LEN + ETHER_CRC_LEN; - buf = memalign(4, bufsz + ETHER_ALIGN); + buf = malloc(bufsz + ETHER_ALIGN); if (buf == NULL) return (ret); ptr = buf + ETHER_ALIGN; Modified: head/stand/i386/libi386/pxe.c ============================================================================== --- head/stand/i386/libi386/pxe.c Mon Jan 13 19:34:15 2020 (r356699) +++ head/stand/i386/libi386/pxe.c Mon Jan 13 20:02:27 2020 (r356700) @@ -484,7 +484,7 @@ pxe_netif_receive(void **pkt) } size = isr->FrameLength; - buf = memalign(4, size + ETHER_ALIGN); + buf = malloc(size + ETHER_ALIGN); if (buf == NULL) { bio_free(isr, sizeof(*isr)); return (-1); Modified: head/stand/libofw/ofw_net.c ============================================================================== --- head/stand/libofw/ofw_net.c Mon Jan 13 19:34:15 2020 (r356699) +++ head/stand/libofw/ofw_net.c Mon Jan 13 20:02:27 2020 (r356700) @@ -142,7 +142,7 @@ ofwn_get(struct iodesc *desc, void **pkt, time_t timeo * a small shortcut here. */ len = ETHER_MAX_LEN; - buf = memalign(4, len + ETHER_ALIGN); + buf = malloc(len + ETHER_ALIGN); if (buf == NULL) return (-1); ptr = buf + ETHER_ALIGN; Modified: head/stand/uboot/lib/net.c ============================================================================== --- head/stand/uboot/lib/net.c Mon Jan 13 19:34:15 2020 (r356699) +++ head/stand/uboot/lib/net.c Mon Jan 13 20:02:27 2020 (r356700) @@ -302,7 +302,7 @@ net_get(struct iodesc *desc, void **pkt, time_t timeou #endif if (rlen > 0) { - buf = memalign(4, rlen + ETHER_ALIGN); + buf = malloc(rlen + ETHER_ALIGN); if (buf == NULL) return (-1); memcpy(buf + ETHER_ALIGN, sc->sc_rxbuf, rlen); From owner-svn-src-all@freebsd.org Mon Jan 13 20:31:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 499571EBB13; Mon, 13 Jan 2020 20:31:11 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xQGQ6yVwz48dW; Mon, 13 Jan 2020 20:31:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E95DBA502; Mon, 13 Jan 2020 20:31:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DKVAPr090706; Mon, 13 Jan 2020 20:31:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DKVAkH090703; Mon, 13 Jan 2020 20:31:10 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001132031.00DKVAkH090703@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Mon, 13 Jan 2020 20:31:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356701 - head/contrib/llvm-project/llvm/lib/Target/Mips X-SVN-Group: head X-SVN-Commit-Author: dim X-SVN-Commit-Paths: head/contrib/llvm-project/llvm/lib/Target/Mips X-SVN-Commit-Revision: 356701 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 20:31:11 -0000 Author: dim Date: Mon Jan 13 20:31:10 2020 New Revision: 356701 URL: https://svnweb.freebsd.org/changeset/base/356701 Log: Merge commit f46ba4f07 from llvm git (by Simon Atanasyan): [mips] Use less registers to load address of TargetExternalSymbol There is no pattern matched `add hi, (MipsLo texternalsym)`. As a result, loading an address of 32-bit symbol requires two registers and one more additional instruction: ``` addiu $1, $zero, %lo(foo) lui $2, %hi(foo) addu $25, $2, $1 ``` This patch adds the missed pattern and enables generation more effective set of instructions: ``` lui $1, %hi(foo) addiu $25, $1, %lo(foo) ``` Differential Revision: https://reviews.llvm.org/D66771 llvm-svn: 370196 Merge commit 59bb3609f from llvm git (by Simon Atanasyan): [mips] Fix 64-bit address loading in case of applying 32-bit mask to the result If result of 64-bit address loading combines with 32-bit mask, LLVM tries to optimize the code and remove "redundant" loading of upper 32-bits of the address. It leads to incorrect code on MIPS64 targets. MIPS backend creates the following chain of commands to load 64-bit address in the `MipsTargetLowering::getAddrNonPICSym64` method: ``` (add (shl (add (shl (add %highest(sym), %higher(sym)), 16), %hi(sym)), 16), %lo(%sym)) ``` If the mask presents, LLVM decides to optimize the chain of commands. It really does not make sense to load upper 32-bits because the 0x0fffffff mask anyway clears them. After removing redundant commands we get this chain: ``` (add (shl (%hi(sym), 16), %lo(%sym)) ``` There is no patterns matched `(MipsHi (i64 symbol))`. Due a bug in `SYM_32` predicate definition, backend incorrectly selects a pattern for a 32-bit symbols and uses the `lui` instruction for loading `%hi(sym)`. As a result we get incorrect set of instructions with unnecessary 16-bit left shifting: ``` lui at,0x0 R_MIPS_HI16 foo dsll at,at,0x10 daddiu at,at,0 R_MIPS_LO16 foo ``` This patch resolves two problems: - Fix `SYM_32/SYM_64` predicates to prevent selection of patterns dedicated to 32-bit symbols in case of using N64 ABI. - Add missed patterns for 64-bit symbols for `%hi/%lo`. Fix PR42736. Differential Revision: https://reviews.llvm.org/D66228 llvm-svn: 370268 These two commits fix a miscompilation of the kernel for mips64, and should allow clang to be used as the default compiler for mips64. Requested by: arichards MFC after: 3 days Modified: head/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td head/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td head/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Modified: head/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td ============================================================================== --- head/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td Mon Jan 13 20:02:27 2020 (r356700) +++ head/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td Mon Jan 13 20:31:10 2020 (r356701) @@ -25,6 +25,8 @@ class PredicateControl { list GPRPredicates = []; // Predicates for the PTR size such as IsPTR64bit list PTRPredicates = []; + // Predicates for a symbol's size such as hasSym32. + list SYMPredicates = []; // Predicates for the FGR size and layout such as IsFP64bit list FGRPredicates = []; // Predicates for the instruction group membership such as ISA's. @@ -38,6 +40,7 @@ class PredicateControl { list Predicates = !listconcat(EncodingPredicates, GPRPredicates, PTRPredicates, + SYMPredicates, FGRPredicates, InsnPredicates, HardFloatPredicate, Modified: head/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td ============================================================================== --- head/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td Mon Jan 13 20:02:27 2020 (r356700) +++ head/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td Mon Jan 13 20:31:10 2020 (r356701) @@ -700,7 +700,21 @@ let AdditionalPredicates = [NotInMicroMips] in { (DADDiu GPR64:$hi, tjumptable:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHigher (i64 tconstpool:$lo))), (DADDiu GPR64:$hi, tconstpool:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHigher (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tglobaladdr:$in)), + (DADDiu ZERO_64, tglobaladdr:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tblockaddress:$in)), + (DADDiu ZERO_64, tblockaddress:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tjumptable:$in)), + (DADDiu ZERO_64, tjumptable:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tconstpool:$in)), + (DADDiu ZERO_64, tconstpool:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 texternalsym:$in)), + (DADDiu ZERO_64, texternalsym:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tglobaladdr:$lo))), (DADDiu GPR64:$hi, tglobaladdr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tblockaddress:$lo))), @@ -710,7 +724,24 @@ let AdditionalPredicates = [NotInMicroMips] in { (DADDiu GPR64:$hi, tjumptable:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tconstpool:$lo))), (DADDiu GPR64:$hi, tconstpool:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHi (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tglobaladdr:$in)), + (DADDiu ZERO_64, tglobaladdr:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tblockaddress:$in)), + (DADDiu ZERO_64, tblockaddress:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tjumptable:$in)), + (DADDiu ZERO_64, tjumptable:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tconstpool:$in)), + (DADDiu ZERO_64, tconstpool:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tglobaltlsaddr:$in)), + (DADDiu ZERO_64, tglobaltlsaddr:$in)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 texternalsym:$in)), + (DADDiu ZERO_64, texternalsym:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tglobaladdr:$lo))), (DADDiu GPR64:$hi, tglobaladdr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tblockaddress:$lo))), @@ -723,6 +754,9 @@ let AdditionalPredicates = [NotInMicroMips] in { def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tglobaltlsaddr:$lo))), (DADDiu GPR64:$hi, tglobaltlsaddr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsLo (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; } // gp_rel relocs Modified: head/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td ============================================================================== --- head/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Mon Jan 13 20:02:27 2020 (r356700) +++ head/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Mon Jan 13 20:31:10 2020 (r356701) @@ -215,9 +215,9 @@ def HasCnMipsP : Predicate<"Subtarget->hasCnMipsP AssemblerPredicate<"FeatureCnMipsP">; def NotCnMipsP : Predicate<"!Subtarget->hasCnMipsP()">, AssemblerPredicate<"!FeatureCnMipsP">; -def IsSym32 : Predicate<"Subtarget->HasSym32()">, +def IsSym32 : Predicate<"Subtarget->hasSym32()">, AssemblerPredicate<"FeatureSym32">; -def IsSym64 : Predicate<"!Subtarget->HasSym32()">, +def IsSym64 : Predicate<"!Subtarget->hasSym32()">, AssemblerPredicate<"!FeatureSym32">; def IsN64 : Predicate<"Subtarget->isABI_N64()">; def IsNotN64 : Predicate<"!Subtarget->isABI_N64()">; @@ -3173,6 +3173,8 @@ multiclass MipsHiLoRelocs; def : MipsPat<(add GPROpnd:$hi, (MipsLo tglobaltlsaddr:$lo)), (Addiu GPROpnd:$hi, tglobaltlsaddr:$lo)>; + def : MipsPat<(add GPROpnd:$hi, (MipsLo texternalsym:$lo)), + (Addiu GPROpnd:$hi, texternalsym:$lo)>; } // wrapper_pic From owner-svn-src-all@freebsd.org Mon Jan 13 21:12:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D8FB1ED102; Mon, 13 Jan 2020 21:12:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xR9l3HyJz4BxJ; Mon, 13 Jan 2020 21:12:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C5E8ACCA; Mon, 13 Jan 2020 21:12:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DLCBdt015121; Mon, 13 Jan 2020 21:12:11 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DLCBPX015120; Mon, 13 Jan 2020 21:12:11 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001132112.00DLCBPX015120@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Mon, 13 Jan 2020 21:12:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356702 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356702 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 21:12:11 -0000 Author: glebius Date: Mon Jan 13 21:12:10 2020 New Revision: 356702 URL: https://svnweb.freebsd.org/changeset/base/356702 Log: Fix yet another regression from r354484. Error code from cr_cansee() aliases with hard error from other operations. Reported by: flo Modified: head/sys/netinet/tcp_subr.c Modified: head/sys/netinet/tcp_subr.c ============================================================================== --- head/sys/netinet/tcp_subr.c Mon Jan 13 20:31:10 2020 (r356701) +++ head/sys/netinet/tcp_subr.c Mon Jan 13 21:12:10 2020 (r356702) @@ -2263,6 +2263,8 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) inp = CK_LIST_NEXT(inp, inp_list)) { INP_RLOCK(inp); if (inp->inp_gencnt <= xig.xig_gen) { + int crerr; + /* * XXX: This use of cr_cansee(), introduced with * TCP state changes, is not quite right, but for @@ -2270,13 +2272,13 @@ tcp_pcblist(SYSCTL_HANDLER_ARGS) */ if (inp->inp_flags & INP_TIMEWAIT) { if (intotw(inp) != NULL) - error = cr_cansee(req->td->td_ucred, + crerr = cr_cansee(req->td->td_ucred, intotw(inp)->tw_cred); else - error = EINVAL; /* Skip this inp. */ + crerr = EINVAL; /* Skip this inp. */ } else - error = cr_canseeinpcb(req->td->td_ucred, inp); - if (error == 0) { + crerr = cr_canseeinpcb(req->td->td_ucred, inp); + if (crerr == 0) { struct xtcpcb xt; tcp_inptoxtp(inp, &xt); From owner-svn-src-all@freebsd.org Mon Jan 13 21:26:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0AA461ED606; Mon, 13 Jan 2020 21:26:18 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xRV16YRdz4CSs; Mon, 13 Jan 2020 21:26:17 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DC36BAEEA; Mon, 13 Jan 2020 21:26:17 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DLQHlG024462; Mon, 13 Jan 2020 21:26:17 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DLQHKa024461; Mon, 13 Jan 2020 21:26:17 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202001132126.00DLQHKa024461@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Mon, 13 Jan 2020 21:26:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356703 - head/sys/dev/vmware/vmxnet3 X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: head/sys/dev/vmware/vmxnet3 X-SVN-Commit-Revision: 356703 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 21:26:18 -0000 Author: vmaffione Date: Mon Jan 13 21:26:17 2020 New Revision: 356703 URL: https://svnweb.freebsd.org/changeset/base/356703 Log: vmx: fix initialization of TSO related descriptor fields Fix a mistake introduced by r343291, which ported the vmx(4) driver to iflib. In case of TSO, the hlen field of the (first) tx descriptor must be initialized to the cumulative length of Ethernet, IP and TCP headers. The length of the TCP header was missing. PR: 236999 Reported by: pkelsey Reviewed by: avg MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D22967 Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c Modified: head/sys/dev/vmware/vmxnet3/if_vmx.c ============================================================================== --- head/sys/dev/vmware/vmxnet3/if_vmx.c Mon Jan 13 21:12:10 2020 (r356702) +++ head/sys/dev/vmware/vmxnet3/if_vmx.c Mon Jan 13 21:26:17 2020 (r356703) @@ -1320,7 +1320,7 @@ vmxnet3_isc_txd_encap(void *vsc, if_pkt_info_t pi) hdrlen = pi->ipi_ehdrlen + pi->ipi_ip_hlen; if (pi->ipi_csum_flags & CSUM_TSO) { sop->offload_mode = VMXNET3_OM_TSO; - sop->hlen = hdrlen; + sop->hlen = hdrlen + pi->ipi_tcp_hlen; sop->offload_pos = pi->ipi_tso_segsz; } else if (pi->ipi_csum_flags & (VMXNET3_CSUM_OFFLOAD | VMXNET3_CSUM_OFFLOAD_IPV6)) { From owner-svn-src-all@freebsd.org Mon Jan 13 21:47:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8D41B1EE303; Mon, 13 Jan 2020 21:47:24 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xRyN2vQDz4Dbc; Mon, 13 Jan 2020 21:47:24 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5A488B2A6; Mon, 13 Jan 2020 21:47:24 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DLlOTv037073; Mon, 13 Jan 2020 21:47:24 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DLlN2p037069; Mon, 13 Jan 2020 21:47:23 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202001132147.00DLlN2p037069@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Mon, 13 Jan 2020 21:47:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356704 - in head/sys: dev/netmap net X-SVN-Group: head X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: in head/sys: dev/netmap net X-SVN-Commit-Revision: 356704 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 21:47:24 -0000 Author: vmaffione Date: Mon Jan 13 21:47:23 2020 New Revision: 356704 URL: https://svnweb.freebsd.org/changeset/base/356704 Log: netmap: disable passthrough with no hypervisor support The netmap passthrough subsystem requires proper support in the hypervisor. In particular, two PCI device ids (from the Red Hat PCI vendor id 0x1b36) need to be assigned to the two netmap virtual devices. We then disable these devices until the ids have not been assigned, in order to avoid conflicts with other virtual devices emulated by upstream QEMU. PR: 241774 MFC after: 3 days Modified: head/sys/dev/netmap/if_ptnet.c head/sys/dev/netmap/netmap_kern.h head/sys/net/netmap_virt.h Modified: head/sys/dev/netmap/if_ptnet.c ============================================================================== --- head/sys/dev/netmap/if_ptnet.c Mon Jan 13 21:26:17 2020 (r356703) +++ head/sys/dev/netmap/if_ptnet.c Mon Jan 13 21:47:23 2020 (r356704) @@ -87,6 +87,8 @@ #include #include +#ifdef WITH_PTNETMAP + #ifndef INET #error "INET not defined, cannot support offloadings" #endif @@ -1993,3 +1995,4 @@ ptnet_poll(if_t ifp, enum poll_cmd cmd, int budget) return count; } #endif /* DEVICE_POLLING */ +#endif /* WITH_PTNETMAP */ Modified: head/sys/dev/netmap/netmap_kern.h ============================================================================== --- head/sys/dev/netmap/netmap_kern.h Mon Jan 13 21:26:17 2020 (r356703) +++ head/sys/dev/netmap/netmap_kern.h Mon Jan 13 21:47:23 2020 (r356704) @@ -76,7 +76,6 @@ #define WITH_PIPES #define WITH_MONITOR #define WITH_GENERIC -#define WITH_PTNETMAP /* ptnetmap guest support */ #define WITH_EXTMEM #define WITH_NMNULL #endif Modified: head/sys/net/netmap_virt.h ============================================================================== --- head/sys/net/netmap_virt.h Mon Jan 13 21:26:17 2020 (r356703) +++ head/sys/net/netmap_virt.h Mon Jan 13 21:47:23 2020 (r356704) @@ -44,8 +44,8 @@ /* PCI identifiers and PCI BARs for ptnetmap-memdev and ptnet. */ #define PTNETMAP_MEMDEV_NAME "ptnetmap-memdev" #define PTNETMAP_PCI_VENDOR_ID 0x1b36 /* QEMU virtual devices */ -#define PTNETMAP_PCI_DEVICE_ID 0x000c /* memory device */ -#define PTNETMAP_PCI_NETIF_ID 0x000d /* ptnet network interface */ +#define PTNETMAP_PCI_DEVICE_ID 0xcccc /* memory device */ +#define PTNETMAP_PCI_NETIF_ID 0xcccd /* ptnet network interface */ #define PTNETMAP_IO_PCI_BAR 0 #define PTNETMAP_MEM_PCI_BAR 1 #define PTNETMAP_MSIX_PCI_BAR 2 From owner-svn-src-all@freebsd.org Mon Jan 13 21:49:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEED41EE3FC; Mon, 13 Jan 2020 21:49:27 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xS0l5cwGz4Dkh; Mon, 13 Jan 2020 21:49:27 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BC5A9B2AE; Mon, 13 Jan 2020 21:49:27 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DLnRAU037369; Mon, 13 Jan 2020 21:49:27 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DLnR6q037368; Mon, 13 Jan 2020 21:49:27 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202001132149.00DLnR6q037368@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Mon, 13 Jan 2020 21:49:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356705 - head/sys/fs/nfs X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/sys/fs/nfs X-SVN-Commit-Revision: 356705 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 21:49:27 -0000 Author: vangyzen Date: Mon Jan 13 21:49:27 2020 New Revision: 356705 URL: https://svnweb.freebsd.org/changeset/base/356705 Log: Add missing comma in nfsv4_errstr Reported by: Coverity CID: 1412243 Sponsored by: Dell EMC Isilon Modified: head/sys/fs/nfs/nfsv4_errstr.h Modified: head/sys/fs/nfs/nfsv4_errstr.h ============================================================================== --- head/sys/fs/nfs/nfsv4_errstr.h Mon Jan 13 21:47:23 2020 (r356704) +++ head/sys/fs/nfs/nfsv4_errstr.h Mon Jan 13 21:49:27 2020 (r356705) @@ -84,7 +84,7 @@ static const char *nfsv4_errstr[NFSERR_XATTR2BIG - 100 "file locking deadlock", "open file blocks op", "lockowner state revoked", - "callback path down" + "callback path down", "bad IO mode", "bad layout", "bad session digest", From owner-svn-src-all@freebsd.org Mon Jan 13 22:01:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6B4E41EE97D; Mon, 13 Jan 2020 22:01:38 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xSGp2GL3z4FM3; Mon, 13 Jan 2020 22:01:38 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 49119B609; Mon, 13 Jan 2020 22:01:38 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DM1cQ8045818; Mon, 13 Jan 2020 22:01:38 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DM1cvd045817; Mon, 13 Jan 2020 22:01:38 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202001132201.00DM1cvd045817@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Mon, 13 Jan 2020 22:01:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356706 - head/sbin/savecore X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/sbin/savecore X-SVN-Commit-Revision: 356706 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 22:01:38 -0000 Author: vangyzen Date: Mon Jan 13 22:01:37 2020 New Revision: 356706 URL: https://svnweb.freebsd.org/changeset/base/356706 Log: savecore: include time zone in info.N file This helps with event correlation when machines are distributed across multiple time zones. Format the time with relaxed ISO 8601 for all the usual reasons. MFC after: 2 weeks Sponsored by: Dell EMC Isilon Modified: head/sbin/savecore/savecore.c Modified: head/sbin/savecore/savecore.c ============================================================================== --- head/sbin/savecore/savecore.c Mon Jan 13 21:49:27 2020 (r356705) +++ head/sbin/savecore/savecore.c Mon Jan 13 22:01:37 2020 (r356706) @@ -157,6 +157,8 @@ printheader(xo_handle_t *xo, const struct kerneldumphe { uint64_t dumplen; time_t t; + struct tm tm; + char time_str[64]; const char *stat_str; const char *comp_str; @@ -189,7 +191,10 @@ printheader(xo_handle_t *xo, const struct kerneldumphe } xo_emit_h(xo, "{P: }{Lwc:Compression}{:compression/%s}\n", comp_str); t = dtoh64(h->dumptime); - xo_emit_h(xo, "{P: }{Lwc:Dumptime}{:dumptime/%s}", ctime(&t)); + localtime_r(&t, &tm); + if (strftime(time_str, sizeof(time_str), "%F %T %z", &tm) == 0) + time_str[0] = '\0'; + xo_emit_h(xo, "{P: }{Lwc:Dumptime}{:dumptime/%s}\n", time_str); xo_emit_h(xo, "{P: }{Lwc:Hostname}{:hostname/%s}\n", h->hostname); xo_emit_h(xo, "{P: }{Lwc:Magic}{:magic/%s}\n", h->magic); xo_emit_h(xo, "{P: }{Lwc:Version String}{:version_string/%s}", From owner-svn-src-all@freebsd.org Mon Jan 13 22:06:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F22351EEAC6; Mon, 13 Jan 2020 22:06:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xSN867jKz4FhG; Mon, 13 Jan 2020 22:06:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CDC73B65A; Mon, 13 Jan 2020 22:06:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DM6G0k049361; Mon, 13 Jan 2020 22:06:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DM6GKh049360; Mon, 13 Jan 2020 22:06:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001132206.00DM6GKh049360@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Mon, 13 Jan 2020 22:06:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356707 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys X-SVN-Commit-Revision: 356707 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 22:06:17 -0000 Author: mav Date: Mon Jan 13 22:06:16 2020 New Revision: 356707 URL: https://svnweb.freebsd.org/changeset/base/356707 Log: Map ECKSUM and EFRAGS from ZFS onto real errnos. Make it less confusing when, for example, stat sets errno to 122 because a checksum failed in ZFS: Before: getfacl: /foo/bar: stat() failed: Unknown error: 122 After: getfacl: /foo/bar: stat() failed: Integrity check failed Submitted by: Ryan Moeller Reviewed by: mckusick, mav MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D22973 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Mon Jan 13 22:01:37 2020 (r356706) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Mon Jan 13 22:06:16 2020 (r356707) @@ -233,12 +233,11 @@ enum zio_wait_type { }; /* - * We'll take the number 122 and 123 to indicate checksum errors and - * fragmentation. Those doesn't collide with any errno values as they - * are greater than ELAST. + * These are bespoke errnos used in ZFS. We map them to their closest FreeBSD + * equivalents. This gives us more useful error messages from strerror(3). */ -#define ECKSUM 122 -#define EFRAGS 123 +#define ECKSUM EINTEGRITY +#define EFRAGS ENOSPC typedef void zio_done_func_t(zio_t *zio); From owner-svn-src-all@freebsd.org Mon Jan 13 22:13:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C8D3B1EF061; Mon, 13 Jan 2020 22:13:59 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xSY33g7wz4GBr; Mon, 13 Jan 2020 22:13:58 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 00DMDnST081468 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Mon, 13 Jan 2020 14:13:49 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 00DMDnJa081467; Mon, 13 Jan 2020 14:13:49 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Mon, 13 Jan 2020 14:13:49 -0800 From: Gleb Smirnoff To: Eric van Gyzen Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356706 - head/sbin/savecore Message-ID: <20200113221349.GP39529@FreeBSD.org> References: <202001132201.00DM1cvd045817@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001132201.00DM1cvd045817@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47xSY33g7wz4GBr X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.98 / 15.00]; NEURAL_HAM_MEDIUM(-0.98)[-0.981,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 22:13:59 -0000 Eric, looks like this changes content format of info.X, whatever libxo output you choose, thus this change at minimum needs to be documented in UPDATING and in release notes for next release. On Mon, Jan 13, 2020 at 10:01:38PM +0000, Eric van Gyzen wrote: E> Author: vangyzen E> Date: Mon Jan 13 22:01:37 2020 E> New Revision: 356706 E> URL: https://svnweb.freebsd.org/changeset/base/356706 E> E> Log: E> savecore: include time zone in info.N file E> E> This helps with event correlation when machines are distributed E> across multiple time zones. E> E> Format the time with relaxed ISO 8601 for all the usual reasons. E> E> MFC after: 2 weeks E> Sponsored by: Dell EMC Isilon E> E> Modified: E> head/sbin/savecore/savecore.c E> E> Modified: head/sbin/savecore/savecore.c E> ============================================================================== E> --- head/sbin/savecore/savecore.c Mon Jan 13 21:49:27 2020 (r356705) E> +++ head/sbin/savecore/savecore.c Mon Jan 13 22:01:37 2020 (r356706) E> @@ -157,6 +157,8 @@ printheader(xo_handle_t *xo, const struct kerneldumphe E> { E> uint64_t dumplen; E> time_t t; E> + struct tm tm; E> + char time_str[64]; E> const char *stat_str; E> const char *comp_str; E> E> @@ -189,7 +191,10 @@ printheader(xo_handle_t *xo, const struct kerneldumphe E> } E> xo_emit_h(xo, "{P: }{Lwc:Compression}{:compression/%s}\n", comp_str); E> t = dtoh64(h->dumptime); E> - xo_emit_h(xo, "{P: }{Lwc:Dumptime}{:dumptime/%s}", ctime(&t)); E> + localtime_r(&t, &tm); E> + if (strftime(time_str, sizeof(time_str), "%F %T %z", &tm) == 0) E> + time_str[0] = '\0'; E> + xo_emit_h(xo, "{P: }{Lwc:Dumptime}{:dumptime/%s}\n", time_str); E> xo_emit_h(xo, "{P: }{Lwc:Hostname}{:hostname/%s}\n", h->hostname); E> xo_emit_h(xo, "{P: }{Lwc:Magic}{:magic/%s}\n", h->magic); E> xo_emit_h(xo, "{P: }{Lwc:Version String}{:version_string/%s}", E> _______________________________________________ E> svn-src-all@freebsd.org mailing list E> https://lists.freebsd.org/mailman/listinfo/svn-src-all E> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Mon Jan 13 22:33:49 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 282C41EF7B8; Mon, 13 Jan 2020 22:33:49 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xSzx0HLMz4Gyb; Mon, 13 Jan 2020 22:33:49 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04F54BD65; Mon, 13 Jan 2020 22:33:49 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DMXmLO067073; Mon, 13 Jan 2020 22:33:48 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DMXmMD067072; Mon, 13 Jan 2020 22:33:48 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202001132233.00DMXmMD067072@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Mon, 13 Jan 2020 22:33:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356708 - head/usr.sbin/fstyp X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/usr.sbin/fstyp X-SVN-Commit-Revision: 356708 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 22:33:49 -0000 Author: vangyzen Date: Mon Jan 13 22:33:48 2020 New Revision: 356708 URL: https://svnweb.freebsd.org/changeset/base/356708 Log: fstyp hammer: use strlcpy Use strlcpy to guarantee NUL termination. Due to this, there is no need for strncmp; simply use strcmp. Reported by: Coverity CID: 1412242 MFC after: 2 weeks Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23159 Modified: head/usr.sbin/fstyp/hammer.c Modified: head/usr.sbin/fstyp/hammer.c ============================================================================== --- head/usr.sbin/fstyp/hammer.c Mon Jan 13 22:06:16 2020 (r356707) +++ head/usr.sbin/fstyp/hammer.c Mon Jan 13 22:33:48 2020 (r356708) @@ -76,7 +76,7 @@ __test_ondisk(const hammer_volume_ondisk_t ondisk) assert(count != 0); memcpy(&fsid, &ondisk->vol_fsid, sizeof(fsid)); memcpy(&fstype, &ondisk->vol_fstype, sizeof(fstype)); - strncpy(label, ondisk->vol_label, sizeof(label)); + strlcpy(label, ondisk->vol_label, sizeof(label)); } else { if (ondisk->vol_count != count) return (5); @@ -84,7 +84,7 @@ __test_ondisk(const hammer_volume_ondisk_t ondisk) return (6); if (memcmp(&ondisk->vol_fstype, &fstype, sizeof(fstype))) return (7); - if (strncmp(ondisk->vol_label, label, sizeof(label))) + if (strcmp(ondisk->vol_label, label)) return (8); } From owner-svn-src-all@freebsd.org Mon Jan 13 22:36:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8FB7A1EF89A; Mon, 13 Jan 2020 22:36:30 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xT323JQNz4H7W; Mon, 13 Jan 2020 22:36:30 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 67A87BD6A; Mon, 13 Jan 2020 22:36:30 +0000 (UTC) (envelope-from vangyzen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DMaU8S067246; Mon, 13 Jan 2020 22:36:30 GMT (envelope-from vangyzen@FreeBSD.org) Received: (from vangyzen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DMaUaB067245; Mon, 13 Jan 2020 22:36:30 GMT (envelope-from vangyzen@FreeBSD.org) Message-Id: <202001132236.00DMaUaB067245@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vangyzen set sender to vangyzen@FreeBSD.org using -f From: Eric van Gyzen Date: Mon, 13 Jan 2020 22:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356709 - head/usr.sbin/fstyp X-SVN-Group: head X-SVN-Commit-Author: vangyzen X-SVN-Commit-Paths: head/usr.sbin/fstyp X-SVN-Commit-Revision: 356709 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 22:36:30 -0000 Author: vangyzen Date: Mon Jan 13 22:36:29 2020 New Revision: 356709 URL: https://svnweb.freebsd.org/changeset/base/356709 Log: fstyp hammer2: remove dead code best_i will always be >= 0, so remove code to test otherwise. Reported by: Coverity CID: 1412244 MFC after: 2 weeks Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23159 Modified: head/usr.sbin/fstyp/hammer2.c Modified: head/usr.sbin/fstyp/hammer2.c ============================================================================== --- head/usr.sbin/fstyp/hammer2.c Mon Jan 13 22:33:48 2020 (r356708) +++ head/usr.sbin/fstyp/hammer2.c Mon Jan 13 22:36:29 2020 (r356709) @@ -87,11 +87,6 @@ __read_label(FILE *fp, char *label, size_t size) best = broot; } } - if (best_i == -1) { - warnx("Failed to find volume header from zones"); - error = 1; - goto done; - } bref = &vols[best_i]->voldata.sroot_blockset.blockref[0]; if (bref->type != HAMMER2_BREF_TYPE_INODE) { From owner-svn-src-all@freebsd.org Mon Jan 13 23:09:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 364731F056F; Mon, 13 Jan 2020 23:09:01 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xTmY0TzXz4JdL; Mon, 13 Jan 2020 23:09:01 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 077B1C2CE; Mon, 13 Jan 2020 23:09:01 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00DN90n0084910; Mon, 13 Jan 2020 23:09:00 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00DN903V084909; Mon, 13 Jan 2020 23:09:00 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001132309.00DN903V084909@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Mon, 13 Jan 2020 23:09:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356710 - head/sys/powerpc/mpc85xx X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: head/sys/powerpc/mpc85xx X-SVN-Commit-Revision: 356710 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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, 13 Jan 2020 23:09:01 -0000 Author: jhibbits Date: Mon Jan 13 23:09:00 2020 New Revision: 356710 URL: https://svnweb.freebsd.org/changeset/base/356710 Log: powerpc/mpc85xx: Partially revert r356640 The count block was correct before. r356640 caused a read past the end of the tuple. Modified: head/sys/powerpc/mpc85xx/lbc.c Modified: head/sys/powerpc/mpc85xx/lbc.c ============================================================================== --- head/sys/powerpc/mpc85xx/lbc.c Mon Jan 13 22:36:29 2020 (r356709) +++ head/sys/powerpc/mpc85xx/lbc.c Mon Jan 13 23:09:00 2020 (r356710) @@ -397,7 +397,7 @@ fdt_lbc_reg_decode(phandle_t node, struct lbc_softc *s } for (j = 0; j < size_cells; j++) { count <<= 32; - count |= reg[addr_cells + j]; + count |= reg[addr_cells + j - 1]; } reg += addr_cells - 1 + size_cells; From owner-svn-src-all@freebsd.org Tue Jan 14 00:50:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F03ED1F2501; Tue, 14 Jan 2020 00:50:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xX1f65v5z4N4j; Tue, 14 Jan 2020 00:50:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC271D539; Tue, 14 Jan 2020 00:50:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E0oUlr044380; Tue, 14 Jan 2020 00:50:30 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E0oUkJ044379; Tue, 14 Jan 2020 00:50:30 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001140050.00E0oUkJ044379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 14 Jan 2020 00:50:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356711 - stable/12/sys/netinet X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/netinet X-SVN-Commit-Revision: 356711 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 00:50:31 -0000 Author: mav Date: Tue Jan 14 00:50:30 2020 New Revision: 356711 URL: https://svnweb.freebsd.org/changeset/base/356711 Log: MFC r356240: Relax locking of carp_forus(). This fixes deadlock between CARP and bridge. Bridge calls this function taking CARP lock while holding bridge lock. Same time CARP tries to send its announcements via the bridge while holding CARP lock. Use of CARP_LOCK() here does not solve anything, since sc_addr is constant while race on sc_state is harmless and use of the lock does not close it. Modified: stable/12/sys/netinet/ip_carp.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/netinet/ip_carp.c ============================================================================== --- stable/12/sys/netinet/ip_carp.c Mon Jan 13 23:09:00 2020 (r356710) +++ stable/12/sys/netinet/ip_carp.c Tue Jan 14 00:50:30 2020 (r356711) @@ -1232,14 +1232,15 @@ carp_forus(struct ifnet *ifp, u_char *dhost) CIF_LOCK(ifp->if_carp); IFNET_FOREACH_CARP(ifp, sc) { - CARP_LOCK(sc); + /* + * CARP_LOCK() is not here, since would protect nothing, but + * cause deadlock with if_bridge, calling this under its lock. + */ if (sc->sc_state == MASTER && !bcmp(dhost, LLADDR(&sc->sc_addr), ETHER_ADDR_LEN)) { - CARP_UNLOCK(sc); CIF_UNLOCK(ifp->if_carp); return (1); } - CARP_UNLOCK(sc); } CIF_UNLOCK(ifp->if_carp); From owner-svn-src-all@freebsd.org Tue Jan 14 00:51:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27B3D1F2725; Tue, 14 Jan 2020 00:51:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xX2w0KrXz4NG1; Tue, 14 Jan 2020 00:51:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 06A2AD69E; Tue, 14 Jan 2020 00:51:36 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E0pZXK046039; Tue, 14 Jan 2020 00:51:35 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E0pZqT046038; Tue, 14 Jan 2020 00:51:35 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001140051.00E0pZqT046038@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 14 Jan 2020 00:51:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356712 - stable/11/sys/netinet X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/netinet X-SVN-Commit-Revision: 356712 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 00:51:36 -0000 Author: mav Date: Tue Jan 14 00:51:35 2020 New Revision: 356712 URL: https://svnweb.freebsd.org/changeset/base/356712 Log: MFC r356240: Relax locking of carp_forus(). This fixes deadlock between CARP and bridge. Bridge calls this function taking CARP lock while holding bridge lock. Same time CARP tries to send its announcements via the bridge while holding CARP lock. Use of CARP_LOCK() here does not solve anything, since sc_addr is constant while race on sc_state is harmless and use of the lock does not close it. Modified: stable/11/sys/netinet/ip_carp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/netinet/ip_carp.c ============================================================================== --- stable/11/sys/netinet/ip_carp.c Tue Jan 14 00:50:30 2020 (r356711) +++ stable/11/sys/netinet/ip_carp.c Tue Jan 14 00:51:35 2020 (r356712) @@ -1136,14 +1136,15 @@ carp_forus(struct ifnet *ifp, u_char *dhost) CIF_LOCK(ifp->if_carp); IFNET_FOREACH_CARP(ifp, sc) { - CARP_LOCK(sc); + /* + * CARP_LOCK() is not here, since would protect nothing, but + * cause deadlock with if_bridge, calling this under its lock. + */ if (sc->sc_state == MASTER && !bcmp(dhost, LLADDR(&sc->sc_addr), ETHER_ADDR_LEN)) { - CARP_UNLOCK(sc); CIF_UNLOCK(ifp->if_carp); return (1); } - CARP_UNLOCK(sc); } CIF_UNLOCK(ifp->if_carp); From owner-svn-src-all@freebsd.org Tue Jan 14 01:43:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5653F1F4A77; Tue, 14 Jan 2020 01:43:05 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xYBK1gtHz4RDs; Tue, 14 Jan 2020 01:43:05 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 34FC7E0B5; Tue, 14 Jan 2020 01:43:05 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E1h5kj080391; Tue, 14 Jan 2020 01:43:05 GMT (envelope-from np@FreeBSD.org) Received: (from np@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E1h46p080388; Tue, 14 Jan 2020 01:43:04 GMT (envelope-from np@FreeBSD.org) Message-Id: <202001140143.00E1h46p080388@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: np set sender to np@FreeBSD.org using -f From: Navdeep Parhar Date: Tue, 14 Jan 2020 01:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356713 - head/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: head X-SVN-Commit-Author: np X-SVN-Commit-Paths: head/sys/dev/cxgbe/iw_cxgbe X-SVN-Commit-Revision: 356713 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 01:43:05 -0000 Author: np Date: Tue Jan 14 01:43:04 2020 New Revision: 356713 URL: https://svnweb.freebsd.org/changeset/base/356713 Log: cxgbe/iw_cxgbe: Do not allow memory registrations with page size greater than 128MB, which is the maximum supported by the hardware in RDMA mode. Obtained from: Chelsio Communications MFC after: 3 days Sponsored by: Chelsio Communications Modified: head/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h head/sys/dev/cxgbe/iw_cxgbe/mem.c head/sys/dev/cxgbe/iw_cxgbe/qp.c Modified: head/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h Tue Jan 14 00:51:35 2020 (r356712) +++ head/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h Tue Jan 14 01:43:04 2020 (r356713) @@ -91,6 +91,7 @@ static inline void *cplhdr(struct mbuf *m) #define C4IW_ID_TABLE_F_RANDOM 1 /* Pseudo-randomize the id's returned */ #define C4IW_ID_TABLE_F_EMPTY 2 /* Table is initially empty */ +#define C4IW_MAX_PAGE_SIZE 0x8000000 struct c4iw_id_table { u32 flags; Modified: head/sys/dev/cxgbe/iw_cxgbe/mem.c ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/mem.c Tue Jan 14 00:51:35 2020 (r356712) +++ head/sys/dev/cxgbe/iw_cxgbe/mem.c Tue Jan 14 01:43:04 2020 (r356713) @@ -287,6 +287,8 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 if (reset_tpt_entry) memset(&tpt, 0, sizeof(tpt)); else { + if (page_size > ilog2(C4IW_MAX_PAGE_SIZE) - 12) + return -EINVAL; tpt.valid_to_pdid = cpu_to_be32(F_FW_RI_TPTE_VALID | V_FW_RI_TPTE_STAGKEY((*stag & M_FW_RI_TPTE_STAGKEY)) | V_FW_RI_TPTE_STAGSTATE(stag_state) | Modified: head/sys/dev/cxgbe/iw_cxgbe/qp.c ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/qp.c Tue Jan 14 00:51:35 2020 (r356712) +++ head/sys/dev/cxgbe/iw_cxgbe/qp.c Tue Jan 14 01:43:04 2020 (r356713) @@ -669,11 +669,14 @@ static void complete_rq_drain_wr(struct c4iw_qp *qhp, spin_unlock_irqrestore(&rchp->comp_handler_lock, flag); } -static void build_tpte_memreg(struct fw_ri_fr_nsmr_tpte_wr *fr, +static int build_tpte_memreg(struct fw_ri_fr_nsmr_tpte_wr *fr, struct ib_reg_wr *wr, struct c4iw_mr *mhp, u8 *len16) { __be64 *p = (__be64 *)fr->pbl; + if (wr->mr->page_size > C4IW_MAX_PAGE_SIZE) + return -EINVAL; + fr->r2 = cpu_to_be32(0); fr->stag = cpu_to_be32(mhp->ibmr.rkey); @@ -698,6 +701,7 @@ static void build_tpte_memreg(struct fw_ri_fr_nsmr_tpt p[1] = cpu_to_be64((u64)mhp->mpl[1]); *len16 = DIV_ROUND_UP(sizeof(*fr), 16); + return 0; } static int build_memreg(struct t4_sq *sq, union t4_wr *wqe, @@ -712,6 +716,8 @@ static int build_memreg(struct t4_sq *sq, union t4_wr if (mhp->mpl_len > t4_max_fr_depth(use_dsgl && dsgl_supported)) return -EINVAL; + if (wr->mr->page_size > C4IW_MAX_PAGE_SIZE) + return -EINVAL; wqe->fr.qpbinde_to_dcacpu = 0; wqe->fr.pgsz_shift = ilog2(wr->mr->page_size) - 12; @@ -852,16 +858,16 @@ int c4iw_post_send(struct ib_qp *ibqp, struct ib_send_ if (rdev->adap->params.fr_nsmr_tpte_wr_support && !mhp->attr.state && mhp->mpl_len <= 2) { fw_opcode = FW_RI_FR_NSMR_TPTE_WR; - build_tpte_memreg(&wqe->fr_tpte, reg_wr(wr), + err = build_tpte_memreg(&wqe->fr_tpte, reg_wr(wr), mhp, &len16); } else { fw_opcode = FW_RI_FR_NSMR_WR; err = build_memreg(&qhp->wq.sq, wqe, reg_wr(wr), mhp, &len16, rdev->adap->params.ulptx_memwrite_dsgl); - if (err) - break; } + if (err) + break; mhp->attr.state = 1; break; } From owner-svn-src-all@freebsd.org Tue Jan 14 02:00:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9984B1F5551; Tue, 14 Jan 2020 02:00:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xYZJ3ZRRz4RxG; Tue, 14 Jan 2020 02:00:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 75A3FE2B4; Tue, 14 Jan 2020 02:00:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E20Oti086657; Tue, 14 Jan 2020 02:00:24 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E20OY4086656; Tue, 14 Jan 2020 02:00:24 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202001140200.00E20OY4086656@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Tue, 14 Jan 2020 02:00:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356714 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 356714 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:00:24 -0000 Author: jeff Date: Tue Jan 14 02:00:24 2020 New Revision: 356714 URL: https://svnweb.freebsd.org/changeset/base/356714 Log: Fix a long standing bug in journaled soft-updates. The dirrem structure needs to handle file removal, directory removal, file move, directory move, etc. The code in handle_workitem_remove() needs to propagate any completed journal entries to the write that will render the change stable. In the case of a moved directory this means the new parent. However, for an overwrite that frees a directory (DIRCHG) we must move the jsegdep to the removed inode to be released when it is stable in the cg bitmap or the unlinked inode list. This case was previously unhandled and caused a panic. Reported by: mckusick, pho Reviewed by: mckusick Tested by: pho Modified: head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Tue Jan 14 01:43:04 2020 (r356713) +++ head/sys/ufs/ffs/ffs_softdep.c Tue Jan 14 02:00:24 2020 (r356714) @@ -9849,14 +9849,20 @@ handle_workitem_remove(dirrem, flags) /* * Move all dependencies waiting on the remove to complete * from the dirrem to the inode inowait list to be completed - * after the inode has been updated and written to disk. Any - * marked MKDIR_PARENT are saved to be completed when the .. ref - * is removed. + * after the inode has been updated and written to disk. + * + * Any marked MKDIR_PARENT are saved to be completed when the + * dotdot ref is removed unless DIRCHG is specified. For + * directory change operations there will be no further + * directory writes and the jsegdeps need to be moved along + * with the rest to be completed when the inode is free or + * stable in the inode free list. */ LIST_INIT(&dotdotwk); while ((wk = LIST_FIRST(&dirrem->dm_jwork)) != NULL) { WORKLIST_REMOVE(wk); - if (wk->wk_state & MKDIR_PARENT) { + if ((dirrem->dm_state & DIRCHG) == 0 && + wk->wk_state & MKDIR_PARENT) { wk->wk_state &= ~MKDIR_PARENT; WORKLIST_INSERT(&dotdotwk, wk); continue; From owner-svn-src-all@freebsd.org Tue Jan 14 02:13:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 93A0C1F6018; Tue, 14 Jan 2020 02:13:47 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xYsl3QtLz4Sny; Tue, 14 Jan 2020 02:13:47 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 70EBEE663; Tue, 14 Jan 2020 02:13:47 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E2Dlii098399; Tue, 14 Jan 2020 02:13:47 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E2DlV8098398; Tue, 14 Jan 2020 02:13:47 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202001140213.00E2DlV8098398@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Tue, 14 Jan 2020 02:13:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356715 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356715 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:13:47 -0000 Author: rlibby Date: Tue Jan 14 02:13:46 2020 New Revision: 356715 URL: https://svnweb.freebsd.org/changeset/base/356715 Log: uma: fixup some ktr messages Reviewed by: markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23148 Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Tue Jan 14 02:00:24 2020 (r356714) +++ head/sys/vm/uma_core.c Tue Jan 14 02:13:46 2020 (r356715) @@ -1841,7 +1841,7 @@ keg_layout(uma_keg_t keg) if (ipers == 0 || (eff < UMA_MIN_EFF && eff < eff_offpage)) { CTR5(KTR_UMA, "UMA decided we need offpage slab headers for " "keg: %s(%p), minimum efficiency allowed = %u%%, " - "old efficiency = %u%%, offpage efficiency = %u%%\n", + "old efficiency = %u%%, offpage efficiency = %u%%", keg->uk_name, keg, UMA_FIXPT_PCT(UMA_MIN_EFF), UMA_FIXPT_PCT(eff), UMA_FIXPT_PCT(eff_offpage)); format = UMA_ZFLAG_OFFPAGE; @@ -1865,7 +1865,7 @@ out: keg->uk_rsize = rsize; keg->uk_flags |= format; keg->uk_ppera = pages; - CTR6(KTR_UMA, "%s: keg=%s, flags=%#x, rsize=%u, ipers=%u, ppera=%u\n", + CTR6(KTR_UMA, "%s: keg=%s, flags=%#x, rsize=%u, ipers=%u, ppera=%u", __func__, keg->uk_name, keg->uk_flags, rsize, ipers, pages); KASSERT(keg->uk_ipers > 0 && keg->uk_ipers <= SLAB_MAX_SETSIZE, ("%s: keg=%s, flags=0x%b, rsize=%u, ipers=%u, ppera=%u", __func__, @@ -1999,7 +1999,7 @@ keg_ctor(void *mem, int size, void *udata, int flags) if (keg->uk_flags & UMA_ZFLAG_HASH) hash_alloc(&keg->uk_hash, 0); - CTR3(KTR_UMA, "keg_ctor %p zone %s(%p)\n", keg, zone->uz_name, zone); + CTR3(KTR_UMA, "keg_ctor %p zone %s(%p)", keg, zone->uz_name, zone); LIST_INSERT_HEAD(&keg->uk_zones, zone, uz_link); @@ -2935,8 +2935,8 @@ uma_zalloc_arg(uma_zone_t zone, void *udata, int flags random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); /* This is the fast path allocation */ - CTR4(KTR_UMA, "uma_zalloc_arg thread %x zone %s(%p) flags %d", - curthread, zone->uz_name, zone, flags); + CTR3(KTR_UMA, "uma_zalloc_arg zone %s(%p) flags %d", zone->uz_name, + zone, flags); #ifdef WITNESS if (flags & M_WAITOK) { @@ -3151,9 +3151,8 @@ uma_zalloc_domain(uma_zone_t zone, void *udata, int do random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); /* This is the fast path allocation */ - CTR5(KTR_UMA, - "uma_zalloc_domain thread %x zone %s(%p) domain %d flags %d", - curthread, zone->uz_name, zone, domain, flags); + CTR4(KTR_UMA, "uma_zalloc_domain zone %s(%p) domain %d flags %d", + zone->uz_name, zone, domain, flags); if (flags & M_WAITOK) { WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, @@ -3523,7 +3522,8 @@ zone_alloc_bucket(uma_zone_t zone, void *udata, int do uma_bucket_t bucket; int maxbucket, cnt; - CTR1(KTR_UMA, "zone_alloc:_bucket domain %d)", domain); + CTR3(KTR_UMA, "zone_alloc_bucket zone %s(%p) domain %d", zone->uz_name, + zone, domain); /* Avoid allocs targeting empty domains. */ if (domain != UMA_ANYDOMAIN && VM_DOMAIN_EMPTY(domain)) @@ -3658,8 +3658,7 @@ uma_zfree_arg(uma_zone_t zone, void *item, void *udata /* Enable entropy collection for RANDOM_ENABLE_UMA kernel option */ random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); - CTR2(KTR_UMA, "uma_zfree_arg thread %x zone %s", curthread, - zone->uz_name); + CTR2(KTR_UMA, "uma_zfree_arg zone %s(%p)", zone->uz_name, zone); KASSERT(curthread->td_critnest == 0 || SCHEDULER_STOPPED(), ("uma_zfree_arg: called with spinlock or critical section held")); @@ -3960,8 +3959,7 @@ uma_zfree_domain(uma_zone_t zone, void *item, void *ud /* Enable entropy collection for RANDOM_ENABLE_UMA kernel option */ random_harvest_fast_uma(&zone, sizeof(zone), RANDOM_UMA); - CTR2(KTR_UMA, "uma_zfree_domain thread %x zone %s", curthread, - zone->uz_name); + CTR2(KTR_UMA, "uma_zfree_domain zone %s(%p)", zone->uz_name, zone); KASSERT(curthread->td_critnest == 0 || SCHEDULER_STOPPED(), ("uma_zfree_domain: called with spinlock or critical section held")); From owner-svn-src-all@freebsd.org Tue Jan 14 02:14:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 980EB1F607B; Tue, 14 Jan 2020 02:14:03 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xYt33Xtrz4Sw8; Tue, 14 Jan 2020 02:14:03 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 74ABBE664; Tue, 14 Jan 2020 02:14:03 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E2E3GT098464; Tue, 14 Jan 2020 02:14:03 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E2E3Ch098462; Tue, 14 Jan 2020 02:14:03 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202001140214.00E2E3Ch098462@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Tue, 14 Jan 2020 02:14:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356716 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356716 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:14:03 -0000 Author: rlibby Date: Tue Jan 14 02:14:02 2020 New Revision: 356716 URL: https://svnweb.freebsd.org/changeset/base/356716 Log: malloc: remove assumptions about MINALLOCSIZE Remove assumptions about the minimum MINALLOCSIZE, in order to allow testing of smaller MINALLOCSIZE. A following patch will lower the MINALLOCSIZE, but not so much that the present patch is required for correctness at these sites. Reviewed by: jeff, markj Sponsored by: Dell EMC Isilon Modified: head/sys/kern/kern_prot.c head/sys/kern/subr_bus.c Modified: head/sys/kern/kern_prot.c ============================================================================== --- head/sys/kern/kern_prot.c Tue Jan 14 02:13:46 2020 (r356715) +++ head/sys/kern/kern_prot.c Tue Jan 14 02:14:02 2020 (r356716) @@ -2054,7 +2054,7 @@ crextend(struct ucred *cr, int n) */ if ( n < PAGE_SIZE / sizeof(gid_t) ) { if (cr->cr_agroups == 0) - cnt = MINALLOCSIZE / sizeof(gid_t); + cnt = MAX(1, MINALLOCSIZE / sizeof(gid_t)); else cnt = cr->cr_agroups * 2; Modified: head/sys/kern/subr_bus.c ============================================================================== --- head/sys/kern/subr_bus.c Tue Jan 14 02:13:46 2020 (r356715) +++ head/sys/kern/subr_bus.c Tue Jan 14 02:14:02 2020 (r356716) @@ -1686,7 +1686,8 @@ devclass_alloc_unit(devclass_t dc, device_t dev, int * int newsize; oldlist = dc->devices; - newsize = roundup((unit + 1), MINALLOCSIZE / sizeof(device_t)); + newsize = roundup((unit + 1), + MAX(1, MINALLOCSIZE / sizeof(device_t))); newlist = malloc(sizeof(device_t) * newsize, M_BUS, M_NOWAIT); if (!newlist) return (ENOMEM); From owner-svn-src-all@freebsd.org Tue Jan 14 02:14:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B19901F60EC; Tue, 14 Jan 2020 02:14:16 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xYtJ49zBz4T3f; Tue, 14 Jan 2020 02:14:16 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8AC8BE669; Tue, 14 Jan 2020 02:14:16 +0000 (UTC) (envelope-from rlibby@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E2EGHD098528; Tue, 14 Jan 2020 02:14:16 GMT (envelope-from rlibby@FreeBSD.org) Received: (from rlibby@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E2EGkI098525; Tue, 14 Jan 2020 02:14:16 GMT (envelope-from rlibby@FreeBSD.org) Message-Id: <202001140214.00E2EGkI098525@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rlibby set sender to rlibby@FreeBSD.org using -f From: Ryan Libby Date: Tue, 14 Jan 2020 02:14:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356717 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: rlibby X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356717 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:14:16 -0000 Author: rlibby Date: Tue Jan 14 02:14:15 2020 New Revision: 356717 URL: https://svnweb.freebsd.org/changeset/base/356717 Log: uma: split slabzone into two sizes By allowing more items per slab, we can improve memory efficiency for small allocs. If we were just to increase the bitmap size of the slabzone, we would then waste slabzone memory. So, split slabzone into two zones, one especially for 8-byte allocs (512 per slab). The practical effect should be reduced memory usage for counter(9). Reviewed by: jeff, markj Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D23149 Modified: head/sys/vm/uma.h head/sys/vm/uma_core.c head/sys/vm/uma_int.h Modified: head/sys/vm/uma.h ============================================================================== --- head/sys/vm/uma.h Tue Jan 14 02:14:02 2020 (r356716) +++ head/sys/vm/uma.h Tue Jan 14 02:14:15 2020 (r356717) @@ -42,7 +42,7 @@ #include /* For M_* */ /* User visible parameters */ -#define UMA_SMALLEST_UNIT (PAGE_SIZE / 256) /* Smallest item allocated */ +#define UMA_SMALLEST_UNIT 8 /* Smallest item allocated */ /* Types and type defs */ Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Tue Jan 14 02:14:02 2020 (r356716) +++ head/sys/vm/uma_core.c Tue Jan 14 02:14:15 2020 (r356717) @@ -107,8 +107,21 @@ __FBSDID("$FreeBSD$"); static uma_zone_t kegs; static uma_zone_t zones; -/* This is the zone from which all offpage uma_slab_ts are allocated. */ -static uma_zone_t slabzone; +/* + * These are the two zones from which all offpage uma_slab_ts are allocated. + * + * One zone is for slab headers that can represent a larger number of items, + * making the slabs themselves more efficient, and the other zone is for + * headers that are smaller and represent fewer items, making the headers more + * efficient. + */ +#define SLABZONE_SIZE(setsize) \ + (sizeof(struct uma_hash_slab) + BITSET_SIZE(setsize) * SLAB_BITSETS) +#define SLABZONE0_SETSIZE (PAGE_SIZE / 16) +#define SLABZONE1_SETSIZE SLAB_MAX_SETSIZE +#define SLABZONE0_SIZE SLABZONE_SIZE(SLABZONE0_SETSIZE) +#define SLABZONE1_SIZE SLABZONE_SIZE(SLABZONE1_SETSIZE) +static uma_zone_t slabzones[2]; /* * The initial hash tables come out of this zone so they can be allocated @@ -341,6 +354,16 @@ SYSCTL_INT(_vm, OID_AUTO, zone_warnings, CTLFLAG_RWTUN "Warn when UMA zones becomes full"); /* + * Select the slab zone for an offpage slab with the given maximum item count. + */ +static inline uma_zone_t +slabzone(int ipers) +{ + + return (slabzones[ipers > SLABZONE0_SETSIZE]); +} + +/* * This routine checks to see whether or not it's safe to enable buckets. */ static void @@ -1169,7 +1192,8 @@ keg_free_slab(uma_keg_t keg, uma_slab_t slab, int star keg->uk_fini(slab_item(slab, keg, i), keg->uk_size); } if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) - zone_free_item(keg->uk_slabzone, slab, NULL, SKIP_NONE); + zone_free_item(slabzone(keg->uk_ipers), slab_tohashslab(slab), + NULL, SKIP_NONE); keg->uk_freef(mem, PAGE_SIZE * keg->uk_ppera, flags); uma_total_dec(PAGE_SIZE * keg->uk_ppera); } @@ -1302,9 +1326,12 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom slab = NULL; mem = NULL; if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) { - slab = zone_alloc_item(keg->uk_slabzone, NULL, domain, aflags); - if (slab == NULL) + uma_hash_slab_t hslab; + hslab = zone_alloc_item(slabzone(keg->uk_ipers), NULL, + domain, aflags); + if (hslab == NULL) goto fail; + slab = &hslab->uhs_slab; } /* @@ -1327,7 +1354,8 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom mem = allocf(zone, size, domain, &sflags, aflags); if (mem == NULL) { if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) - zone_free_item(keg->uk_slabzone, slab, NULL, SKIP_NONE); + zone_free_item(slabzone(keg->uk_ipers), + slab_tohashslab(slab), NULL, SKIP_NONE); goto fail; } uma_total_inc(size); @@ -1340,7 +1368,7 @@ keg_alloc_slab(uma_keg_t keg, uma_zone_t zone, int dom if (!(keg->uk_flags & UMA_ZFLAG_OFFPAGE)) slab = (uma_slab_t )(mem + keg->uk_pgoff); else - ((uma_hash_slab_t)slab)->uhs_data = mem; + slab_tohashslab(slab)->uhs_data = mem; if (keg->uk_flags & UMA_ZFLAG_VTOSLAB) for (i = 0; i < keg->uk_ppera; i++) @@ -1769,7 +1797,7 @@ keg_layout(uma_keg_t keg) * alignment. If the requested size is smaller than we have * allocation bits for we round it up. */ - rsize = MAX(keg->uk_size, UMA_SLAB_SIZE / SLAB_MAX_SETSIZE); + rsize = MAX(keg->uk_size, UMA_SMALLEST_UNIT); rsize = roundup2(rsize, alignsize); if ((keg->uk_flags & UMA_ZONE_PCPU) != 0) { @@ -1837,7 +1865,7 @@ keg_layout(uma_keg_t keg) eff = UMA_FRAC_FIXPT(ipers * rsize, slabsize); ipers_offpage = slab_ipers_hdr(keg->uk_size, rsize, slabsize, false); eff_offpage = UMA_FRAC_FIXPT(ipers_offpage * rsize, - slabsize + slab_sizeof(SLAB_MAX_SETSIZE)); + slabsize + slabzone(ipers_offpage)->uz_keg->uk_rsize); if (ipers == 0 || (eff < UMA_MIN_EFF && eff < eff_offpage)) { CTR5(KTR_UMA, "UMA decided we need offpage slab headers for " "keg: %s(%p), minimum efficiency allowed = %u%%, " @@ -1895,7 +1923,6 @@ keg_ctor(void *mem, int size, void *udata, int flags) keg->uk_align = arg->align; keg->uk_reserve = 0; keg->uk_flags = arg->flags; - keg->uk_slabzone = NULL; /* * We use a global round-robin policy by default. Zones with @@ -1941,9 +1968,6 @@ keg_ctor(void *mem, int size, void *udata, int flags) keg->uk_flags |= UMA_ZONE_ROUNDROBIN; #endif - if (keg->uk_flags & UMA_ZFLAG_OFFPAGE) - keg->uk_slabzone = slabzone; - /* * If we haven't booted yet we need allocations to go through the * startup cache until the vm is ready. @@ -2489,7 +2513,7 @@ zone_foreach(void (*zfunc)(uma_zone_t, void *arg), voi * which consist of the UMA Slabs, UMA Hash and 9 Bucket zones. The * zone of zones and zone of kegs are accounted separately. */ -#define UMA_BOOT_ZONES 11 +#define UMA_BOOT_ZONES 12 static int zsize, ksize; int uma_startup_count(int vm_zones) @@ -2607,9 +2631,11 @@ uma_startup(void *mem, int npages) args.flags = UMA_ZFLAG_INTERNAL; zone_ctor(zones, zsize, &args, M_WAITOK); - /* Now make a zone for slab headers */ - slabzone = uma_zcreate("UMA Slabs", sizeof(struct uma_hash_slab), + /* Now make zones for slab headers */ + slabzones[0] = uma_zcreate("UMA Slabs 0", SLABZONE0_SIZE, NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZFLAG_INTERNAL); + slabzones[1] = uma_zcreate("UMA Slabs 1", SLABZONE1_SIZE, + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZFLAG_INTERNAL); hashzone = uma_zcreate("UMA Hash", sizeof(struct slabhead *) * UMA_HASH_SIZE_INIT, @@ -3293,7 +3319,7 @@ slab_alloc_item(uma_keg_t keg, uma_slab_t slab) { uma_domain_t dom; void *item; - uint8_t freei; + int freei; KEG_LOCK_ASSERT(keg, slab->us_domain); @@ -3975,7 +4001,7 @@ slab_free_item(uma_zone_t zone, uma_slab_t slab, void { uma_keg_t keg; uma_domain_t dom; - uint8_t freei; + int freei; keg = zone->uz_keg; KEG_LOCK_ASSERT(keg, slab->us_domain); @@ -4391,7 +4417,8 @@ uma_reclaim(int req) * we visit again so that we can free pages that are empty once other * zones are drained. We have to do the same for buckets. */ - zone_drain(slabzone, NULL); + zone_drain(slabzones[0], NULL); + zone_drain(slabzones[1], NULL); bucket_zone_drain(); sx_xunlock(&uma_reclaim_lock); } @@ -4763,7 +4790,7 @@ sysctl_handle_uma_slab_efficiency(SYSCTL_HANDLER_ARGS) total = keg->uk_ppera * PAGE_SIZE; if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) != 0) - total += slab_sizeof(SLAB_MAX_SETSIZE); + total += slabzone(keg->uk_ipers)->uz_keg->uk_rsize; /* * We consider the client's requested size and alignment here, not the * real size determination uk_rsize, because we also adjust the real Modified: head/sys/vm/uma_int.h ============================================================================== --- head/sys/vm/uma_int.h Tue Jan 14 02:14:02 2020 (r356716) +++ head/sys/vm/uma_int.h Tue Jan 14 02:14:15 2020 (r356717) @@ -213,10 +213,10 @@ #define UMA_HASH_INSERT(h, s, mem) \ LIST_INSERT_HEAD(&(h)->uh_slab_hash[UMA_HASH((h), \ - (mem))], (uma_hash_slab_t)(s), uhs_hlink) + (mem))], slab_tohashslab(s), uhs_hlink) #define UMA_HASH_REMOVE(h, s) \ - LIST_REMOVE((uma_hash_slab_t)(s), uhs_hlink) + LIST_REMOVE(slab_tohashslab(s), uhs_hlink) LIST_HEAD(slabhashhead, uma_hash_slab); @@ -351,7 +351,6 @@ struct uma_keg { u_long uk_offset; /* Next free offset from base KVA */ vm_offset_t uk_kva; /* Zone base KVA */ - uma_zone_t uk_slabzone; /* Slab zone backing us, if OFFPAGE */ uint32_t uk_pgoff; /* Offset to uma_slab struct */ uint16_t uk_ppera; /* pages per allocation from backend */ @@ -377,7 +376,6 @@ typedef struct uma_keg * uma_keg_t; */ #define SLAB_MAX_SETSIZE (PAGE_SIZE / UMA_SMALLEST_UNIT) #define SLAB_MIN_SETSIZE _BITSET_BITS -BITSET_DEFINE(slabbits, SLAB_MAX_SETSIZE); BITSET_DEFINE(noslabbits, 0); /* @@ -419,17 +417,20 @@ int slab_ipers(size_t size, int align); * HASH and OFFPAGE zones. */ struct uma_hash_slab { - struct uma_slab uhs_slab; /* Must be first. */ - struct slabbits uhs_bits1; /* Must be second. */ -#ifdef INVARIANTS - struct slabbits uhs_bits2; /* Must be third. */ -#endif LIST_ENTRY(uma_hash_slab) uhs_hlink; /* Link for hash table */ uint8_t *uhs_data; /* First item */ + struct uma_slab uhs_slab; /* Must be last. */ }; typedef struct uma_hash_slab * uma_hash_slab_t; +static inline uma_hash_slab_t +slab_tohashslab(uma_slab_t slab) +{ + + return (__containerof(slab, struct uma_hash_slab, uhs_slab)); +} + static inline void * slab_data(uma_slab_t slab, uma_keg_t keg) { @@ -437,7 +438,7 @@ slab_data(uma_slab_t slab, uma_keg_t keg) if ((keg->uk_flags & UMA_ZFLAG_OFFPAGE) == 0) return ((void *)((uintptr_t)slab - keg->uk_pgoff)); else - return (((uma_hash_slab_t)slab)->uhs_data); + return (slab_tohashslab(slab)->uhs_data); } static inline void * From owner-svn-src-all@freebsd.org Tue Jan 14 02:41:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2841C1F71EA; Tue, 14 Jan 2020 02:41:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xZV90JRwz4VKr; Tue, 14 Jan 2020 02:41:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 05BB1EBEB; Tue, 14 Jan 2020 02:41:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E2fqxc014604; Tue, 14 Jan 2020 02:41:52 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E2fq3H014603; Tue, 14 Jan 2020 02:41:52 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001140241.00E2fq3H014603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 14 Jan 2020 02:41:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356718 - stable/12/lib/libjail X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/lib/libjail X-SVN-Commit-Revision: 356718 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:41:53 -0000 Author: markj Date: Tue Jan 14 02:41:52 2020 New Revision: 356718 URL: https://svnweb.freebsd.org/changeset/base/356718 Log: MFC r356476: libjail: Handle an error from reallocarray() when trimming the buffer. PR: 243106 Modified: stable/12/lib/libjail/jail.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libjail/jail.c ============================================================================== --- stable/12/lib/libjail/jail.c Tue Jan 14 02:14:15 2020 (r356717) +++ stable/12/lib/libjail/jail.c Tue Jan 14 02:41:52 2020 (r356718) @@ -263,7 +263,10 @@ jailparam_all(struct jailparam **jpp) goto error; mib1[1] = 2; } - jp = reallocarray(jp, njp, sizeof(*jp)); + /* Just return the untrimmed buffer if reallocarray() somehow fails. */ + tjp = reallocarray(jp, njp, sizeof(*jp)); + if (tjp != NULL) + jp = tjp; *jpp = jp; return (njp); From owner-svn-src-all@freebsd.org Tue Jan 14 02:44:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9A03F1F72B8; Tue, 14 Jan 2020 02:44:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xZY53bvRz4Vcb; Tue, 14 Jan 2020 02:44:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 76A62EC36; Tue, 14 Jan 2020 02:44:25 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E2iPWB016339; Tue, 14 Jan 2020 02:44:25 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E2iP5I016337; Tue, 14 Jan 2020 02:44:25 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001140244.00E2iP5I016337@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 14 Jan 2020 02:44:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356719 - stable/12/sys/dev/smartpqi X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/dev/smartpqi X-SVN-Commit-Revision: 356719 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 02:44:25 -0000 Author: markj Date: Tue Jan 14 02:44:24 2020 New Revision: 356719 URL: https://svnweb.freebsd.org/changeset/base/356719 Log: MFC r356445: Decrease logging severity when adding a device or reading config table. PR: 243056 Modified: stable/12/sys/dev/smartpqi/smartpqi_discovery.c stable/12/sys/dev/smartpqi/smartpqi_init.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/smartpqi/smartpqi_discovery.c ============================================================================== --- stable/12/sys/dev/smartpqi/smartpqi_discovery.c Tue Jan 14 02:41:52 2020 (r356718) +++ stable/12/sys/dev/smartpqi/smartpqi_discovery.c Tue Jan 14 02:44:24 2020 (r356719) @@ -1213,7 +1213,7 @@ static int pqisrc_add_device(pqisrc_softstate_t *softs pqi_scsi_dev_t *device) { DBG_FUNC("IN\n"); - DBG_WARN("vendor: %s model: %s bus:%d target:%d lun:%d is_physical_device:0x%x expose_device:0x%x volume_offline 0x%x volume_status 0x%x \n", + DBG_DISC("vendor: %s model: %s bus:%d target:%d lun:%d is_physical_device:0x%x expose_device:0x%x volume_offline 0x%x volume_status 0x%x \n", device->vendor, device->model, device->bus, device->target, device->lun, device->is_physical_device, device->expose_device, device->volume_offline, device->volume_status); device->invalid = false; Modified: stable/12/sys/dev/smartpqi/smartpqi_init.c ============================================================================== --- stable/12/sys/dev/smartpqi/smartpqi_init.c Tue Jan 14 02:41:52 2020 (r356718) +++ stable/12/sys/dev/smartpqi/smartpqi_init.c Tue Jan 14 02:44:24 2020 (r356719) @@ -453,7 +453,7 @@ int pqisrc_process_config_table(pqisrc_softstate_t *so ret = PQI_STATUS_SUCCESS; break; default: - DBG_ERR("unrecognized PQI config table section ID: 0x%x\n", + DBG_INFO("unrecognized PQI config table section ID: 0x%x\n", LE_16(section_hdr->section_id)); break; } From owner-svn-src-all@freebsd.org Tue Jan 14 03:27:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 51EB61F86CE; Tue, 14 Jan 2020 03:27:58 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xbWL1TNSz4Xlx; Tue, 14 Jan 2020 03:27:58 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2DF31F478; Tue, 14 Jan 2020 03:27:58 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E3Rw0P041233; Tue, 14 Jan 2020 03:27:58 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E3RwaZ041232; Tue, 14 Jan 2020 03:27:58 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001140327.00E3RwaZ041232@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Tue, 14 Jan 2020 03:27:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356720 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: mav X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356720 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 03:27:58 -0000 Author: mav Date: Tue Jan 14 03:27:57 2020 New Revision: 356720 URL: https://svnweb.freebsd.org/changeset/base/356720 Log: Restore loop break in vm_pageout_lowmem(). r355004 removed return statement from this loop with intention to also call uma_reclaim_wakeup(). But in case of vm.lowmem_period=0 it causes infinite loop. Reviewed by: markj Sponsored by: iXsystems, Inc. Modified: head/sys/vm/vm_pageout.c Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Tue Jan 14 02:44:24 2020 (r356719) +++ head/sys/vm/vm_pageout.c Tue Jan 14 03:27:57 2020 (r356720) @@ -1974,6 +1974,7 @@ vm_pageout_lowmem(void) */ uma_reclaim(UMA_RECLAIM_TRIM); ret = true; + break; } /* From owner-svn-src-all@freebsd.org Tue Jan 14 03:36:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F23221F8A0B; Tue, 14 Jan 2020 03:36:26 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xbj664B3z4YG0; Tue, 14 Jan 2020 03:36:26 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.5] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id EDCCC7779; Tue, 14 Jan 2020 03:36:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r356714 - head/sys/ufs/ffs To: Jeff Roberson , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202001140200.00E20OY4086656@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: <7c2872cd-3178-8cf0-ee47-7aea7f00285b@FreeBSD.org> Date: Mon, 13 Jan 2020 22:36:24 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <202001140200.00E20OY4086656@repo.freebsd.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 03:36:27 -0000 On 13/01/2020 21:00, Jeff Roberson wrote: > Author: jeff > Date: Tue Jan 14 02:00:24 2020 > New Revision: 356714 > URL: https://svnweb.freebsd.org/changeset/base/356714 > > Log: > Fix a long standing bug in journaled soft-updates. The dirrem structure > needs to handle file removal, directory removal, file move, directory move, > etc. The code in handle_workitem_remove() needs to propagate any completed > journal entries to the write that will render the change stable. In the > case of a moved directory this means the new parent. However, for an > overwrite that frees a directory (DIRCHG) we must move the jsegdep to the > removed inode to be released when it is stable in the cg bitmap or the > unlinked inode list. This case was previously unhandled and caused a > panic. > > Reported by: mckusick, pho > Reviewed by: mckusick > Tested by: pho MFC ? I mean if it's a long standing bug + unhandled + causing a panic ... sounds like it really should be merged. Pedro. From owner-svn-src-all@freebsd.org Tue Jan 14 06:28:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 83DF31FC1C7; Tue, 14 Jan 2020 06:28:08 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xgWD2vzrz4gD8; Tue, 14 Jan 2020 06:28:08 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5E58219568; Tue, 14 Jan 2020 06:28:08 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E6S8ob048436; Tue, 14 Jan 2020 06:28:08 GMT (envelope-from delphij@FreeBSD.org) Received: (from delphij@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E6S85L048435; Tue, 14 Jan 2020 06:28:08 GMT (envelope-from delphij@FreeBSD.org) Message-Id: <202001140628.00E6S85L048435@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: delphij set sender to delphij@FreeBSD.org using -f From: Xin LI Date: Tue, 14 Jan 2020 06:28:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356722 - stable/12/sbin/fsck_msdosfs X-SVN-Group: stable-12 X-SVN-Commit-Author: delphij X-SVN-Commit-Paths: stable/12/sbin/fsck_msdosfs X-SVN-Commit-Revision: 356722 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 06:28:08 -0000 Author: delphij Date: Tue Jan 14 06:28:07 2020 New Revision: 356722 URL: https://svnweb.freebsd.org/changeset/base/356722 Log: MFC r356628: Require FAT to occupy at least one sector. Modified: stable/12/sbin/fsck_msdosfs/boot.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/fsck_msdosfs/boot.c ============================================================================== --- stable/12/sbin/fsck_msdosfs/boot.c Tue Jan 14 06:15:41 2020 (r356721) +++ stable/12/sbin/fsck_msdosfs/boot.c Tue Jan 14 06:28:07 2020 (r356722) @@ -253,7 +253,7 @@ readboot(int dosfs, struct bootblock *boot) boot->FATsecs = boot->bpbFATsmall; } - if (boot->FATsecs > UINT32_MAX / boot->bpbFATs) { + if (boot->FATsecs < 1 || boot->FATsecs > UINT32_MAX / boot->bpbFATs) { pfatal("Invalid FATs(%u) with FATsecs(%zu)", boot->bpbFATs, (size_t)boot->FATsecs); return FSFATAL; From owner-svn-src-all@freebsd.org Tue Jan 14 08:16:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 89BD12210D3; Tue, 14 Jan 2020 08:16:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xjw02yqYz3JC6; Tue, 14 Jan 2020 08:16:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5BEC11A9FA; Tue, 14 Jan 2020 08:16:16 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E8GGBI018519; Tue, 14 Jan 2020 08:16:16 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E8GGUs018518; Tue, 14 Jan 2020 08:16:16 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001140816.00E8GGUs018518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 14 Jan 2020 08:16:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356723 - head/usr.bin/diff X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head/usr.bin/diff X-SVN-Commit-Revision: 356723 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 08:16:16 -0000 Author: bapt Date: Tue Jan 14 08:16:15 2020 New Revision: 356723 URL: https://svnweb.freebsd.org/changeset/base/356723 Log: mkstemp returns -1 Obtained from: OpenBSD MFC after: 3 days Modified: head/usr.bin/diff/diffreg.c Modified: head/usr.bin/diff/diffreg.c ============================================================================== --- head/usr.bin/diff/diffreg.c Tue Jan 14 06:28:07 2020 (r356722) +++ head/usr.bin/diff/diffreg.c Tue Jan 14 08:16:15 2020 (r356723) @@ -1,4 +1,4 @@ -/* $OpenBSD: diffreg.c,v 1.91 2016/03/01 20:57:35 natano Exp $ */ +/* $OpenBSD: diffreg.c,v 1.92 2019/06/28 05:35:34 deraadt Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -451,7 +451,7 @@ opentemp(const char *f) (void)strlcpy(tempfile, _PATH_TMP "/diff.XXXXXXXX", sizeof(tempfile)); - if ((ofd = mkstemp(tempfile)) < 0) { + if ((ofd = mkstemp(tempfile)) == -1) { close(ifd); return (NULL); } From owner-svn-src-all@freebsd.org Tue Jan 14 08:18:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 63E8F2212B9; Tue, 14 Jan 2020 08:18:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xjy51m1nz3JTH; Tue, 14 Jan 2020 08:18:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 37C0C1A9FF; Tue, 14 Jan 2020 08:18:05 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E8I548018637; Tue, 14 Jan 2020 08:18:05 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E8I5MI018636; Tue, 14 Jan 2020 08:18:05 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001140818.00E8I5MI018636@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 14 Jan 2020 08:18:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356724 - head/usr.bin/diff X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head/usr.bin/diff X-SVN-Commit-Revision: 356724 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 08:18:05 -0000 Author: bapt Date: Tue Jan 14 08:18:04 2020 New Revision: 356724 URL: https://svnweb.freebsd.org/changeset/base/356724 Log: asprintf returns -1, not an arbitrary value < 0. Also upon error the (very sloppy specification) leaves an undefined value in *ret, so it is wrong to inspect it, the error condition is enough. Obtained from: OpenBSD MFC after: 3 days Modified: head/usr.bin/diff/xmalloc.c Modified: head/usr.bin/diff/xmalloc.c ============================================================================== --- head/usr.bin/diff/xmalloc.c Tue Jan 14 08:16:15 2020 (r356723) +++ head/usr.bin/diff/xmalloc.c Tue Jan 14 08:18:04 2020 (r356724) @@ -1,4 +1,4 @@ -/* $OpenBSD: xmalloc.c,v 1.9 2015/11/17 18:25:02 tobias Exp $ */ +/* $OpenBSD: xmalloc.c,v 1.10 2019/06/28 05:44:09 deraadt Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -81,7 +81,7 @@ xasprintf(char **ret, const char *fmt, ...) i = vasprintf(ret, fmt, ap); va_end(ap); - if (i < 0 || *ret == NULL) + if (i == -1) err(2, "xasprintf"); return i; From owner-svn-src-all@freebsd.org Tue Jan 14 08:22:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45A40221649; Tue, 14 Jan 2020 08:22:29 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xk384YGHz3Jts; Tue, 14 Jan 2020 08:22:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9692B1ABD3; Tue, 14 Jan 2020 08:22:28 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00E8MS8C024517; Tue, 14 Jan 2020 08:22:28 GMT (envelope-from bapt@FreeBSD.org) Received: (from bapt@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00E8MS1b024516; Tue, 14 Jan 2020 08:22:28 GMT (envelope-from bapt@FreeBSD.org) Message-Id: <202001140822.00E8MS1b024516@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bapt set sender to bapt@FreeBSD.org using -f From: Baptiste Daroussin Date: Tue, 14 Jan 2020 08:22:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356725 - head/usr.bin/diff X-SVN-Group: head X-SVN-Commit-Author: bapt X-SVN-Commit-Paths: head/usr.bin/diff X-SVN-Commit-Revision: 356725 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 08:22:29 -0000 Author: bapt Date: Tue Jan 14 08:22:28 2020 New Revision: 356725 URL: https://svnweb.freebsd.org/changeset/base/356725 Log: When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Obtained from: OpenBSD MFC after: 3 days Modified: head/usr.bin/diff/diff.c head/usr.bin/diff/diffreg.c Modified: head/usr.bin/diff/diff.c ============================================================================== --- head/usr.bin/diff/diff.c Tue Jan 14 08:18:04 2020 (r356724) +++ head/usr.bin/diff/diff.c Tue Jan 14 08:22:28 2020 (r356725) @@ -1,4 +1,4 @@ -/* $OpenBSD: diff.c,v 1.65 2015/12/29 19:04:46 gsoares Exp $ */ +/* $OpenBSD: diff.c,v 1.67 2019/06/28 13:35:00 deraadt Exp $ */ /* * Copyright (c) 2003 Todd C. Miller @@ -316,12 +316,12 @@ main(int argc, char **argv) } else { if (S_ISDIR(stb1.st_mode)) { argv[0] = splice(argv[0], argv[1]); - if (stat(argv[0], &stb1) < 0) + if (stat(argv[0], &stb1) == -1) err(2, "%s", argv[0]); } if (S_ISDIR(stb2.st_mode)) { argv[1] = splice(argv[1], argv[0]); - if (stat(argv[1], &stb2) < 0) + if (stat(argv[1], &stb2) == -1) err(2, "%s", argv[1]); } print_status(diffreg(argv[0], argv[1], dflags, 1), argv[0], Modified: head/usr.bin/diff/diffreg.c ============================================================================== --- head/usr.bin/diff/diffreg.c Tue Jan 14 08:18:04 2020 (r356724) +++ head/usr.bin/diff/diffreg.c Tue Jan 14 08:22:28 2020 (r356725) @@ -1,4 +1,4 @@ -/* $OpenBSD: diffreg.c,v 1.92 2019/06/28 05:35:34 deraadt Exp $ */ +/* $OpenBSD: diffreg.c,v 1.93 2019/06/28 13:35:00 deraadt Exp $ */ /*- * SPDX-License-Identifier: BSD-4-Clause @@ -277,7 +277,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb1.st_mode)) { if ((f1 = opentemp(file1)) == NULL || - fstat(fileno(f1), &stb1) < 0) { + fstat(fileno(f1), &stb1) == -1) { warn("%s", file1); status |= 2; goto closem; @@ -298,7 +298,7 @@ diffreg(char *file1, char *file2, int flags, int capsi else { if (!S_ISREG(stb2.st_mode)) { if ((f2 = opentemp(file2)) == NULL || - fstat(fileno(f2), &stb2) < 0) { + fstat(fileno(f2), &stb2) == -1) { warn("%s", file2); status |= 2; goto closem; @@ -446,7 +446,7 @@ opentemp(const char *f) if (strcmp(f, "-") == 0) ifd = STDIN_FILENO; - else if ((ifd = open(f, O_RDONLY, 0644)) < 0) + else if ((ifd = open(f, O_RDONLY, 0644)) == -1) return (NULL); (void)strlcpy(tempfile, _PATH_TMP "/diff.XXXXXXXX", sizeof(tempfile)); @@ -942,7 +942,7 @@ preadline(int fd, size_t rlen, off_t off) ssize_t nr; line = xmalloc(rlen + 1); - if ((nr = pread(fd, line, rlen, off)) < 0) + if ((nr = pread(fd, line, rlen, off)) == -1) err(2, "preadline"); if (nr > 0 && line[nr-1] == '\n') nr--; From owner-svn-src-all@freebsd.org Tue Jan 14 11:24:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E71F32262A8; Tue, 14 Jan 2020 11:24:06 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xp4k5Pzpz415Q; Tue, 14 Jan 2020 11:24:06 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B51C71CD50; Tue, 14 Jan 2020 11:24:06 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EBO6e5033318; Tue, 14 Jan 2020 11:24:06 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EBO6Gp033317; Tue, 14 Jan 2020 11:24:06 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202001141124.00EBO6Gp033317@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 14 Jan 2020 11:24:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356727 - head/sys/compat/linux X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sys/compat/linux X-SVN-Commit-Revision: 356727 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 11:24:07 -0000 Author: trasz Date: Tue Jan 14 11:24:06 2020 New Revision: 356727 URL: https://svnweb.freebsd.org/changeset/base/356727 Log: Make linux getcpu(2) report the domain. Submitted by: markj Reviewed by: markj MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23144 Modified: head/sys/compat/linux/linux_misc.c Modified: head/sys/compat/linux/linux_misc.c ============================================================================== --- head/sys/compat/linux/linux_misc.c Tue Jan 14 10:13:44 2020 (r356726) +++ head/sys/compat/linux/linux_misc.c Tue Jan 14 11:24:06 2020 (r356727) @@ -2354,7 +2354,7 @@ linux_getcpu(struct thread *td, struct linux_getcpu_ar cpu = td->td_oncpu; /* Make sure it doesn't change during copyout(9) */ error = 0; - node = 0; /* XXX: Fake NUMA node 0 for now */ + node = cpuid_to_pcpu[cpu]->pc_domain; if (args->cpu != NULL) error = copyout(&cpu, args->cpu, sizeof(l_int)); From owner-svn-src-all@freebsd.org Tue Jan 14 11:30:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 45016226598; Tue, 14 Jan 2020 11:30:31 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xpD71920z41Xp; Tue, 14 Jan 2020 11:30:31 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 231941CD6A; Tue, 14 Jan 2020 11:30:31 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EBUVmK033683; Tue, 14 Jan 2020 11:30:31 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EBUVtR033681; Tue, 14 Jan 2020 11:30:31 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202001141130.00EBUVtR033681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 14 Jan 2020 11:30:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356728 - head/sys/compat/linux X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sys/compat/linux X-SVN-Commit-Revision: 356728 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 11:30:31 -0000 Author: trasz Date: Tue Jan 14 11:30:30 2020 New Revision: 356728 URL: https://svnweb.freebsd.org/changeset/base/356728 Log: Make linux(4) use kern_getsockopt(9) instead of going through sys_getsockopt(). It's a cleanup; no functional changes. Reviewed by: kib (earlier version) MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22813 Modified: head/sys/compat/linux/linux_socket.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Tue Jan 14 11:24:06 2020 (r356727) +++ head/sys/compat/linux/linux_socket.c Tue Jan 14 11:30:30 2020 (r356728) @@ -1471,13 +1471,6 @@ linux_setsockopt(struct thread *td, struct linux_setso int linux_getsockopt(struct thread *td, struct linux_getsockopt_args *args) { - struct getsockopt_args /* { - int s; - int level; - int name; - caddr_t val; - int *avalsize; - } */ bsd_args; l_timeval linux_tv; struct timeval tv; socklen_t tv_len, xulen, len; @@ -1485,11 +1478,10 @@ linux_getsockopt(struct thread *td, struct linux_getso struct sockaddr *sa; struct xucred xu; struct l_ucred lxu; - int error, name, newval; + int error, level, name, newval; - bsd_args.s = args->s; - bsd_args.level = linux_to_bsd_sockopt_level(args->level); - switch (bsd_args.level) { + level = linux_to_bsd_sockopt_level(args->level); + switch (level) { case SOL_SOCKET: name = linux_to_bsd_so_sockopt(args->optname); switch (name) { @@ -1497,7 +1489,7 @@ linux_getsockopt(struct thread *td, struct linux_getso /* FALLTHROUGH */ case SO_SNDTIMEO: tv_len = sizeof(tv); - error = kern_getsockopt(td, args->s, bsd_args.level, + error = kern_getsockopt(td, args->s, level, name, &tv, UIO_SYSSPACE, &tv_len); if (error != 0) return (error); @@ -1513,9 +1505,9 @@ linux_getsockopt(struct thread *td, struct linux_getso * LOCAL_PEERCRED is not served at the SOL_SOCKET level, * but by the Unix socket's level 0. */ - bsd_args.level = 0; + level = 0; xulen = sizeof(xu); - error = kern_getsockopt(td, args->s, bsd_args.level, + error = kern_getsockopt(td, args->s, level, name, &xu, UIO_SYSSPACE, &xulen); if (error != 0) return (error); @@ -1526,7 +1518,7 @@ linux_getsockopt(struct thread *td, struct linux_getso /* NOTREACHED */ case SO_ERROR: len = sizeof(newval); - error = kern_getsockopt(td, args->s, bsd_args.level, + error = kern_getsockopt(td, args->s, level, name, &newval, UIO_SYSSPACE, &len); if (error != 0) return (error); @@ -1553,16 +1545,13 @@ linux_getsockopt(struct thread *td, struct linux_getso if (name == -1) return (EINVAL); - bsd_args.name = name; - bsd_args.avalsize = PTRIN(args->optlen); - if (name == IPV6_NEXTHOP) { error = copyin(PTRIN(args->optlen), &len, sizeof(len)); if (error != 0) return (error); sa = malloc(len, M_SONAME, M_WAITOK); - error = kern_getsockopt(td, args->s, bsd_args.level, + error = kern_getsockopt(td, args->s, level, name, sa, UIO_SYSSPACE, &len); if (error != 0) goto out; @@ -1577,8 +1566,16 @@ linux_getsockopt(struct thread *td, struct linux_getso out: free(sa, M_SONAME); } else { - bsd_args.val = PTRIN(args->optval); - error = sys_getsockopt(td, &bsd_args); + if (args->optval) { + error = copyin(PTRIN(args->optlen), &len, sizeof(len)); + if (error != 0) + return (error); + } + error = kern_getsockopt(td, args->s, level, + name, PTRIN(args->optval), UIO_USERSPACE, &len); + if (error == 0) + error = copyout(&len, PTRIN(args->optlen), + sizeof(len)); } return (error); From owner-svn-src-all@freebsd.org Tue Jan 14 11:33:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 678F9226815; Tue, 14 Jan 2020 11:33:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xpH80RLzz420R; Tue, 14 Jan 2020 11:33:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 09FA21CF36; Tue, 14 Jan 2020 11:33:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EBX7gv039102; Tue, 14 Jan 2020 11:33:07 GMT (envelope-from trasz@FreeBSD.org) Received: (from trasz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EBX76N039101; Tue, 14 Jan 2020 11:33:07 GMT (envelope-from trasz@FreeBSD.org) Message-Id: <202001141133.00EBX76N039101@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: trasz set sender to trasz@FreeBSD.org using -f From: Edward Tomasz Napierala Date: Tue, 14 Jan 2020 11:33:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356729 - head/sys/compat/linux X-SVN-Group: head X-SVN-Commit-Author: trasz X-SVN-Commit-Paths: head/sys/compat/linux X-SVN-Commit-Revision: 356729 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 11:33:08 -0000 Author: trasz Date: Tue Jan 14 11:33:07 2020 New Revision: 356729 URL: https://svnweb.freebsd.org/changeset/base/356729 Log: Make linux(4) use kern_setsockopt(9) instead of going through sys_setsockopt. Just a cleanup; no functional changes. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22812 Modified: head/sys/compat/linux/linux_socket.c Modified: head/sys/compat/linux/linux_socket.c ============================================================================== --- head/sys/compat/linux/linux_socket.c Tue Jan 14 11:30:30 2020 (r356728) +++ head/sys/compat/linux/linux_socket.c Tue Jan 14 11:33:07 2020 (r356729) @@ -1396,22 +1396,14 @@ linux_shutdown(struct thread *td, struct linux_shutdow int linux_setsockopt(struct thread *td, struct linux_setsockopt_args *args) { - struct setsockopt_args /* { - int s; - int level; - int name; - const void *val; - int valsize; - } */ bsd_args; l_timeval linux_tv; struct sockaddr *sa; struct timeval tv; socklen_t len; - int error, name; + int error, level, name; - bsd_args.s = args->s; - bsd_args.level = linux_to_bsd_sockopt_level(args->level); - switch (bsd_args.level) { + level = linux_to_bsd_sockopt_level(args->level); + switch (level) { case SOL_SOCKET: name = linux_to_bsd_so_sockopt(args->optname); switch (name) { @@ -1424,7 +1416,7 @@ linux_setsockopt(struct thread *td, struct linux_setso return (error); tv.tv_sec = linux_tv.tv_sec; tv.tv_usec = linux_tv.tv_usec; - return (kern_setsockopt(td, args->s, bsd_args.level, + return (kern_setsockopt(td, args->s, level, name, &tv, UIO_SYSSPACE, sizeof(tv))); /* NOTREACHED */ default: @@ -1449,20 +1441,17 @@ linux_setsockopt(struct thread *td, struct linux_setso if (name == IPV6_NEXTHOP) { - len = args->optlen; error = linux_to_bsd_sockaddr(PTRIN(args->optval), &sa, &len); if (error != 0) return (error); - error = kern_setsockopt(td, args->s, bsd_args.level, + error = kern_setsockopt(td, args->s, level, name, sa, UIO_SYSSPACE, len); free(sa, M_SONAME); } else { - bsd_args.name = name; - bsd_args.val = PTRIN(args->optval); - bsd_args.valsize = args->optlen; - error = sys_setsockopt(td, &bsd_args); + error = kern_setsockopt(td, args->s, level, + name, PTRIN(args->optval), UIO_USERSPACE, args->optlen); } return (error); From owner-svn-src-all@freebsd.org Tue Jan 14 12:12:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B61B81E817B; Tue, 14 Jan 2020 12:12:45 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: from mail-yw1-f44.google.com (mail-yw1-f44.google.com [209.85.161.44]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xq8s2bSnz440P; Tue, 14 Jan 2020 12:12:45 +0000 (UTC) (envelope-from lwhsu.freebsd@gmail.com) Received: by mail-yw1-f44.google.com with SMTP id v126so8782106ywc.10; Tue, 14 Jan 2020 04:12:45 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=n8T9xQKARHhWMm/neG2g0/AyBBgCELHx7DdT2PvLZxg=; b=lOQOPwQt+pFjw68RxtrHoO6QUVGAqZsinH9iuDu5wHPqlCBIzREQ71FV+pi1ELF7Wi zQ98AA78Vx0rP4Fyan6GdrR3aPjsGCw9btERsRMv7vqecfuQf+Fu6bcCYMGceruN7Q+1 6hOknYNgxZ8glgq9Qc3OqJ47NcSdvpzj4e/5GiLF1GnXJbUcsbF5ToD2+ghe8MWLCNrU QE7u3Y3pQmbNnm+5DQ/Kpv0zG0qVLVGE153AaWWFliWUOj2qffsq2pmvKThpC0zDuOkB EoipsgYns5kDbOq8klpNvVu6lWp6nZtJXqkA0cmxcDQJWVYmrlIISn6vBmB6cA0wgH4A tA1A== X-Gm-Message-State: APjAAAUnNfEoONjfoBntigm0lODiw7W9SmtM6nrMTA61Z2VJsKMB5mit HmXu3bckTUWavxaiexK/5gJJkIHki1og420X5o6wcnPkWBA= X-Google-Smtp-Source: APXvYqz5bu5Gv6X1Vl7qsg0ynjnAuKzBR8oHSg13hiaw4/aaPk3beqbYc4D9mJCEjVPVdFs3GM/8jIxk1kCSecm0xt0= X-Received: by 2002:a25:7255:: with SMTP id n82mr17108050ybc.176.1579003963474; Tue, 14 Jan 2020 04:12:43 -0800 (PST) MIME-Version: 1.0 References: <202001131829.00DITmev016747@repo.freebsd.org> In-Reply-To: <202001131829.00DITmev016747@repo.freebsd.org> From: Li-Wen Hsu Date: Tue, 14 Jan 2020 20:12:31 +0800 Message-ID: Subject: Re: svn commit: r356695 - head/usr.bin/diff To: Mark Johnston Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47xq8s2bSnz440P X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 12:12:45 -0000 On Tue, Jan 14, 2020 at 2:29 AM Mark Johnston wrote: > > Author: markj > Date: Mon Jan 13 18:29:47 2020 > New Revision: 356695 > URL: https://svnweb.freebsd.org/changeset/base/356695 > > Log: > Optimize diff -q. > > Once we know whether the files differ, we don't need to do any further > work. > > PR: 242828 > Submitted by: fehmi noyan isi (original version) > Reviewed by: bapt, kevans > MFC after: 1 week > Differential Revision: https://reviews.freebsd.org/D23152 > > Modified: > head/usr.bin/diff/diffreg.c > > Modified: head/usr.bin/diff/diffreg.c > ============================================================================== > --- head/usr.bin/diff/diffreg.c Mon Jan 13 18:26:27 2020 (r356694) > +++ head/usr.bin/diff/diffreg.c Mon Jan 13 18:29:47 2020 (r356695) > @@ -349,6 +349,11 @@ diffreg(char *file1, char *file2, int flags, int capsi > goto closem; > } > > + if (diff_format == D_BRIEF) { > + rval = D_DIFFER; > + status |= 1; > + goto closem; > + } > if ((flags & D_FORCEASCII) == 0 && > (!asciifile(f1) || !asciifile(f2))) { > rval = D_BINARY; Hi Mark, This one seems breaks test case usr.sbin.etcupdate.fbsdid_test.main: https://ci.freebsd.org/job/FreeBSD-head-amd64-test/13920/testReport/junit/usr.sbin.etcupdate/fbsdid_test/main/ Revert this can get the case pass. Can you check if the code or the test needs to be fixed? Thanks, Li-Wen From owner-svn-src-all@freebsd.org Tue Jan 14 13:20:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E31901EA574; Tue, 14 Jan 2020 13:20:16 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xrfm5hZJz47TP; Tue, 14 Jan 2020 13:20:16 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BEAA41E25E; Tue, 14 Jan 2020 13:20:16 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EDKGAY099172; Tue, 14 Jan 2020 13:20:16 GMT (envelope-from avg@FreeBSD.org) Received: (from avg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EDKG3T099170; Tue, 14 Jan 2020 13:20:16 GMT (envelope-from avg@FreeBSD.org) Message-Id: <202001141320.00EDKG3T099170@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avg set sender to avg@FreeBSD.org using -f From: Andriy Gapon Date: Tue, 14 Jan 2020 13:20:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356730 - head/sys/dev/hyperv/storvsc X-SVN-Group: head X-SVN-Commit-Author: avg X-SVN-Commit-Paths: head/sys/dev/hyperv/storvsc X-SVN-Commit-Revision: 356730 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 13:20:16 -0000 Author: avg Date: Tue Jan 14 13:20:16 2020 New Revision: 356730 URL: https://svnweb.freebsd.org/changeset/base/356730 Log: storvsc: port a Linux patch, properly set residual data length on errors This change is based on Linux commit 40630f462824ee. csio.resid should account for transfer_len only for success and SRB_STATUS_DATA_OVERRUN condition. I am not sure how exactly this change works, but I have a report from a user that they see lots of checksum errors when running a pool scrub concurrently with iozone -l 1 -s 100G. After applying this patch the problem cannot be reproduced. Reviewed by: nobody Sponsored by: CyberSecure Differential Revision: https://reviews.freebsd.org/D22312 Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c head/sys/dev/hyperv/storvsc/hv_vstorage.h Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jan 14 11:33:07 2020 (r356729) +++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c Tue Jan 14 13:20:16 2020 (r356730) @@ -2278,7 +2278,11 @@ storvsc_io_done(struct hv_storvsc_request *reqp) } ccb->csio.scsi_status = (vm_srb->scsi_status & 0xFF); - ccb->csio.resid = ccb->csio.dxfer_len - vm_srb->transfer_len; + if (srb_status == SRB_STATUS_SUCCESS || + srb_status == SRB_STATUS_DATA_OVERRUN) + ccb->csio.resid = ccb->csio.dxfer_len - vm_srb->transfer_len; + else + ccb->csio.resid = ccb->csio.dxfer_len; if (reqp->sense_info_len != 0) { csio->sense_resid = csio->sense_len - reqp->sense_info_len; Modified: head/sys/dev/hyperv/storvsc/hv_vstorage.h ============================================================================== --- head/sys/dev/hyperv/storvsc/hv_vstorage.h Tue Jan 14 11:33:07 2020 (r356729) +++ head/sys/dev/hyperv/storvsc/hv_vstorage.h Tue Jan 14 13:20:16 2020 (r356730) @@ -245,7 +245,8 @@ struct vstor_packet { #define SRB_STATUS_SUCCESS 0x01 #define SRB_STATUS_ABORTED 0x02 #define SRB_STATUS_ERROR 0x04 -#define SRB_STATUS_INVALID_LUN 0x20 +#define SRB_STATUS_DATA_OVERRUN 0x12 +#define SRB_STATUS_INVALID_LUN 0x20 /** * SRB Status Masks (can be combined with above status codes) */ From owner-svn-src-all@freebsd.org Tue Jan 14 14:05:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 694791EBFA8; Tue, 14 Jan 2020 14:05:35 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: from mail-qv1-f47.google.com (mail-qv1-f47.google.com [209.85.219.47]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xsg3284Yz4BR4; Tue, 14 Jan 2020 14:05:35 +0000 (UTC) (envelope-from byond.lenox@gmail.com) Received: by mail-qv1-f47.google.com with SMTP id p2so5681069qvo.10; Tue, 14 Jan 2020 06:05:34 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=zuTvbQJtwlE01s3PWNmAfORT7vTg7RAcdTuZGUrpN/o=; b=o8E9YWHUUDm1aYqvZeU/RvKcP0VFCIaMjJ1Y2y4Dv4f915Ds6OaLsjYkPcVVAlqY0s k2XSqoLRZW07PTWC8wex6l+I5yvZFpvQ2/VdRjQxuALAH7LtOHeGje6dfhqkDv6tu+yC d9tPBDMMzQJ48qw+6ioOCneQV78/OR4PuUZSDc97M1XbDydyVdBkH1LolyT32K2Zr9iS 7nobMQfkuRs5/CYvmKtgIbJ+N+IabImNLhRJmD6B2ty9OOuzSULDfn9Fw1Ds0WDUsgSm KXLzaOBdT4gswiAidEQV+vMkcqGvfoCrhp6RXnPA7aIM1N8s+Go0rZ19vPdnOcWW8Oiz l5EQ== X-Gm-Message-State: APjAAAXQAZSj2iCUh8FWiR1YkJIx6QOgWUIKP1I3CYRBW9VHXBtv3x6U +gxvg2d0E2LVSOcVmM3022qD3v/a X-Google-Smtp-Source: APXvYqyP09ddqDxZHYC+uW6/FCmSgENpYhwspg+aD4T36VeUcUXTYHS2smiTgNvzln92sJPEU4l1iw== X-Received: by 2002:a05:6214:1090:: with SMTP id o16mr21105151qvr.105.1579010733962; Tue, 14 Jan 2020 06:05:33 -0800 (PST) Received: from mail-qv1-f49.google.com (mail-qv1-f49.google.com. [209.85.219.49]) by smtp.gmail.com with ESMTPSA id v7sm7675852qtk.89.2020.01.14.06.05.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Jan 2020 06:05:33 -0800 (PST) Received: by mail-qv1-f49.google.com with SMTP id o18so5690652qvf.1; Tue, 14 Jan 2020 06:05:33 -0800 (PST) X-Received: by 2002:ad4:46e4:: with SMTP id h4mr21355889qvw.181.1579010733459; Tue, 14 Jan 2020 06:05:33 -0800 (PST) MIME-Version: 1.0 References: <202001131829.00DITmev016747@repo.freebsd.org> In-Reply-To: From: Kyle Evans Date: Tue, 14 Jan 2020 08:05:21 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356695 - head/usr.bin/diff To: Li-Wen Hsu Cc: Mark Johnston , src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47xsg3284Yz4BR4 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 14:05:35 -0000 On Tue, Jan 14, 2020 at 6:12 AM Li-Wen Hsu wrote: > > On Tue, Jan 14, 2020 at 2:29 AM Mark Johnston wrote: > > > > Author: markj > > Date: Mon Jan 13 18:29:47 2020 > > New Revision: 356695 > > URL: https://svnweb.freebsd.org/changeset/base/356695 > > > > Log: > > Optimize diff -q. > > > > Once we know whether the files differ, we don't need to do any further > > work. > > > > PR: 242828 > > Submitted by: fehmi noyan isi (original version) > > Reviewed by: bapt, kevans > > MFC after: 1 week > > Differential Revision: https://reviews.freebsd.org/D23152 > > > > Modified: > > head/usr.bin/diff/diffreg.c > > > > Modified: head/usr.bin/diff/diffreg.c > > ============================================================================== > > --- head/usr.bin/diff/diffreg.c Mon Jan 13 18:26:27 2020 (r356694) > > +++ head/usr.bin/diff/diffreg.c Mon Jan 13 18:29:47 2020 (r356695) > > @@ -349,6 +349,11 @@ diffreg(char *file1, char *file2, int flags, int capsi > > goto closem; > > } > > > > + if (diff_format == D_BRIEF) { > > + rval = D_DIFFER; > > + status |= 1; > > + goto closem; > > + } > > if ((flags & D_FORCEASCII) == 0 && > > (!asciifile(f1) || !asciifile(f2))) { > > rval = D_BINARY; > > Hi Mark, > > This one seems breaks test case usr.sbin.etcupdate.fbsdid_test.main: > > https://ci.freebsd.org/job/FreeBSD-head-amd64-test/13920/testReport/junit/usr.sbin.etcupdate/fbsdid_test/main/ > > Revert this can get the case pass. Can you check if the code or the > test needs to be fixed? > Whoops... that was a bit of an oversight. We can only short-circuit if ignore_pats == NULL, otherwise we need to regress back to doing line-by-line comparison. That should still see a benefit for the majority of cases, though, I would think. From owner-svn-src-all@freebsd.org Tue Jan 14 15:35:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 37A3F1EEC00; Tue, 14 Jan 2020 15:35:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xvfJ0gNCz4Hgk; Tue, 14 Jan 2020 15:35:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0DE7B1FD0C; Tue, 14 Jan 2020 15:35:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EFZ3F2084315; Tue, 14 Jan 2020 15:35:03 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EFZ3PK084314; Tue, 14 Jan 2020 15:35:03 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001141535.00EFZ3PK084314@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Tue, 14 Jan 2020 15:35:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356731 - head/usr.bin/diff X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/usr.bin/diff X-SVN-Commit-Revision: 356731 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 15:35:04 -0000 Author: markj Date: Tue Jan 14 15:35:03 2020 New Revision: 356731 URL: https://svnweb.freebsd.org/changeset/base/356731 Log: Do not skip line-by-line comparison if -q and -I are specified. This fixes a regression from r356695. Submitted by: kevans Reported by: Jenkins via lwhsu MFC after: 6 days Modified: head/usr.bin/diff/diffreg.c Modified: head/usr.bin/diff/diffreg.c ============================================================================== --- head/usr.bin/diff/diffreg.c Tue Jan 14 13:20:16 2020 (r356730) +++ head/usr.bin/diff/diffreg.c Tue Jan 14 15:35:03 2020 (r356731) @@ -349,7 +349,7 @@ diffreg(char *file1, char *file2, int flags, int capsi goto closem; } - if (diff_format == D_BRIEF) { + if (diff_format == D_BRIEF && ignore_pats == NULL) { rval = D_DIFFER; status |= 1; goto closem; From owner-svn-src-all@freebsd.org Tue Jan 14 15:35:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A07721EECA5; Tue, 14 Jan 2020 15:35:32 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qv1-xf36.google.com (mail-qv1-xf36.google.com [IPv6:2607:f8b0:4864:20::f36]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xvfq4VfDz4Hpc; Tue, 14 Jan 2020 15:35:31 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: by mail-qv1-xf36.google.com with SMTP id z3so5845529qvn.0; Tue, 14 Jan 2020 07:35:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=LLenMMasqN5nFn/F8o6TkbHL3vuiWDS67uq6OHOyrQM=; b=nKTwPMcAF5U+pArVC+H1p3U+3J5QSSzKTJtvk9cPymvyxRr4uzZZC0/JnlrJO1a3nC eWlniZpT3SwxeMEhdebp5phuEMZJghGa5PfweaP1Rje1Jvbntq3W9TyyTaSA1rE+Ds9o 4SyZT4ezASwIfAQLhQDKZFXEm72FZPgPqdoDtBoNpKIzqCFGSgmB4RRc5ZJFXixihrR+ NXZnqqW8gqx/REgpc6AJU9nBZ+2HAs4Oxa9N0iYHB+hruluyXPnM8O/nPoFZwc2vQOz/ ykroH+5lxUaPuOxO7HaAp8fnQixISXJQfXkJvTPxvk04EQWn8Pzr61JcA/V7Ouybp3XA aHkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=LLenMMasqN5nFn/F8o6TkbHL3vuiWDS67uq6OHOyrQM=; b=AOmffEs84BoKIaONXEOif8Yw3xhk7+alBJG8qFOe3w8K+a2Xn5j03kZzz2yMuxBu2/ K5ZEzbqY1iLAmt283lCApIDPjjxVOfwUqKS+aBVRac/7XoWxzrJ6t0+TpkG/0uJAe+0c gzvcY1weH+OSVpAoYcpIP7f+qJFapDRp2YkKWWiV6WTl54r8EJZrpfFtDnTBDf8ZnBQC Y2X+amP79v28w0adaIakzEVK7KiD7fDZyzhKOH9QBSmyjOUUv4JIIEeXdbUUr8X6HONB gzdPwdWjr0edDfbdSfTF95nUtKJnLOamjEr36drs47QGISOar/SDWktGTdSP4i2FOVLr Zbow== X-Gm-Message-State: APjAAAUkLDVqVmxyfjx2sXomBUZKp1BWrmE2zAEkzU3jn7+3HYmge9Gl 80UVflBgyXIvOI690/fXaqO05hfSJ2E= X-Google-Smtp-Source: APXvYqyaoh69NLgc4sDuJacsafSo5XRvUhU3Rad5ZyGOE7SqxSRigMRa22IWH09Ek0Zxr5OVGdaRGA== X-Received: by 2002:ad4:4e6b:: with SMTP id ec11mr21211966qvb.149.1579016125285; Tue, 14 Jan 2020 07:35:25 -0800 (PST) Received: from raichu (toroon0560w-lp130-05-69-158-183-252.dsl.bell.ca. [69.158.183.252]) by smtp.gmail.com with ESMTPSA id d5sm6828765qke.130.2020.01.14.07.35.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Jan 2020 07:35:24 -0800 (PST) Sender: Mark Johnston Date: Tue, 14 Jan 2020 10:35:22 -0500 From: Mark Johnston To: Kyle Evans Cc: Li-Wen Hsu , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r356695 - head/usr.bin/diff Message-ID: <20200114153522.GC46791@raichu> References: <202001131829.00DITmev016747@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 47xvfq4VfDz4Hpc X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=nKTwPMcA; dmarc=none; spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::f36 as permitted sender) smtp.mailfrom=markjdb@gmail.com X-Spamd-Result: default: False [-3.83 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; RCPT_COUNT_FIVE(0.00)[5]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; IP_SCORE(-2.13)[ip: (-6.69), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; MIME_TRACE(0.00)[0:+]; MID_RHS_NOT_FQDN(0.50)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 15:35:32 -0000 On Tue, Jan 14, 2020 at 08:05:21AM -0600, Kyle Evans wrote: > On Tue, Jan 14, 2020 at 6:12 AM Li-Wen Hsu wrote: > > > > On Tue, Jan 14, 2020 at 2:29 AM Mark Johnston wrote: > > > > > > Author: markj > > > Date: Mon Jan 13 18:29:47 2020 > > > New Revision: 356695 > > > URL: https://svnweb.freebsd.org/changeset/base/356695 > > > > > > Log: > > > Optimize diff -q. > > > > > > Once we know whether the files differ, we don't need to do any further > > > work. > > > > > > PR: 242828 > > > Submitted by: fehmi noyan isi (original version) > > > Reviewed by: bapt, kevans > > > MFC after: 1 week > > > Differential Revision: https://reviews.freebsd.org/D23152 > > > > > > Modified: > > > head/usr.bin/diff/diffreg.c > > > > > > Modified: head/usr.bin/diff/diffreg.c > > > ============================================================================== > > > --- head/usr.bin/diff/diffreg.c Mon Jan 13 18:26:27 2020 (r356694) > > > +++ head/usr.bin/diff/diffreg.c Mon Jan 13 18:29:47 2020 (r356695) > > > @@ -349,6 +349,11 @@ diffreg(char *file1, char *file2, int flags, int capsi > > > goto closem; > > > } > > > > > > + if (diff_format == D_BRIEF) { > > > + rval = D_DIFFER; > > > + status |= 1; > > > + goto closem; > > > + } > > > if ((flags & D_FORCEASCII) == 0 && > > > (!asciifile(f1) || !asciifile(f2))) { > > > rval = D_BINARY; > > > > Hi Mark, > > > > This one seems breaks test case usr.sbin.etcupdate.fbsdid_test.main: > > > > https://ci.freebsd.org/job/FreeBSD-head-amd64-test/13920/testReport/junit/usr.sbin.etcupdate/fbsdid_test/main/ > > > > Revert this can get the case pass. Can you check if the code or the > > test needs to be fixed? > > > > Whoops... that was a bit of an oversight. We can only short-circuit if > ignore_pats == NULL, otherwise we need to regress back to doing > line-by-line comparison. That should still see a benefit for the > majority of cases, though, I would think. Thanks, I tested and committed that change. From owner-svn-src-all@freebsd.org Tue Jan 14 15:44:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7C9731EEF8C for ; Tue, 14 Jan 2020 15:44:34 +0000 (UTC) (envelope-from ian@freebsd.org) Received: from outbound2m.ore.mailhop.org (outbound2m.ore.mailhop.org [54.149.155.156]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47xvsG0hGwz4JFG for ; Tue, 14 Jan 2020 15:44:33 +0000 (UTC) (envelope-from ian@freebsd.org) ARC-Seal: i=1; a=rsa-sha256; t=1579016672; cv=none; d=outbound.mailhop.org; s=arc-outbound20181012; b=ttvMjIIRe5uf+GtpH08Jh/PHJLjyoFDhDleMduEQ09jAtMKVcDNate+ENF3ZweiNneeuEwChol8Om A2v6+Hyh4fkWwpcfGLssYVhzskTk/awRbAzKWv3O00xQ26KBmtZJlfRI3UzqqayLIj02PAjA6EppSe 7tGPJmwbzwUam+XoabPdwHJn113NFhqXLQ01lOFDfw6o4eCkkxW1ng5suowElRDuCNc53DBNDULxxJ iPg8+XBU/jbuL6M3c5SO0SBP3/Aa1h4ndiaa32KO8289ql2or11KEMO11gMT37oEmQHH89Kyhak6gE 8tbXzPaAudsNHzzvntELpq41JrHbz9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=arc-outbound20181012; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:dkim-signature:from; bh=uWPU/ke/yRe+PaTbSqTFMOy7e1Jcz6ml0LKeETUDQiw=; b=bFdL+AZx29IzzKZ5R/aMlrl7GvSzpd/67fL34IqrcZLQKo4/59TK1fdcwXXDN9NJoCnGEGzce7X1k l1uPpNd+oMc9HYieJhBodsk3w7h16evq568efEEpiALjjfW5BVd/nzh7jLXGZRH6jcXBz5zLntEarb hswe05EcWStJRv5wqM9/lzy/uJ0YGxo7hm7zNQrmYV9H12hS2IlZOGvg30p90rUp/ILoWqwpIEgXCn znHPq9qmff9cx6xYCdBhFUIh3ZzGPWo5mXBFmC7DacBcKeO0SkCT7O+SO6zf7BbOcahgLzgnH4bTD7 OiYB/P8tqw02ub7MwulSUbiwSX05swg== ARC-Authentication-Results: i=1; outbound4.ore.mailhop.org; spf=softfail smtp.mailfrom=freebsd.org smtp.remote-ip=67.177.211.60; dmarc=none header.from=freebsd.org; arc=none header.oldest-pass=0; DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outbound.mailhop.org; s=dkim-high; h=content-transfer-encoding:mime-version:content-type:references:in-reply-to: date:to:from:subject:message-id:from; bh=uWPU/ke/yRe+PaTbSqTFMOy7e1Jcz6ml0LKeETUDQiw=; b=qBWHTdy51luAAK8xXFc/KI3Y8M374B38mUB/W/idxwsNs6DQl5K2ojMEPbADm34/zCxOlutqn1EmV oWv00vv8H+Hjyj/2BPlTERFQxAcFidOxQ1GByQNPXf258DHrDg54+zxwFpuKHWY+d0VTsTBwgk9xJ/ UjkbGZyKnaTSjcsOPxGKgL+We6v3yn/n3W0vXJuE1aDkvbQ0KhiC7mi1IgCTbVyU/O2CpHuuPePeyp aQX7xANgv/UxyykAjvrdURTqtzb4vI81PpQt8LLguCZWI0GaXvwmX0gexLrNApXDEuSSAvOJFltGdv wT7oD2Wac5hCXamfq0Q64gcK6hNeHVA== X-MHO-RoutePath: aGlwcGll X-MHO-User: c07b120e-36e4-11ea-9eb3-25e2dfa9fa8d X-Report-Abuse-To: https://support.duocircle.com/support/solutions/articles/5000540958-duocircle-standard-smtp-abuse-information X-Originating-IP: 67.177.211.60 X-Mail-Handler: DuoCircle Outbound SMTP Received: from ilsoft.org (unknown [67.177.211.60]) by outbound4.ore.mailhop.org (Halon) with ESMTPSA id c07b120e-36e4-11ea-9eb3-25e2dfa9fa8d; Tue, 14 Jan 2020 15:44:30 +0000 (UTC) Received: from rev (rev [172.22.42.240]) by ilsoft.org (8.15.2/8.15.2) with ESMTP id 00EFiTN9058752; Tue, 14 Jan 2020 08:44:29 -0700 (MST) (envelope-from ian@freebsd.org) Message-ID: <24cb346dd9f6de0f094dfa15c592d211e0d8f4a1.camel@freebsd.org> Subject: Re: svn commit: r356725 - head/usr.bin/diff From: Ian Lepore To: Baptiste Daroussin , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Date: Tue, 14 Jan 2020 08:44:29 -0700 In-Reply-To: <202001140822.00E8MS1b024516@repo.freebsd.org> References: <202001140822.00E8MS1b024516@repo.freebsd.org> Content-Type: text/plain; charset="ASCII" X-Mailer: Evolution 3.28.5 FreeBSD GNOME Team Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47xvsG0hGwz4JFG X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.98 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.99)[-0.986,0]; NEURAL_HAM_LONG(-0.99)[-0.991,0]; ASN(0.00)[asn:16509, ipnet:54.148.0.0/15, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 15:44:34 -0000 On Tue, 2020-01-14 at 08:22 +0000, Baptiste Daroussin wrote: > Author: bapt > Date: Tue Jan 14 08:22:28 2020 > New Revision: 356725 > URL: https://svnweb.freebsd.org/changeset/base/356725 > > Log: > When system calls indicate an error they return -1, not some > arbitrary > value < 0. errno is only updated in this case. > What's the point of these changes, other than almost certainly leading to worse code generation? In most instruction sets, you can test for a value < 0 without using any instructions, you only need to examine the condition flags after loading the value. To compare equal to -1 typically requires at least 1 extra instruction, and on risc architectures typically at least two extra (load -1 to a register then compare). -- Ian > Obtained from: OpenBSD > MFC after: 3 days > > Modified: > head/usr.bin/diff/diff.c > head/usr.bin/diff/diffreg.c > > Modified: head/usr.bin/diff/diff.c > ===================================================================== > ========= > --- head/usr.bin/diff/diff.c Tue Jan 14 08:18:04 2020 (r356724) > +++ head/usr.bin/diff/diff.c Tue Jan 14 08:22:28 2020 (r356725) > @@ -1,4 +1,4 @@ > -/* $OpenBSD: diff.c,v 1.65 2015/12/29 19:04:46 gsoares Exp $ */ > +/* $OpenBSD: diff.c,v 1.67 2019/06/28 13:35:00 deraadt Exp $ */ > > /* > * Copyright (c) 2003 Todd C. Miller > @@ -316,12 +316,12 @@ main(int argc, char **argv) > } else { > if (S_ISDIR(stb1.st_mode)) { > argv[0] = splice(argv[0], argv[1]); > - if (stat(argv[0], &stb1) < 0) > + if (stat(argv[0], &stb1) == -1) > err(2, "%s", argv[0]); > } > if (S_ISDIR(stb2.st_mode)) { > argv[1] = splice(argv[1], argv[0]); > - if (stat(argv[1], &stb2) < 0) > + if (stat(argv[1], &stb2) == -1) > err(2, "%s", argv[1]); > } > print_status(diffreg(argv[0], argv[1], dflags, 1), > argv[0], > > Modified: head/usr.bin/diff/diffreg.c > ===================================================================== > ========= > --- head/usr.bin/diff/diffreg.c Tue Jan 14 08:18:04 2020 (r356 > 724) > +++ head/usr.bin/diff/diffreg.c Tue Jan 14 08:22:28 2020 (r356 > 725) > @@ -1,4 +1,4 @@ > -/* $OpenBSD: diffreg.c,v 1.92 2019/06/28 05:35:34 deraadt Exp $ > */ > +/* $OpenBSD: diffreg.c,v 1.93 2019/06/28 13:35:00 deraadt Exp $ > */ > > /*- > * SPDX-License-Identifier: BSD-4-Clause > @@ -277,7 +277,7 @@ diffreg(char *file1, char *file2, int flags, int > capsi > else { > if (!S_ISREG(stb1.st_mode)) { > if ((f1 = opentemp(file1)) == NULL || > - fstat(fileno(f1), &stb1) < 0) { > + fstat(fileno(f1), &stb1) == -1) { > warn("%s", file1); > status |= 2; > goto closem; > @@ -298,7 +298,7 @@ diffreg(char *file1, char *file2, int flags, int > capsi > else { > if (!S_ISREG(stb2.st_mode)) { > if ((f2 = opentemp(file2)) == NULL || > - fstat(fileno(f2), &stb2) < 0) { > + fstat(fileno(f2), &stb2) == -1) { > warn("%s", file2); > status |= 2; > goto closem; > @@ -446,7 +446,7 @@ opentemp(const char *f) > > if (strcmp(f, "-") == 0) > ifd = STDIN_FILENO; > - else if ((ifd = open(f, O_RDONLY, 0644)) < 0) > + else if ((ifd = open(f, O_RDONLY, 0644)) == -1) > return (NULL); > > (void)strlcpy(tempfile, _PATH_TMP "/diff.XXXXXXXX", > sizeof(tempfile)); > @@ -942,7 +942,7 @@ preadline(int fd, size_t rlen, off_t off) > ssize_t nr; > > line = xmalloc(rlen + 1); > - if ((nr = pread(fd, line, rlen, off)) < 0) > + if ((nr = pread(fd, line, rlen, off)) == -1) > err(2, "preadline"); > if (nr > 0 && line[nr-1] == '\n') > nr--; From owner-svn-src-all@freebsd.org Tue Jan 14 16:59:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 27E181F0D31; Tue, 14 Jan 2020 16:59:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xxWZ0Gfbz4Pkr; Tue, 14 Jan 2020 16:59:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04A3E20C14; Tue, 14 Jan 2020 16:59:22 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EGxLNP036081; Tue, 14 Jan 2020 16:59:21 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EGxLQv036080; Tue, 14 Jan 2020 16:59:21 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001141659.00EGxLQv036080@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 14 Jan 2020 16:59:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356732 - head/tools/build/options X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/build/options X-SVN-Commit-Revision: 356732 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 16:59:22 -0000 Author: emaste Date: Tue Jan 14 16:59:21 2020 New Revision: 356732 URL: https://svnweb.freebsd.org/changeset/base/356732 Log: Update WITH_AMD description reflecting upcoming removal In-tree amd(8) is deprecated; update WITH_AMD's description to make this more clear. Sponsored by: The FreeBSD Foundation Modified: head/tools/build/options/WITH_AMD Modified: head/tools/build/options/WITH_AMD ============================================================================== --- head/tools/build/options/WITH_AMD Tue Jan 14 15:35:03 2020 (r356731) +++ head/tools/build/options/WITH_AMD Tue Jan 14 16:59:21 2020 (r356732) @@ -1,4 +1,7 @@ .\" $FreeBSD$ -Set to build -.Xr amd 8 , -and related programs. +Set to build the legacy +.Xr amd 8 +automount daemon and related programs. +Note that +.Xr autofs 5 +is the preferred automount technique. From owner-svn-src-all@freebsd.org Tue Jan 14 17:10:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B290A1F13E5; Tue, 14 Jan 2020 17:10:12 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xxm43zsTz4QRC; Tue, 14 Jan 2020 17:10:12 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: from ivaldir.etoilebsd.net (etoilebsd.net [178.32.217.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: bapt) by smtp.freebsd.org (Postfix) with ESMTPSA id 6C2A9D761; Tue, 14 Jan 2020 17:10:12 +0000 (UTC) (envelope-from bapt@FreeBSD.org) Received: by ivaldir.etoilebsd.net (Postfix, from userid 1001) id 896D8EB5DF; Tue, 14 Jan 2020 18:10:10 +0100 (CET) Date: Tue, 14 Jan 2020 18:10:10 +0100 From: Baptiste Daroussin To: Ian Lepore Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356725 - head/usr.bin/diff Message-ID: <20200114171010.zdxpwpawn7mogaqy@ivaldir.net> References: <202001140822.00E8MS1b024516@repo.freebsd.org> <24cb346dd9f6de0f094dfa15c592d211e0d8f4a1.camel@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="xijlhnbavvbfggyk" Content-Disposition: inline In-Reply-To: <24cb346dd9f6de0f094dfa15c592d211e0d8f4a1.camel@freebsd.org> X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 17:10:12 -0000 --xijlhnbavvbfggyk Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jan 14, 2020 at 08:44:29AM -0700, Ian Lepore wrote: > On Tue, 2020-01-14 at 08:22 +0000, Baptiste Daroussin wrote: > > Author: bapt > > Date: Tue Jan 14 08:22:28 2020 > > New Revision: 356725 > > URL: https://svnweb.freebsd.org/changeset/base/356725 > >=20 > > Log: > > When system calls indicate an error they return -1, not some > > arbitrary > > value < 0. errno is only updated in this case. > > =20 >=20 > What's the point of these changes, other than almost certainly leading > to worse code generation? >=20 > In most instruction sets, you can test for a value < 0 without using > any instructions, you only need to examine the condition flags after > loading the value. To compare equal to -1 typically requires at least > 1 extra instruction, and on risc architectures typically at least two > extra (load -1 to a register then compare). >=20 our diff has forked from the OpenBSD one. The goal of those patches is to k= eep in sync code that is still close to the original OpenBSD one as much as possible. Best regards, Bapt --xijlhnbavvbfggyk Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEgOTj3suS2urGXVU3Y4mL3PG3PloFAl4d9e8ACgkQY4mL3PG3 PloJJhAAq9sd849eoyglZw4YMZ1dJ/YOeS6iz0fICptfdUyBT0w69AUsnR2ijFuR GREfAhsqqHrO5DK/xkMHWAldKpWQohTxN1y5qWtPrNy2nu0U7NthxZDM9VRGOhJ5 tk/ZbYPAy/YRG22fFvtaJqBnmRVAsnZFyzZmleDKWPJ3qEGoNiGXCGFFgd34BKaK A5LbjCswYagnySWz/O4rO8RS1wwgdwd6bkfF0Gb1jCppbv1TnNX720BP1+rS6dpk mXszdl2hTBEIQ+DlVYjALwtt2ED8KUmYZYI8LSgN+1rCeCi7dPsChaetrjeRE9NG tSHnEtblGMTWOjvXSxJS7LaHtsZ0Np4RzEJHdwc/Wmy3RijiU/7pEJ9/ldYeptuN WBQPUKHqgzswBW8jJfyog5Q8uevh2NG1BiZL6uFoKwd8Oc4YEB1+j0EypJbus2xo wcwJQcrbMxHwdtQA6v3IsKZGlpSYvEca7aZ4gTyk1AIC374ODfdR9B2DDKj8dr43 G2tGhOi/KDZtGeLWJGTz1KmHOlJFlG5YEH8B/0zP1069LvSbcJ1L525O7lIlvu0p r/1aJFoZ+AiFd1kGhJlgc8O1Xhide4TxGnI7rcZRdpdJVXCvMJET3gTeYSrJT4Ar lh+W8XCEYsaugjECV18+Mt7dedleCyeQ3F1PhG2ocVM7knOH2f8= =7R7p -----END PGP SIGNATURE----- --xijlhnbavvbfggyk-- From owner-svn-src-all@freebsd.org Tue Jan 14 17:35:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6C5851F1C57; Tue, 14 Jan 2020 17:35:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xyKM2DbJz4Rm2; Tue, 14 Jan 2020 17:35:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 434F42135F; Tue, 14 Jan 2020 17:35:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EHZZdn059812; Tue, 14 Jan 2020 17:35:35 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EHZYDG059810; Tue, 14 Jan 2020 17:35:34 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001141735.00EHZYDG059810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 14 Jan 2020 17:35:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356733 - head/tools/build/options X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/build/options X-SVN-Commit-Revision: 356733 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 17:35:35 -0000 Author: emaste Date: Tue Jan 14 17:35:34 2020 New Revision: 356733 URL: https://svnweb.freebsd.org/changeset/base/356733 Log: Update WITH_/WITHOUT_CLANG_IS_CC descriptions Describe /usr/bin/cc etc. as links to the compiler, and don't conflate WITHOUT_CLANG_IS_CC with installing GCC. Leave a reference to WITH_GCC and WITHOUT_CLANG_IS_CC installing links to GCC, although this will be removed in ~1.5 months when GCC 4.2.1 is removed from the tree. Sponsored by: The FreeBSD Foundation Modified: head/tools/build/options/WITHOUT_CLANG_IS_CC head/tools/build/options/WITH_CLANG_IS_CC Modified: head/tools/build/options/WITHOUT_CLANG_IS_CC ============================================================================== --- head/tools/build/options/WITHOUT_CLANG_IS_CC Tue Jan 14 16:59:21 2020 (r356732) +++ head/tools/build/options/WITHOUT_CLANG_IS_CC Tue Jan 14 17:35:34 2020 (r356733) @@ -1,6 +1,9 @@ .\" $FreeBSD$ -Set to install the GCC compiler as +Do not install links to the Clang C/C++ compiler as .Pa /usr/bin/cc , .Pa /usr/bin/c++ and .Pa /usr/bin/cpp . +If +.Va WITH_GCC +is set then links to the GCC C/C++ compiler will be installed instead. Modified: head/tools/build/options/WITH_CLANG_IS_CC ============================================================================== --- head/tools/build/options/WITH_CLANG_IS_CC Tue Jan 14 16:59:21 2020 (r356732) +++ head/tools/build/options/WITH_CLANG_IS_CC Tue Jan 14 17:35:34 2020 (r356733) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -Set to install the Clang C/C++ compiler as +Install links to the Clang C/C++ compiler as .Pa /usr/bin/cc , .Pa /usr/bin/c++ and From owner-svn-src-all@freebsd.org Tue Jan 14 17:38:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2F97B1F1D08; Tue, 14 Jan 2020 17:38:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xyNq0Rw6z4Rwp; Tue, 14 Jan 2020 17:38:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 065C12136B; Tue, 14 Jan 2020 17:38:35 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EHcYSI059979; Tue, 14 Jan 2020 17:38:34 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EHcY6p059978; Tue, 14 Jan 2020 17:38:34 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001141738.00EHcY6p059978@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 14 Jan 2020 17:38:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356734 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356734 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 17:38:35 -0000 Author: emaste Date: Tue Jan 14 17:38:34 2020 New Revision: 356734 URL: https://svnweb.freebsd.org/changeset/base/356734 Log: src.conf.5: regen after option description updates Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Tue Jan 14 17:35:34 2020 (r356733) +++ head/share/man/man5/src.conf.5 Tue Jan 14 17:38:34 2020 (r356734) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 13, 2020 +.Dd January 14, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -101,9 +101,12 @@ Set to not build .Xr acpidump 8 and related programs. .It Va WITH_AMD -Set to build -.Xr amd 8 , -and related programs. +Set to build the legacy +.Xr amd 8 +automount daemon and related programs. +Note that +.Xr autofs 5 +is the preferred automount technique. .It Va WITHOUT_APM Set to not build .Xr apm 8 , @@ -410,16 +413,19 @@ Clang C/C++ compiler. This is a default setting on amd64/amd64, arm/armv6, arm/armv7, arm64/aarch64, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64, riscv/riscv64 and riscv/riscv64sf. .It Va WITHOUT_CLANG_IS_CC -Set to install the GCC compiler as +Do not install links to the Clang C/C++ compiler as .Pa /usr/bin/cc , .Pa /usr/bin/c++ and .Pa /usr/bin/cpp . +If +.Va WITH_GCC +is set then links to the GCC C/C++ compiler will be installed instead. .Pp This is a default setting on mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf and sparc64/sparc64. .It Va WITH_CLANG_IS_CC -Set to install the Clang C/C++ compiler as +Install links to the Clang C/C++ compiler as .Pa /usr/bin/cc , .Pa /usr/bin/c++ and From owner-svn-src-all@freebsd.org Tue Jan 14 17:50:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4FD271F1EF6; Tue, 14 Jan 2020 17:50:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xyfH14zkz4SPh; Tue, 14 Jan 2020 17:50:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1C1A721566; Tue, 14 Jan 2020 17:50:15 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EHoECw066119; Tue, 14 Jan 2020 17:50:14 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EHoDid066113; Tue, 14 Jan 2020 17:50:13 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001141750.00EHoDid066113@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Tue, 14 Jan 2020 17:50:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356735 - in head: lib/csu/tests/dso lib/libc++ lib/libcxxrt lib/libgcc_eh lib/libpmc share/mk X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head: lib/csu/tests/dso lib/libc++ lib/libcxxrt lib/libgcc_eh lib/libpmc share/mk X-SVN-Commit-Revision: 356735 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 17:50:15 -0000 Author: kevans Date: Tue Jan 14 17:50:13 2020 New Revision: 356735 URL: https://svnweb.freebsd.org/changeset/base/356735 Log: Revert r353140: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around arichardson has an actual fix for the same issue that this was working around; given that we don't build with llvm today, go ahead and revert the workaround in advance. Modified: head/lib/csu/tests/dso/Makefile head/lib/libc++/Makefile head/lib/libcxxrt/Makefile head/lib/libgcc_eh/Makefile.inc head/lib/libpmc/Makefile head/share/mk/bsd.lib.mk Modified: head/lib/csu/tests/dso/Makefile ============================================================================== --- head/lib/csu/tests/dso/Makefile Tue Jan 14 17:38:34 2020 (r356734) +++ head/lib/csu/tests/dso/Makefile Tue Jan 14 17:50:13 2020 (r356735) @@ -5,8 +5,6 @@ SHLIB= h_csu SHLIB_NAME= libh_csu.so SHLIB_MAJOR= 1 -ALLOW_MIPS_SHARED_TEXTREL= - WITHOUT_STATIC= WITHOUT_PROFILE= WITHOUT_PIC= Modified: head/lib/libc++/Makefile ============================================================================== --- head/lib/libc++/Makefile Tue Jan 14 17:38:34 2020 (r356734) +++ head/lib/libc++/Makefile Tue Jan 14 17:50:13 2020 (r356735) @@ -11,8 +11,6 @@ CXXINCLUDEDIR= ${INCLUDEDIR}/c++/v${SHLIB_MAJOR} STATIC_CXXFLAGS+= -mlong-calls .endif -ALLOW_MIPS_SHARED_TEXTREL= - .PATH: ${SRCDIR} LIB= c++ Modified: head/lib/libcxxrt/Makefile ============================================================================== --- head/lib/libcxxrt/Makefile Tue Jan 14 17:38:34 2020 (r356734) +++ head/lib/libcxxrt/Makefile Tue Jan 14 17:50:13 2020 (r356735) @@ -5,7 +5,6 @@ SRCDIR= ${SRCTOP}/contrib/libcxxrt SHLIB_MAJOR= 1 SHLIBDIR?= /lib -ALLOW_MIPS_SHARED_TEXTREL= .PATH: ${SRCDIR} Modified: head/lib/libgcc_eh/Makefile.inc ============================================================================== --- head/lib/libgcc_eh/Makefile.inc Tue Jan 14 17:38:34 2020 (r356734) +++ head/lib/libgcc_eh/Makefile.inc Tue Jan 14 17:50:13 2020 (r356735) @@ -6,8 +6,6 @@ UNWINDSRCDIR= ${SRCTOP}/contrib/llvm-project/libunwind STATIC_CFLAGS+=${PICFLAG} -fvisibility=hidden -DVISIBILITY_HIDDEN -ALLOW_MIPS_SHARED_TEXTREL= - .PATH: ${COMPILERRTDIR}/lib/builtins .PATH: ${UNWINDSRCDIR} SRCS_EXC+= gcc_personality_v0.c Modified: head/lib/libpmc/Makefile ============================================================================== --- head/lib/libpmc/Makefile Tue Jan 14 17:38:34 2020 (r356734) +++ head/lib/libpmc/Makefile Tue Jan 14 17:50:13 2020 (r356735) @@ -5,8 +5,6 @@ LIB= pmc SRCS= libpmc.c pmclog.c libpmc_pmu_util.c libpmc_json.cc INCS= pmc.h pmclog.h pmcformat.h -ALLOW_MIPS_SHARED_TEXTREL= - .if ${MACHINE_ARCH} == "aarch64" || ${MACHINE_ARCH} == "amd64" || \ ${MACHINE_ARCH} == "i386" Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Tue Jan 14 17:38:34 2020 (r356734) +++ head/share/mk/bsd.lib.mk Tue Jan 14 17:50:13 2020 (r356735) @@ -291,10 +291,6 @@ CLEANFILES+= ${SOBJS} .if defined(SHLIB_NAME) _LIBS+= ${SHLIB_NAME} -.if ${CFLAGS:M-fexceptions} || defined(SHLIB_CXX) || defined(LIB_CXX) -ALLOW_MIPS_SHARED_TEXTREL= -.endif - SOLINKOPTS+= -shared -Wl,-x .if defined(LD_FATAL_WARNINGS) && ${LD_FATAL_WARNINGS} == "no" SOLINKOPTS+= -Wl,--no-fatal-warnings @@ -302,15 +298,6 @@ SOLINKOPTS+= -Wl,--no-fatal-warnings SOLINKOPTS+= -Wl,--fatal-warnings .endif SOLINKOPTS+= -Wl,--warn-shared-textrel - -.if defined(ALLOW_MIPS_SHARED_TEXTREL) && ${MACHINE_CPUARCH:Mmips} -# Check if we should be defining ALLOW_SHARED_TEXTREL... basically, C++ -# or -fexceptions in CFLAGS on MIPS. This works around clang/lld attempting -# to generate text relocations in read-only .eh_frame. A future version of -# clang/lld should instead transform them into relative references at link -# time, and then we can stop doing this. -SOLINKOPTS+= -Wl,-z,notext -.endif .if target(beforelinking) beforelinking: ${SOBJS} From owner-svn-src-all@freebsd.org Tue Jan 14 17:56:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EF43C1F215D; Tue, 14 Jan 2020 17:56:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xynz630mz4Srg; Tue, 14 Jan 2020 17:56:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C678A21737; Tue, 14 Jan 2020 17:56:55 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EHutG1072104; Tue, 14 Jan 2020 17:56:55 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EHusXl072100; Tue, 14 Jan 2020 17:56:54 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001141756.00EHusXl072100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 14 Jan 2020 17:56:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356736 - in head: gnu/usr.bin/binutils tools/build/options X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: gnu/usr.bin/binutils tools/build/options X-SVN-Commit-Revision: 356736 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 17:56:56 -0000 Author: emaste Date: Tue Jan 14 17:56:54 2020 New Revision: 356736 URL: https://svnweb.freebsd.org/changeset/base/356736 Log: limit ld.bfd to powerpc All archs except powerpc either use lld or require external toolchain. powerpc still needs binutils ld to link 32-bit binaries. Reviewed by: jhibbits Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23107 Modified: head/gnu/usr.bin/binutils/Makefile head/tools/build/options/WITHOUT_BINUTILS head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP head/tools/build/options/WITH_BINUTILS head/tools/build/options/WITH_BINUTILS_BOOTSTRAP Modified: head/gnu/usr.bin/binutils/Makefile ============================================================================== --- head/gnu/usr.bin/binutils/Makefile Tue Jan 14 17:50:13 2020 (r356735) +++ head/gnu/usr.bin/binutils/Makefile Tue Jan 14 17:56:54 2020 (r356736) @@ -11,11 +11,9 @@ SUBDIR.${MK_BINUTILS}+= libbinutils SUBDIR.${MK_BINUTILS}+= as SUBDIR.${MK_BINUTILS}+= objdump -# When we use ld.lld as /usr/bin/ld, do not install the non-ifunc-capable -# GNU binutils 2.17.50 ld. -# Except if we are on powerpc, that needs the ld from binutils to link -# 32-bit binaries. -.if ${MK_LLD_IS_LD} == "no" || ${TARGET} == "powerpc" +# All archs except powerpc either use lld or require external toolchain. +# powerpc still needs binutils ld to link 32-bit binaries. +.if ${TARGET} == "powerpc" SUBDIR.${MK_BINUTILS}+=ld .endif Modified: head/tools/build/options/WITHOUT_BINUTILS ============================================================================== --- head/tools/build/options/WITHOUT_BINUTILS Tue Jan 14 17:50:13 2020 (r356735) +++ head/tools/build/options/WITHOUT_BINUTILS Tue Jan 14 17:56:54 2020 (r356736) @@ -2,7 +2,7 @@ Set to not build or install GNU .Xr as 1 , .Xr objdump 1 , -and for some CPU architectures +and, on powerpc, .Xr ld.bfd 1 as part of the normal system build. Modified: head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP ============================================================================== --- head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP Tue Jan 14 17:50:13 2020 (r356735) +++ head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP Tue Jan 14 17:56:54 2020 (r356736) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -Set to not build binutils (as, ld, and objdump) +Set to not build binutils (as, objdump, and on powerpc ld) as part of the bootstrap process. .Bf -symbolic The option does not work for build targets unless some alternative Modified: head/tools/build/options/WITH_BINUTILS ============================================================================== --- head/tools/build/options/WITH_BINUTILS Tue Jan 14 17:50:13 2020 (r356735) +++ head/tools/build/options/WITH_BINUTILS Tue Jan 14 17:56:54 2020 (r356736) @@ -2,7 +2,7 @@ Set to build and install GNU .Xr as 1 , .Xr objdump 1 , -and for some CPU architectures +and, on powerpc, .Xr ld.bfd 1 as part of the normal system build. Modified: head/tools/build/options/WITH_BINUTILS_BOOTSTRAP ============================================================================== --- head/tools/build/options/WITH_BINUTILS_BOOTSTRAP Tue Jan 14 17:50:13 2020 (r356735) +++ head/tools/build/options/WITH_BINUTILS_BOOTSTRAP Tue Jan 14 17:56:54 2020 (r356736) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Set build binutils (as, ld, and objdump) +Set build binutils (as, objdump, and on powerpc ld) as part of the bootstrap process. From owner-svn-src-all@freebsd.org Tue Jan 14 18:00:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 90EC11F2207; Tue, 14 Jan 2020 18:00:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xysd3NK8z4T2d; Tue, 14 Jan 2020 18:00:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6F3162174B; Tue, 14 Jan 2020 18:00:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EI05Fc072367; Tue, 14 Jan 2020 18:00:05 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EI05Nf072366; Tue, 14 Jan 2020 18:00:05 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001141800.00EI05Nf072366@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Tue, 14 Jan 2020 18:00:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356737 - head/sys/mips/mips X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/mips/mips X-SVN-Commit-Revision: 356737 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 18:00:05 -0000 Author: jhb Date: Tue Jan 14 18:00:04 2020 New Revision: 356737 URL: https://svnweb.freebsd.org/changeset/base/356737 Log: Preserve the inherited value of the status register in cpu_set_upcall(). Instead of re-deriving the value of SR using logic similar to exec_set_regs(), just inherit the value from the existing thread similar to fork(). Reviewed by: brooks Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23059 Modified: head/sys/mips/mips/vm_machdep.c Modified: head/sys/mips/mips/vm_machdep.c ============================================================================== --- head/sys/mips/mips/vm_machdep.c Tue Jan 14 17:56:54 2020 (r356736) +++ head/sys/mips/mips/vm_machdep.c Tue Jan 14 18:00:04 2020 (r356737) @@ -414,7 +414,7 @@ cpu_set_upcall(struct thread *td, void (*entry)(void * stack_t *stack) { struct trapframe *tf; - register_t sp; + register_t sp, sr; sp = (((intptr_t)stack->ss_sp + stack->ss_size) & ~(STACK_ALIGN - 1)) - CALLFRAME_SIZ; @@ -424,8 +424,10 @@ cpu_set_upcall(struct thread *td, void (*entry)(void * * function. */ tf = td->td_frame; + sr = tf->sr; bzero(tf, sizeof(struct trapframe)); tf->sp = sp; + tf->sr = sr; tf->pc = (register_t)(intptr_t)entry; /* * MIPS ABI requires T9 to be the same as PC @@ -434,18 +436,6 @@ cpu_set_upcall(struct thread *td, void (*entry)(void * tf->t9 = (register_t)(intptr_t)entry; tf->a0 = (register_t)(intptr_t)arg; - /* - * Keep interrupt mask - */ - td->td_frame->sr = MIPS_SR_KSU_USER | MIPS_SR_EXL | MIPS_SR_INT_IE | - (mips_rd_status() & MIPS_SR_INT_MASK); -#if defined(__mips_n32) - td->td_frame->sr |= MIPS_SR_PX; -#elif defined(__mips_n64) - td->td_frame->sr |= MIPS_SR_PX | MIPS_SR_UX | MIPS_SR_KX; -#endif -/* tf->sr |= (ALL_INT_MASK & idle_mask) | SR_INT_ENAB; */ - /**XXX the above may now be wrong -- mips2 implements this as panic */ /* * FREEBSD_DEVELOPERS_FIXME: * Setup any other CPU-Specific registers (Not MIPS Standard) From owner-svn-src-all@freebsd.org Tue Jan 14 18:06:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7971A1F2433; Tue, 14 Jan 2020 18:06:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47xz0f2RzBz4TR5; Tue, 14 Jan 2020 18:06:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3C2422191E; Tue, 14 Jan 2020 18:06:10 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EI6APH077924; Tue, 14 Jan 2020 18:06:10 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EI6ADL077923; Tue, 14 Jan 2020 18:06:10 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001141806.00EI6ADL077923@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Tue, 14 Jan 2020 18:06:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356738 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356738 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 18:06:10 -0000 Author: emaste Date: Tue Jan 14 18:06:09 2020 New Revision: 356738 URL: https://svnweb.freebsd.org/changeset/base/356738 Log: src.conf.5: regen after r356736, limiting ld.bfd to powerpc Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Tue Jan 14 18:00:04 2020 (r356737) +++ head/share/man/man5/src.conf.5 Tue Jan 14 18:06:09 2020 (r356738) @@ -182,7 +182,7 @@ processing at process startup rather than on demand. Set to not build or install GNU .Xr as 1 , .Xr objdump 1 , -and for some CPU architectures +and, on powerpc, .Xr ld.bfd 1 as part of the normal system build. @@ -194,7 +194,7 @@ arm64/aarch64, riscv/riscv64 and riscv/riscv64sf. Set to build and install GNU .Xr as 1 , .Xr objdump 1 , -and for some CPU architectures +and, on powerpc, .Xr ld.bfd 1 as part of the normal system build. @@ -202,7 +202,7 @@ of the normal system build. This is a default setting on amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_BINUTILS_BOOTSTRAP -Set to not build binutils (as, ld, and objdump) +Set to not build binutils (as, objdump, and on powerpc ld) as part of the bootstrap process. .Bf -symbolic The option does not work for build targets unless some alternative @@ -212,7 +212,7 @@ toolchain is provided. This is a default setting on arm64/aarch64, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, riscv/riscv64, riscv/riscv64sf and sparc64/sparc64. .It Va WITH_BINUTILS_BOOTSTRAP -Set build binutils (as, ld, and objdump) +Set build binutils (as, objdump, and on powerpc ld) as part of the bootstrap process. .Pp This is a default setting on From owner-svn-src-all@freebsd.org Tue Jan 14 22:27:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B635F1F719F; Tue, 14 Jan 2020 22:27:46 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y4pV4Vt9z3DPq; Tue, 14 Jan 2020 22:27:46 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 95C49249F5; Tue, 14 Jan 2020 22:27:46 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00EMRkpI036485; Tue, 14 Jan 2020 22:27:46 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00EMRkpl036484; Tue, 14 Jan 2020 22:27:46 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001142227.00EMRkpl036484@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Tue, 14 Jan 2020 22:27:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356739 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 356739 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Tue, 14 Jan 2020 22:27:46 -0000 Author: mckusick Date: Tue Jan 14 22:27:46 2020 New Revision: 356739 URL: https://svnweb.freebsd.org/changeset/base/356739 Log: When sync'ing a mount point, the mount point's vnodes were scanned twice. Once to update the changed inodes, and a second time to update changed quota information. This change merges these two scans into a single scan which does both inode and quota updates. MFC after: 7 days Modified: head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Tue Jan 14 18:06:09 2020 (r356738) +++ head/sys/ufs/ffs/ffs_vfsops.c Tue Jan 14 22:27:46 2020 (r356739) @@ -1480,8 +1480,12 @@ ffs_sync_lazy(mp) allerror = 0; td = curthread; - if ((mp->mnt_flag & MNT_NOATIME) != 0) - goto qupdate; + if ((mp->mnt_flag & MNT_NOATIME) != 0) { +#ifdef QUOTA + qsync(mp); +#endif + goto sbupdate; + } MNT_VNODE_FOREACH_LAZY(vp, mp, mvp, ffs_sync_lazy_filter, NULL) { if (vp->v_type == VNON) { VI_UNLOCK(vp); @@ -1503,18 +1507,16 @@ ffs_sync_lazy(mp) if ((error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK, td)) != 0) continue; +#ifdef QUOTA + qsyncvp(vp); +#endif if (sync_doupdate(ip)) error = ffs_update(vp, 0); if (error != 0) allerror = error; vput(vp); } - -qupdate: -#ifdef QUOTA - qsync(mp); -#endif - +sbupdate: if (VFSTOUFS(mp)->um_fs->fs_fmod != 0 && (error = ffs_sbupdate(VFSTOUFS(mp), MNT_LAZY, 0)) != 0) allerror = error; @@ -1607,6 +1609,9 @@ loop: } continue; } +#ifdef QUOTA + qsyncvp(vp); +#endif if ((error = ffs_syncvnode(vp, waitfor, 0)) != 0) allerror = error; vput(vp); @@ -1621,9 +1626,6 @@ loop: if (allerror == 0 && count) goto loop; } -#ifdef QUOTA - qsync(mp); -#endif devvp = ump->um_devvp; bo = &devvp->v_bufobj; From owner-svn-src-all@freebsd.org Wed Jan 15 00:45:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 676CB1FA129; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y7rz29plz3LDp; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 41AEE2638D; Wed, 15 Jan 2020 00:45:07 +0000 (UTC) (envelope-from bcran@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F0j7K4019619; Wed, 15 Jan 2020 00:45:07 GMT (envelope-from bcran@FreeBSD.org) Received: (from bcran@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F0j5qG019610; Wed, 15 Jan 2020 00:45:05 GMT (envelope-from bcran@FreeBSD.org) Message-Id: <202001150045.00F0j5qG019610@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bcran set sender to bcran@FreeBSD.org using -f From: Rebecca Cran Date: Wed, 15 Jan 2020 00:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356740 - in head/usr.sbin/bsdinstall: . partedit scripts X-SVN-Group: head X-SVN-Commit-Author: bcran X-SVN-Commit-Paths: in head/usr.sbin/bsdinstall: . partedit scripts X-SVN-Commit-Revision: 356740 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 00:45:07 -0000 Author: bcran Date: Wed Jan 15 00:45:05 2020 New Revision: 356740 URL: https://svnweb.freebsd.org/changeset/base/356740 Log: bsdinstall: Use TMPDIR if set Submitted by: Ryan Moeller Reviewed by: bcran, Nick Wolff Differential Revision: https://reviews.freebsd.org/D22979/ Modified: head/usr.sbin/bsdinstall/bsdinstall head/usr.sbin/bsdinstall/bsdinstall.8 head/usr.sbin/bsdinstall/partedit/gpart_ops.c head/usr.sbin/bsdinstall/partedit/partedit.c head/usr.sbin/bsdinstall/partedit/partedit.h head/usr.sbin/bsdinstall/scripts/bootconfig head/usr.sbin/bsdinstall/scripts/mount head/usr.sbin/bsdinstall/scripts/script head/usr.sbin/bsdinstall/scripts/umount head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/bsdinstall ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/bsdinstall Wed Jan 15 00:45:05 2020 (r356740) @@ -40,13 +40,15 @@ BSDCFG_SHARE="/usr/share/bsdconfig" ############################################################ GLOBALS -: ${BSDINSTALL_TMPETC="/tmp/bsdinstall_etc"}; export BSDINSTALL_TMPETC -: ${BSDINSTALL_TMPBOOT="/tmp/bsdinstall_boot"}; export BSDINSTALL_TMPBOOT +: ${TMPDIR:="/tmp"}; export TMPDIR + +: ${BSDINSTALL_TMPETC="${TMPDIR}/bsdinstall_etc"}; export BSDINSTALL_TMPETC +: ${BSDINSTALL_TMPBOOT="${TMPDIR}/bsdinstall_boot"}; export BSDINSTALL_TMPBOOT : ${PATH_FSTAB="$BSDINSTALL_TMPETC/fstab"}; export PATH_FSTAB : ${BSDINSTALL_DISTDIR="/usr/freebsd-dist"}; export BSDINSTALL_DISTDIR : ${BSDINSTALL_CHROOT="/mnt"}; export BSDINSTALL_CHROOT -export debugFile="${debugFile-${BSDINSTALL_LOG-/tmp/bsdinstall_log}}" +export debugFile="${debugFile-${BSDINSTALL_LOG-${TMPDIR}/bsdinstall_log}}" ############################################################ MAIN Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 00:45:05 2020 (r356740) @@ -259,6 +259,10 @@ for most installation scenarios. Others are set by various interactive user prompts, and can be usefully overridden when making scripted or customized installers. .Bl -tag -width ".Ev BSDINSTALL_DISTSITE" +.It Ev TMPDIR +The directory to use for temporary files. +Default: +.Dq Pa /tmp .It Ev DISTRIBUTIONS The set of distributions to install, e.g., "base.txz kernel.txz ports.txz". Default: unset @@ -291,7 +295,7 @@ Default: .It Ev BSDINSTALL_LOG Path to a log file for the installation. Default: -.Dq Pa /tmp/bsdinstall_log +.Dq Pa $TMPDIR/bsdinstall_log .It Ev BSDINSTALL_TMPETC Directory where files destined for the new system's .Pa /etc @@ -300,7 +304,7 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: -.Dq Pa /tmp/bsdinstall_etc +.Dq Pa $TMPDIR/bsdinstall_etc .It Ev BSDINSTALL_TMPBOOT Directory where files destined for the new system's .Pa /boot @@ -309,7 +313,7 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: -.Dq Pa /tmp/bsdinstall_boot +.Dq Pa $TMPDIR/bsdinstall_boot .It Ev ZFSBOOT_POOL_NAME Name for the pool containing the base system. Default: Modified: head/usr.sbin/bsdinstall/partedit/gpart_ops.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/gpart_ops.c Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/gpart_ops.c Wed Jan 15 00:45:05 2020 (r356740) @@ -711,10 +711,11 @@ set_default_part_metadata(const char *name, const char if (strcmp(type, bootpart_type(scheme, &default_bootmount)) == 0) { if (default_bootmount == NULL) { - int fd = open("/tmp/bsdinstall-esps", O_CREAT | O_WRONLY | O_APPEND, - 0600); + int fd = openat(tmpdfd, "bsdinstall-esps", + O_CREAT | O_WRONLY | O_APPEND, 0600); if (fd > 0) { write(fd, md->name, strlen(md->name)); + write(fd, "\n", 1); close(fd); } Modified: head/usr.sbin/bsdinstall/partedit/partedit.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.c Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/partedit.c Wed Jan 15 00:45:05 2020 (r356740) @@ -32,17 +32,20 @@ #include #include +#include #include #include #include #include #include #include +#include #include "diskeditor.h" #include "partedit.h" struct pmetadata_head part_metadata; +int tmpdfd; static int sade_mode = 0; static int apply_changes(struct gmesh *mesh); @@ -66,6 +69,8 @@ sigint_handler(int sig) end_dialog(); + close(tmpdfd); + exit(1); } @@ -73,7 +78,7 @@ int main(int argc, const char **argv) { struct partition_metadata *md; - const char *progname, *prompt; + const char *progname, *prompt, *tmpdir; struct partedit_item *items = NULL; struct gmesh mesh; int i, op, nitems, nscroll; @@ -85,6 +90,14 @@ main(int argc, const char **argv) TAILQ_INIT(&part_metadata); + tmpdir = getenv("TMPDIR"); + if (tmpdir == NULL) + tmpdir = "/tmp"; + tmpdfd = open(tmpdir, O_RDWR | O_DIRECTORY); + if (tmpdfd < 0) + err(EX_OSERR, "%s", tmpdir); + unlinkat(tmpdfd, "bsdinstall-esps", 0); + init_fstab_metadata(); init_dialog(stdin, stdout); @@ -220,6 +233,7 @@ main(int argc, const char **argv) geom_deletetree(&mesh); free(items); end_dialog(); + close(tmpdfd); return (error); } Modified: head/usr.sbin/bsdinstall/partedit/partedit.h ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.h Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/partedit/partedit.h Wed Jan 15 00:45:05 2020 (r356740) @@ -39,6 +39,8 @@ struct gprovider; struct gmesh; struct ggeom; +extern int tmpdfd; + TAILQ_HEAD(pmetadata_head, partition_metadata); extern struct pmetadata_head part_metadata; Modified: head/usr.sbin/bsdinstall/scripts/bootconfig ============================================================================== --- head/usr.sbin/bsdinstall/scripts/bootconfig Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/bootconfig Wed Jan 15 00:45:05 2020 (r356740) @@ -30,6 +30,8 @@ BSDCFG_SHARE="/usr/share/bsdconfig" . $BSDCFG_SHARE/common.subr || exit 1 +: ${TMPDIR:="/tmp"} + die() { echo $* exit 1 @@ -50,8 +52,8 @@ if [ "$(uname -m)" = "amd64" ] || [ "$(uname -m)" = "i fi if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" = "UEFI" ]; then - UFSBOOT_ESPS=$(cat /tmp/bsdinstall-esps 2>/dev/null) - ZFSBOOT_DISKS=$(cat /tmp/bsdinstall-zfsboot 2>/dev/null) + UFSBOOT_ESPS=$(cat $TMPDIR/bsdinstall-esps 2>/dev/null) + ZFSBOOT_DISKS=$(cat $TMPDIR/bsdinstall-zfsboot 2>/dev/null) num_esps=0 if [ -n "$ZFSBOOT_DISKS" ]; then @@ -99,7 +101,7 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" continue fi - mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) + mntpt=$(mktemp -d $TMPDIR/stand-test.XXXXXX) if [ -e "/dev/${geom}p${index}" ]; then dev=${geom}p${index} elif [ -e "/dev/${geom}s${index}" ]; then @@ -129,7 +131,7 @@ if [ "$(uname -m)" = "arm64" ] || [ "$X86_BOOTMETHOD" die "Failed to format ESP $esp as FAT32" fi - mntpt=$(mktemp -d /tmp/stand-test.XXXXXX) + mntpt=$(mktemp -d $TMPDIR/stand-test.XXXXXX) f_dprintf "Mounting ESP /dev/${esp}" mount -t msdosfs "/dev/${esp}" "${mntpt}" if [ $? -ne 0 ]; then Modified: head/usr.sbin/bsdinstall/scripts/mount ============================================================================== --- head/usr.sbin/bsdinstall/scripts/mount Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/mount Wed Jan 15 00:45:05 2020 (r356740) @@ -26,7 +26,7 @@ # # $FreeBSD$ -TMP_FSTAB=/tmp/bsdinstall-tmp-fstab +TMP_FSTAB=${TMPDIR:-"/tmp"}/bsdinstall-tmp-fstab cat $PATH_FSTAB | awk -v BSDINSTALL_CHROOT=$BSDINSTALL_CHROOT '{ if ($2 ~ "^/.*") { Modified: head/usr.sbin/bsdinstall/scripts/script ============================================================================== --- head/usr.sbin/bsdinstall/scripts/script Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/script Wed Jan 15 00:45:05 2020 (r356740) @@ -49,6 +49,8 @@ f_include $BSDCFG_SHARE/variable.subr ############################################################ GLOBALS +: ${TMPDIR:="/tmp"} + # # Strings that should be moved to an i18n file and loaded with f_include_lang() # @@ -88,9 +90,9 @@ f_dprintf "Began Installation at %s" "$( date )" rm -rf $BSDINSTALL_TMPETC mkdir $BSDINSTALL_TMPETC -split -a 2 -p '^#!.*' "$SCRIPT" /tmp/bsdinstall-installscript- +split -a 2 -p '^#!.*' "$SCRIPT" $TMPDIR/bsdinstall-installscript- -. /tmp/bsdinstall-installscript-aa +. $TMPDIR/bsdinstall-installscript-aa : ${DISTRIBUTIONS="kernel.txz base.txz"}; export DISTRIBUTIONS export BSDINSTALL_DISTDIR @@ -135,8 +137,8 @@ if [ ! -f $BSDINSTALL_CHROOT/etc/resolv.conf -a -f /et fi # Run post-install script -if [ -f /tmp/bsdinstall-installscript-ab ]; then - cp /tmp/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript +if [ -f $TMPDIR/bsdinstall-installscript-ab ]; then + cp $TMPDIR/bsdinstall-installscript-ab $BSDINSTALL_CHROOT/tmp/installscript chmod a+x $BSDINSTALL_CHROOT/tmp/installscript mount -t devfs devfs "$BSDINSTALL_CHROOT/dev" chroot $BSDINSTALL_CHROOT /tmp/installscript $@ 2>&1 Modified: head/usr.sbin/bsdinstall/scripts/umount ============================================================================== --- head/usr.sbin/bsdinstall/scripts/umount Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/umount Wed Jan 15 00:45:05 2020 (r356740) @@ -26,7 +26,7 @@ # # $FreeBSD$ -TMP_FSTAB=/tmp/bsdinstall-tmp-fstab +TMP_FSTAB=${TMPDIR:-"/tmp"}/bsdinstall-tmp-fstab cat $PATH_FSTAB | awk -v BSDINSTALL_CHROOT=$BSDINSTALL_CHROOT '{ if ($2 ~ "^/.*") { Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Jan 14 22:27:46 2020 (r356739) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Wed Jan 15 00:45:05 2020 (r356740) @@ -1171,7 +1171,7 @@ zfs_create_boot() f_dprintf "$funcname: For encrypted root disk..." # Create parent directory for boot pool - f_eval_catch -d $funcname umount "$UMOUNT" /mnt + f_eval_catch -d $funcname umount "$UMOUNT" "$BSDINSTALL_CHROOT" f_eval_catch $funcname mount "$MOUNT_TYPE" tmpfs none \ $BSDINSTALL_CHROOT || return $FAILURE @@ -1273,7 +1273,8 @@ zfs_create_boot() # Clean up f_eval_catch $funcname zfs "$ZFS_UNMOUNT" "$bootpool_name" || return $FAILURE - f_eval_catch -d $funcname umount "$UMOUNT" /mnt # tmpfs + # tmpfs + f_eval_catch -d $funcname umount "$UMOUNT" "$BSDINSTALL_CHROOT" fi # @@ -1657,7 +1658,7 @@ while :; do "$vdev_type" $ZFSBOOT_DISKS || continue # To be reused by bootconfig - echo "$ZFSBOOT_DISKS" > /tmp/bsdinstall-zfsboot + echo "$ZFSBOOT_DISKS" > ${TMPDIR:-"/tmp"}/bsdinstall-zfsboot break # to success ;; From owner-svn-src-all@freebsd.org Wed Jan 15 01:30:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9F60C1FB04F; Wed, 15 Jan 2020 01:30:33 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y8sP2TRHz3NNj; Wed, 15 Jan 2020 01:30:33 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4BAEF26AEB; Wed, 15 Jan 2020 01:30:33 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F1UXfL043792; Wed, 15 Jan 2020 01:30:33 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F1UWk0043791; Wed, 15 Jan 2020 01:30:32 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001150130.00F1UWk0043791@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 15 Jan 2020 01:30:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356741 - in head/libexec/rtld-elf: . rtld-libc X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head/libexec/rtld-elf: . rtld-libc X-SVN-Commit-Revision: 356741 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 01:30:33 -0000 Author: mjg Date: Wed Jan 15 01:30:32 2020 New Revision: 356741 URL: https://svnweb.freebsd.org/changeset/base/356741 Log: rtld: remove hand rolled memset and bzero They were introduced to take care of ifunc, but right now no architecture provides ifunc'ed variants. Since rtld uses memset extensively this results in a pessmization. Should someone want to use ifunc here they should provide a mandatory symbol (e.g., rtld_memset). See the review for profiling data. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23176 Modified: head/libexec/rtld-elf/rtld-libc/Makefile.inc head/libexec/rtld-elf/rtld.c Modified: head/libexec/rtld-elf/rtld-libc/Makefile.inc ============================================================================== --- head/libexec/rtld-elf/rtld-libc/Makefile.inc Wed Jan 15 00:45:05 2020 (r356740) +++ head/libexec/rtld-elf/rtld-libc/Makefile.inc Wed Jan 15 01:30:32 2020 (r356741) @@ -40,9 +40,9 @@ CFLAGS.errlst.c+=-I${LIBC_SRCTOP}/include # Use the string and memory .o files from libc instead of rebuilding them (they # might be using optimized assembly and duplicating that logic here is awkward). -_libc_string_objects= bcmp bcopy memchr memcmp memcpy memmove stpncpy strcat \ - strchr strcmp stpcpy strcpy strcspn strdup strlcat strlcpy strlen strncmp \ - strncpy strrchr strsep strspn strstr strtok +_libc_string_objects= bcmp bcopy bzero memset memchr memcmp memcpy memmove \ + stpncpy strcat strchr strcmp stpcpy strcpy strcspn strdup strlcat strlcpy \ + strlen strncmp strncpy strrchr strsep strspn strstr strtok # Also use all the syscall .o files from libc_nossp_pic: _libc_other_objects= sigsetjmp lstat stat fstat fstatat fstatfs syscall \ cerror geteuid getegid munmap mprotect sysarch __sysctl issetugid __getcwd \ Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Wed Jan 15 00:45:05 2020 (r356740) +++ head/libexec/rtld-elf/rtld.c Wed Jan 15 01:30:32 2020 (r356741) @@ -5729,28 +5729,6 @@ rtld_strerror(int errnum) return (sys_errlist[errnum]); } -/* - * No ifunc relocations. - */ -void * -memset(void *dest, int c, size_t len) -{ - size_t i; - - for (i = 0; i < len; i++) - ((char *)dest)[i] = c; - return (dest); -} - -void -bzero(void *dest, size_t len) -{ - size_t i; - - for (i = 0; i < len; i++) - ((char *)dest)[i] = 0; -} - /* malloc */ void * malloc(size_t nbytes) From owner-svn-src-all@freebsd.org Wed Jan 15 01:31:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B9781FB0CD; Wed, 15 Jan 2020 01:31:29 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y8tT0thgz3NgL; Wed, 15 Jan 2020 01:31:29 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 19BDA26B39; Wed, 15 Jan 2020 01:31:29 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F1VS3D046147; Wed, 15 Jan 2020 01:31:28 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F1VSnJ046146; Wed, 15 Jan 2020 01:31:28 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001150131.00F1VSnJ046146@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 15 Jan 2020 01:31:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356742 - head/sys/fs/fuse X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/fuse X-SVN-Commit-Revision: 356742 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 01:31:29 -0000 Author: mjg Date: Wed Jan 15 01:31:28 2020 New Revision: 356742 URL: https://svnweb.freebsd.org/changeset/base/356742 Log: fusefs: add missing CLTFLAG_MPSAFE annotation Modified: head/sys/fs/fuse/fuse_node.c Modified: head/sys/fs/fuse/fuse_node.c ============================================================================== --- head/sys/fs/fuse/fuse_node.c Wed Jan 15 01:30:32 2020 (r356741) +++ head/sys/fs/fuse/fuse_node.c Wed Jan 15 01:31:28 2020 (r356742) @@ -124,7 +124,8 @@ int fuse_data_cache_mode = FUSE_CACHE_WT; * The sysctl is retained primarily for use by jails supporting older FUSE * protocols. It may be removed entirely once FreeBSD 11.3 and 12.0 are EOL. */ -SYSCTL_PROC(_vfs_fusefs, OID_AUTO, data_cache_mode, CTLTYPE_INT|CTLFLAG_RW, +SYSCTL_PROC(_vfs_fusefs, OID_AUTO, data_cache_mode, + CTLTYPE_INT | CTLFLAG_MPSAFE | CTLFLAG_RW, &fuse_data_cache_mode, 0, sysctl_fuse_cache_mode, "I", "Zero: disable caching of FUSE file data; One: write-through caching " "(default); Two: write-back caching (generally unsafe)"); From owner-svn-src-all@freebsd.org Wed Jan 15 01:31:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DFBF01FB282; Wed, 15 Jan 2020 01:31:58 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y8v25QRxz3NqX; Wed, 15 Jan 2020 01:31:58 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4B5C26B70; Wed, 15 Jan 2020 01:31:58 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F1VwwK048352; Wed, 15 Jan 2020 01:31:58 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F1VwJ0048350; Wed, 15 Jan 2020 01:31:58 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001150131.00F1VwJ0048350@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 15 Jan 2020 01:31:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356743 - head/sys/fs/nfsserver X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/nfsserver X-SVN-Commit-Revision: 356743 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 01:31:58 -0000 Author: mjg Date: Wed Jan 15 01:31:57 2020 New Revision: 356743 URL: https://svnweb.freebsd.org/changeset/base/356743 Log: nfs: add missing CLTFLAG_MPSAFE annotations Modified: head/sys/fs/nfsserver/nfs_nfsdcache.c head/sys/fs/nfsserver/nfs_nfsdport.c Modified: head/sys/fs/nfsserver/nfs_nfsdcache.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Jan 15 01:31:28 2020 (r356742) +++ head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Jan 15 01:31:57 2020 (r356743) @@ -187,9 +187,9 @@ sysctl_tcphighwater(SYSCTL_HANDLER_ARGS) nfsrc_tcphighwater = newhighwater; return (0); } -SYSCTL_PROC(_vfs_nfsd, OID_AUTO, tcphighwater, CTLTYPE_UINT | CTLFLAG_RW, 0, - sizeof(nfsrc_tcphighwater), sysctl_tcphighwater, "IU", - "High water mark for TCP cache entries"); +SYSCTL_PROC(_vfs_nfsd, OID_AUTO, tcphighwater, + CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, sizeof(nfsrc_tcphighwater), + sysctl_tcphighwater, "IU", "High water mark for TCP cache entries"); static u_int nfsrc_udphighwater = NFSRVCACHE_UDPHIGHWATER; SYSCTL_UINT(_vfs_nfsd, OID_AUTO, udphighwater, CTLFLAG_RW, Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Wed Jan 15 01:31:28 2020 (r356742) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Wed Jan 15 01:31:57 2020 (r356743) @@ -188,9 +188,9 @@ sysctl_dsdirsize(SYSCTL_HANDLER_ARGS) nfsrv_dsdirsize = newdsdirsize; return (0); } -SYSCTL_PROC(_vfs_nfsd, OID_AUTO, dsdirsize, CTLTYPE_UINT | CTLFLAG_RW, 0, - sizeof(nfsrv_dsdirsize), sysctl_dsdirsize, "IU", - "Number of dsN subdirs on the DS servers"); +SYSCTL_PROC(_vfs_nfsd, OID_AUTO, dsdirsize, + CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, sizeof(nfsrv_dsdirsize), + sysctl_dsdirsize, "IU", "Number of dsN subdirs on the DS servers"); #define MAX_REORDERED_RPC 16 #define NUM_HEURISTIC 1031 From owner-svn-src-all@freebsd.org Wed Jan 15 01:32:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0947F1FB2E2; Wed, 15 Jan 2020 01:32:12 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y8vH6V6fz3NyZ; Wed, 15 Jan 2020 01:32:11 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DA38F26C8A; Wed, 15 Jan 2020 01:32:11 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F1WBJY048411; Wed, 15 Jan 2020 01:32:11 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F1WBLY048410; Wed, 15 Jan 2020 01:32:11 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001150132.00F1WBLY048410@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 15 Jan 2020 01:32:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356744 - head/sys/fs/tmpfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/tmpfs X-SVN-Commit-Revision: 356744 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 01:32:12 -0000 Author: mjg Date: Wed Jan 15 01:32:11 2020 New Revision: 356744 URL: https://svnweb.freebsd.org/changeset/base/356744 Log: tmpfs: add missing CLTFLAG_MPSAFE annotation Modified: head/sys/fs/tmpfs/tmpfs_subr.c Modified: head/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 15 01:31:57 2020 (r356743) +++ head/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 15 01:32:11 2020 (r356744) @@ -160,8 +160,9 @@ sysctl_mem_reserved(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_vfs_tmpfs, OID_AUTO, memory_reserved, CTLTYPE_LONG|CTLFLAG_RW, - &tmpfs_pages_reserved, 0, sysctl_mem_reserved, "L", +SYSCTL_PROC(_vfs_tmpfs, OID_AUTO, memory_reserved, + CTLTYPE_LONG|CTLFLAG_MPSAFE|CTLFLAG_RW, &tmpfs_pages_reserved, 0, + sysctl_mem_reserved, "L", "Amount of available memory and swap below which tmpfs growth stops"); static __inline int tmpfs_dirtree_cmp(struct tmpfs_dirent *a, From owner-svn-src-all@freebsd.org Wed Jan 15 01:34:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AED111FB38E; Wed, 15 Jan 2020 01:34:05 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47y8xT4Bg5z3P7x; Wed, 15 Jan 2020 01:34:05 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8B30726CAD; Wed, 15 Jan 2020 01:34:05 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F1Y5Jh049381; Wed, 15 Jan 2020 01:34:05 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F1Y5t5049380; Wed, 15 Jan 2020 01:34:05 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001150134.00F1Y5t5049380@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Wed, 15 Jan 2020 01:34:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356745 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356745 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 01:34:05 -0000 Author: mjg Date: Wed Jan 15 01:34:05 2020 New Revision: 356745 URL: https://svnweb.freebsd.org/changeset/base/356745 Log: vfs: in vop_stdadd_writecount only vlazy vnodes on mounts using msync The only reason to vlazy there is to (overzealously) ensure all vnodes which need to be visited by msync scan can be found there. In particluar this is of no use zfs and tmpfs. While here depessimize the check. Modified: head/sys/kern/vfs_default.c Modified: head/sys/kern/vfs_default.c ============================================================================== --- head/sys/kern/vfs_default.c Wed Jan 15 01:32:11 2020 (r356744) +++ head/sys/kern/vfs_default.c Wed Jan 15 01:34:05 2020 (r356745) @@ -1220,6 +1220,7 @@ static int vop_stdadd_writecount(struct vop_add_writecount_args *ap) { struct vnode *vp; + struct mount *mp; int error; vp = ap->a_vp; @@ -1229,9 +1230,12 @@ vop_stdadd_writecount(struct vop_add_writecount_args * } else { VNASSERT(vp->v_writecount + ap->a_inc >= 0, vp, ("neg writecount increment %d", ap->a_inc)); + if (vp->v_writecount == 0) { + mp = vp->v_mount; + if (mp != NULL && (mp->mnt_kern_flag & MNTK_NOMSYNC) == 0) + vlazy(vp); + } vp->v_writecount += ap->a_inc; - if (vp->v_writecount > 0 && vp->v_mount != NULL) - vlazy(vp); error = 0; } VI_UNLOCK(vp); From owner-svn-src-all@freebsd.org Wed Jan 15 02:31:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6A8A61FC56D; Wed, 15 Jan 2020 02:31:04 +0000 (UTC) (envelope-from anish@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yBCD1rDfz3wb8; Wed, 15 Jan 2020 02:31:04 +0000 (UTC) (envelope-from anish@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3A0C827608; Wed, 15 Jan 2020 02:31:04 +0000 (UTC) (envelope-from anish@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F2V4iF079335; Wed, 15 Jan 2020 02:31:04 GMT (envelope-from anish@FreeBSD.org) Received: (from anish@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F2V4bs079334; Wed, 15 Jan 2020 02:31:04 GMT (envelope-from anish@FreeBSD.org) Message-Id: <202001150231.00F2V4bs079334@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: anish set sender to anish@FreeBSD.org using -f From: Anish Gupta Date: Wed, 15 Jan 2020 02:31:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356746 - stable/12/sys/amd64/vmm/amd X-SVN-Group: stable-12 X-SVN-Commit-Author: anish X-SVN-Commit-Paths: stable/12/sys/amd64/vmm/amd X-SVN-Commit-Revision: 356746 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 02:31:04 -0000 Author: anish Date: Wed Jan 15 02:31:03 2020 New Revision: 356746 URL: https://svnweb.freebsd.org/changeset/base/356746 Log: MFC r355258: Bhyve AMD IOMMU log the last timeout command. Differential Revision: https://reviews.freebsd.org/D22566 Modified: stable/12/sys/amd64/vmm/amd/amdvi_hw.c Modified: stable/12/sys/amd64/vmm/amd/amdvi_hw.c ============================================================================== --- stable/12/sys/amd64/vmm/amd/amdvi_hw.c Wed Jan 15 01:34:05 2020 (r356745) +++ stable/12/sys/amd64/vmm/amd/amdvi_hw.c Wed Jan 15 02:31:03 2020 (r356746) @@ -66,7 +66,7 @@ SYSCTL_NODE(_hw_vmm, OID_AUTO, amdvi, CTLFLAG_RW, NULL /* Print RID or device ID in PCI string format. */ #define RID2PCI_STR(d) PCI_RID2BUS(d), PCI_RID2SLOT(d), PCI_RID2FUNC(d) -static void amdvi_dump_cmds(struct amdvi_softc *softc); +static void amdvi_dump_cmds(struct amdvi_softc *softc, int count); static void amdvi_print_dev_cap(struct amdvi_softc *softc); MALLOC_DEFINE(M_AMDVI, "amdvi", "amdvi"); @@ -321,9 +321,7 @@ amdvi_cmd_cmp(struct amdvi_softc *softc, const uint64_ pa = vtophys(&softc->cmp_data); cmd->opcode = AMDVI_CMP_WAIT_OPCODE; - cmd->word0 = (pa & 0xFFFFFFF8) | - (AMDVI_CMP_WAIT_STORE); - //(AMDVI_CMP_WAIT_FLUSH | AMDVI_CMP_WAIT_STORE); + cmd->word0 = (pa & 0xFFFFFFF8) | AMDVI_CMP_WAIT_STORE; cmd->word1 = (pa >> 32) & 0xFFFFF; cmd->addr = data; @@ -492,26 +490,26 @@ amdvi_wait(struct amdvi_softc *softc) device_printf(softc->dev, "Error: completion failed" " tail:0x%x, head:0x%x.\n", ctrl->cmd_tail, ctrl->cmd_head); - amdvi_dump_cmds(softc); + /* Dump the last command. */ + amdvi_dump_cmds(softc, 1); } static void -amdvi_dump_cmds(struct amdvi_softc *softc) +amdvi_dump_cmds(struct amdvi_softc *softc, int count) { struct amdvi_ctrl *ctrl; struct amdvi_cmd *cmd; int off, i; ctrl = softc->ctrl; - device_printf(softc->dev, "Dump all the commands:\n"); + device_printf(softc->dev, "Dump last %d command(s):\n", count); /* * If h/w is stuck in completion, it is the previous command, * start dumping from previous command onward. */ off = MOD_DEC(ctrl->cmd_head, sizeof(struct amdvi_cmd), softc->cmd_max); - for (i = 0; off != ctrl->cmd_tail && - i < softc->cmd_max; i++) { + for (i = 0; off != ctrl->cmd_tail && i < count; i++) { cmd = (struct amdvi_cmd *)((uint8_t *)softc->cmd + off); printf(" [CMD%d, off:0x%x] opcode= 0x%x 0x%x" " 0x%x 0x%lx\n", i, off, cmd->opcode, From owner-svn-src-all@freebsd.org Wed Jan 15 03:30:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B4DA41FD811; Wed, 15 Jan 2020 03:30:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yCWs4PBnz406g; Wed, 15 Jan 2020 03:30:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 920502D6; Wed, 15 Jan 2020 03:30:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3UXKn016325; Wed, 15 Jan 2020 03:30:33 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3UXb1016324; Wed, 15 Jan 2020 03:30:33 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150330.00F3UXb1016324@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:30:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356747 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356747 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:30:33 -0000 Author: glebius Date: Wed Jan 15 03:30:33 2020 New Revision: 356747 URL: https://svnweb.freebsd.org/changeset/base/356747 Log: The non-preemptible network epoch identified by net_epoch isn't used. This code definitely meant net_epoch_preempt. Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 02:31:03 2020 (r356746) +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 03:30:33 2020 (r356747) @@ -284,7 +284,7 @@ rs_defer_destroy(struct tcp_rate_set *rs) /* Set flag to only defer once. */ rs->rs_flags |= RS_FUNERAL_SCHD; - epoch_call(net_epoch, &rs->rs_epoch_ctx, rs_destroy); + epoch_call(net_epoch_preempt, &rs->rs_epoch_ctx, rs_destroy); } #ifdef INET From owner-svn-src-all@freebsd.org Wed Jan 15 03:34:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3B1421FDAD2; Wed, 15 Jan 2020 03:34:22 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yCcG0mSlz40Zs; Wed, 15 Jan 2020 03:34:22 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 159D3397; Wed, 15 Jan 2020 03:34:22 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3YLYB021702; Wed, 15 Jan 2020 03:34:21 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3YLXH021699; Wed, 15 Jan 2020 03:34:21 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150334.00F3YLXH021699@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:34:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356748 - in head/sys: kern net sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: kern net sys X-SVN-Commit-Revision: 356748 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:34:22 -0000 Author: glebius Date: Wed Jan 15 03:34:21 2020 New Revision: 356748 URL: https://svnweb.freebsd.org/changeset/base/356748 Log: - Move global network epoch definition to epoch.h, as more different subsystems tend to need to know about it, and including if_var.h is huge header pollution for them. Polluting possible non-network users with single symbol seems much lesser evil. - Remove non-preemptible network epoch. Not used yet, and unlikely to get used in close future. Modified: head/sys/kern/uipc_domain.c head/sys/net/if.c head/sys/net/if_var.h head/sys/sys/epoch.h Modified: head/sys/kern/uipc_domain.c ============================================================================== --- head/sys/kern/uipc_domain.c Wed Jan 15 03:30:33 2020 (r356747) +++ head/sys/kern/uipc_domain.c Wed Jan 15 03:34:21 2020 (r356748) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -47,8 +48,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include /* XXXGL: net_epoch should move out there */ -#include /* XXXGL: net_epoch should move out there */ /* * System initialization Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Wed Jan 15 03:30:33 2020 (r356747) +++ head/sys/net/if.c Wed Jan 15 03:34:21 2020 (r356748) @@ -108,7 +108,6 @@ _Static_assert(sizeof(((struct ifreq *)0)->ifr_name) = offsetof(struct ifreq, ifr_ifru), "gap between ifr_name and ifr_ifru"); __read_mostly epoch_t net_epoch_preempt; -__read_mostly epoch_t net_epoch; #ifdef COMPAT_FREEBSD32 #include #include @@ -932,7 +931,6 @@ if_epochalloc(void *dummy __unused) { net_epoch_preempt = epoch_alloc("Net preemptible", EPOCH_PREEMPT); - net_epoch = epoch_alloc("Net", 0); } SYSINIT(ifepochalloc, SI_SUB_EPOCH, SI_ORDER_ANY, if_epochalloc, NULL); Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Wed Jan 15 03:30:33 2020 (r356747) +++ head/sys/net/if_var.h Wed Jan 15 03:34:21 2020 (r356748) @@ -107,8 +107,6 @@ VNET_DECLARE(struct hhook_head *, ipsec_hhh_in[HHOOK_I VNET_DECLARE(struct hhook_head *, ipsec_hhh_out[HHOOK_IPSEC_COUNT]); #define V_ipsec_hhh_in VNET(ipsec_hhh_in) #define V_ipsec_hhh_out VNET(ipsec_hhh_out) -extern epoch_t net_epoch_preempt; -extern epoch_t net_epoch; #endif /* _KERNEL */ typedef enum { @@ -445,10 +443,6 @@ struct ifnet { #define IF_ADDR_WUNLOCK(if) mtx_unlock(&(if)->if_addr_lock) #define IF_ADDR_LOCK_ASSERT(if) MPASS(in_epoch(net_epoch_preempt) || mtx_owned(&(if)->if_addr_lock)) #define IF_ADDR_WLOCK_ASSERT(if) mtx_assert(&(if)->if_addr_lock, MA_OWNED) -#define NET_EPOCH_ENTER(et) epoch_enter_preempt(net_epoch_preempt, &(et)) -#define NET_EPOCH_EXIT(et) epoch_exit_preempt(net_epoch_preempt, &(et)) -#define NET_EPOCH_WAIT() epoch_wait_preempt(net_epoch_preempt) -#define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) #ifdef _KERNEL /* interface link layer address change event */ Modified: head/sys/sys/epoch.h ============================================================================== --- head/sys/sys/epoch.h Wed Jan 15 03:30:33 2020 (r356747) +++ head/sys/sys/epoch.h Wed Jan 15 03:34:21 2020 (r356748) @@ -93,5 +93,15 @@ void epoch_trace_list(struct thread *); void epoch_enter(epoch_t epoch); void epoch_exit(epoch_t epoch); +/* + * Globally recognized epochs in the FreeBSD kernel. + */ +/* Network preemptible epoch, declared in sys/net/if.c. */ +extern epoch_t net_epoch_preempt; +#define NET_EPOCH_ENTER(et) epoch_enter_preempt(net_epoch_preempt, &(et)) +#define NET_EPOCH_EXIT(et) epoch_exit_preempt(net_epoch_preempt, &(et)) +#define NET_EPOCH_WAIT() epoch_wait_preempt(net_epoch_preempt) +#define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) + #endif /* _KERNEL */ #endif /* _SYS_EPOCH_H_ */ From owner-svn-src-all@freebsd.org Wed Jan 15 03:35:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EDC131FDBB9; Wed, 15 Jan 2020 03:35:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yCf561vvz40l9; Wed, 15 Jan 2020 03:35:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CA0263A1; Wed, 15 Jan 2020 03:35:57 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3ZvKj021826; Wed, 15 Jan 2020 03:35:57 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3ZvHn021825; Wed, 15 Jan 2020 03:35:57 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150335.00F3ZvHn021825@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:35:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356749 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 356749 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:35:58 -0000 Author: glebius Date: Wed Jan 15 03:35:57 2020 New Revision: 356749 URL: https://svnweb.freebsd.org/changeset/base/356749 Log: Netgraph queue processing thread must process all its items in the network epoch. Reported by: Michael Zhilin Modified: head/sys/netgraph/ng_base.c Modified: head/sys/netgraph/ng_base.c ============================================================================== --- head/sys/netgraph/ng_base.c Wed Jan 15 03:34:21 2020 (r356748) +++ head/sys/netgraph/ng_base.c Wed Jan 15 03:35:57 2020 (r356749) @@ -55,6 +55,7 @@ #include #include #include +#include #include #include #include @@ -3398,6 +3399,7 @@ static void ngthread(void *arg) { for (;;) { + struct epoch_tracker et; node_p node; /* Get node from the worklist. */ @@ -3418,6 +3420,7 @@ ngthread(void *arg) * that lets us be sure that the node still exists. * Let the reference go at the last minute. */ + NET_EPOCH_ENTER(et); for (;;) { item_p item; int rw; @@ -3435,6 +3438,7 @@ ngthread(void *arg) NG_NODE_UNREF(node); } } + NET_EPOCH_EXIT(et); NG_NODE_UNREF(node); CURVNET_RESTORE(); } From owner-svn-src-all@freebsd.org Wed Jan 15 03:39:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 536721FDC88; Wed, 15 Jan 2020 03:39:12 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yCjr0mWkz40tc; Wed, 15 Jan 2020 03:39:12 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EE0F23A8; Wed, 15 Jan 2020 03:39:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3dB9e022005; Wed, 15 Jan 2020 03:39:11 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3dBch022004; Wed, 15 Jan 2020 03:39:11 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150339.00F3dBch022004@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:39:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356750 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356750 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:39:12 -0000 Author: glebius Date: Wed Jan 15 03:39:11 2020 New Revision: 356750 URL: https://svnweb.freebsd.org/changeset/base/356750 Log: Since this code uses if_ref()/if_rele() it must include if_var.h explicitly, not via header pollution. Modified: head/sys/kern/uipc_ktls.c Modified: head/sys/kern/uipc_ktls.c ============================================================================== --- head/sys/kern/uipc_ktls.c Wed Jan 15 03:35:57 2020 (r356749) +++ head/sys/kern/uipc_ktls.c Wed Jan 15 03:39:11 2020 (r356750) @@ -54,6 +54,8 @@ __FBSDID("$FreeBSD$"); #include #endif #include +#include +#include #ifdef RSS #include #include From owner-svn-src-all@freebsd.org Wed Jan 15 03:40:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EF4971FDD42; Wed, 15 Jan 2020 03:40:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yClN65fWz412j; Wed, 15 Jan 2020 03:40:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCB3F3B1; Wed, 15 Jan 2020 03:40:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3eWwQ022143; Wed, 15 Jan 2020 03:40:32 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3eWLR022142; Wed, 15 Jan 2020 03:40:32 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150340.00F3eWLR022142@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:40:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356751 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356751 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:40:33 -0000 Author: glebius Date: Wed Jan 15 03:40:32 2020 New Revision: 356751 URL: https://svnweb.freebsd.org/changeset/base/356751 Log: Since this code dereferences struct ifnet, it must include if_var.h explicitly, not via header pollution. While here move TCPSTATES declaration right above the include that is going to make use of it. Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 03:39:11 2020 (r356750) +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 03:40:32 2020 (r356751) @@ -49,9 +49,11 @@ __FBSDID("$FreeBSD$"); #include #include #include -#define TCPSTATES /* for logging */ +#include +#include #include #include +#define TCPSTATES /* for logging */ #include #ifdef INET6 #include From owner-svn-src-all@freebsd.org Wed Jan 15 03:41:15 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E15E31FDF1C; Wed, 15 Jan 2020 03:41:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yCmC5lsMz41LD; Wed, 15 Jan 2020 03:41:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C0DBC513; Wed, 15 Jan 2020 03:41:15 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F3fFbm024689; Wed, 15 Jan 2020 03:41:15 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F3fF55024688; Wed, 15 Jan 2020 03:41:15 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150341.00F3fF55024688@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 03:41:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356752 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356752 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 03:41:15 -0000 Author: glebius Date: Wed Jan 15 03:41:15 2020 New Revision: 356752 URL: https://svnweb.freebsd.org/changeset/base/356752 Log: Stop header pollution and don't include if_var.h via in_pcb.h. Modified: head/sys/netinet/in_pcb.h Modified: head/sys/netinet/in_pcb.h ============================================================================== --- head/sys/netinet/in_pcb.h Wed Jan 15 03:40:32 2020 (r356751) +++ head/sys/netinet/in_pcb.h Wed Jan 15 03:41:15 2020 (r356752) @@ -51,8 +51,6 @@ #include #include #include -#include -#include #include #endif #include From owner-svn-src-all@freebsd.org Wed Jan 15 05:45:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0203022123A; Wed, 15 Jan 2020 05:45:30 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yGWY6DDmz45lb; Wed, 15 Jan 2020 05:45:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D0E901BC7; Wed, 15 Jan 2020 05:45:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F5jTEb099261; Wed, 15 Jan 2020 05:45:29 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F5jSf6099253; Wed, 15 Jan 2020 05:45:28 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150545.00F5jSf6099253@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 05:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356753 - in head/sys: net netinet netinet6 X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: net netinet netinet6 X-SVN-Commit-Revision: 356753 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 05:45:30 -0000 Author: glebius Date: Wed Jan 15 05:45:27 2020 New Revision: 356753 URL: https://svnweb.freebsd.org/changeset/base/356753 Log: Mechanically substitute assertion of in_epoch(net_epoch_preempt) to NET_EPOCH_ASSERT(). NFC Modified: head/sys/net/if.c head/sys/net/if_ipsec.c head/sys/net/if_lagg.c head/sys/net/if_me.c head/sys/net/route.c head/sys/netinet/in_gif.c head/sys/netinet/ip_gre.c head/sys/netinet6/in6_gif.c head/sys/netinet6/ip6_gre.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/net/if.c Wed Jan 15 05:45:27 2020 (r356753) @@ -1964,7 +1964,7 @@ ifa_ifwithbroadaddr(const struct sockaddr *addr, int f struct ifnet *ifp; struct ifaddr *ifa; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { if ((fibnum != RT_ALL_FIBS) && (ifp->if_fib != fibnum)) continue; @@ -1994,7 +1994,7 @@ ifa_ifwithdstaddr(const struct sockaddr *addr, int fib struct ifnet *ifp; struct ifaddr *ifa; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link) { if ((ifp->if_flags & IFF_POINTOPOINT) == 0) continue; @@ -2027,7 +2027,7 @@ ifa_ifwithnet(const struct sockaddr *addr, int ignore_ u_int af = addr->sa_family; const char *addr_data = addr->sa_data, *cplim; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); /* * AF_LINK addresses can be looked up directly by their index number, * so do that if we can. @@ -2121,7 +2121,7 @@ ifaof_ifpforaddr(const struct sockaddr *addr, struct i if (af >= AF_MAX) return (NULL); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); CK_STAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family != af) continue; Modified: head/sys/net/if_ipsec.c ============================================================================== --- head/sys/net/if_ipsec.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/net/if_ipsec.c Wed Jan 15 05:45:27 2020 (r356753) @@ -796,7 +796,7 @@ ipsec_srcaddr(void *arg __unused, const struct sockadd if (V_ipsec_idhtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); CK_LIST_FOREACH(sc, ipsec_srchash(sa), srchash) { if (sc->family == 0) continue; Modified: head/sys/net/if_lagg.c ============================================================================== --- head/sys/net/if_lagg.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/net/if_lagg.c Wed Jan 15 05:45:27 2020 (r356753) @@ -76,7 +76,7 @@ __FBSDID("$FreeBSD$"); #define LAGG_RLOCK() struct epoch_tracker lagg_et; epoch_enter_preempt(net_epoch_preempt, &lagg_et) #define LAGG_RUNLOCK() epoch_exit_preempt(net_epoch_preempt, &lagg_et) -#define LAGG_RLOCK_ASSERT() MPASS(in_epoch(net_epoch_preempt)) +#define LAGG_RLOCK_ASSERT() NET_EPOCH_ASSERT() #define LAGG_UNLOCK_ASSERT() MPASS(!in_epoch(net_epoch_preempt)) #define LAGG_SX_INIT(_sc) sx_init(&(_sc)->sc_sx, "if_lagg sx") Modified: head/sys/net/if_me.c ============================================================================== --- head/sys/net/if_me.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/net/if_me.c Wed Jan 15 05:45:27 2020 (r356753) @@ -326,7 +326,7 @@ me_lookup(const struct mbuf *m, int off, int proto, vo if (V_me_hashtbl == NULL) return (0); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); ip = mtod(m, const struct ip *); CK_LIST_FOREACH(sc, &ME_HASH(ip->ip_dst.s_addr, ip->ip_src.s_addr), chain) { @@ -370,7 +370,7 @@ me_srcaddr(void *arg __unused, const struct sockaddr * if (V_me_hashtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); sin = (const struct sockaddr_in *)sa; CK_LIST_FOREACH(sc, &ME_SRCHASH(sin->sin_addr.s_addr), srchash) { if (sc->me_src.s_addr != sin->sin_addr.s_addr) Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/net/route.c Wed Jan 15 05:45:27 2020 (r356753) @@ -740,7 +740,7 @@ ifa_ifwithroute(int flags, const struct sockaddr *dst, struct ifaddr *ifa; int not_found = 0; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); if ((flags & RTF_GATEWAY) == 0) { /* * If we are adding a route to an interface, Modified: head/sys/netinet/in_gif.c ============================================================================== --- head/sys/netinet/in_gif.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/netinet/in_gif.c Wed Jan 15 05:45:27 2020 (r356753) @@ -152,7 +152,7 @@ in_gif_srcaddr(void *arg __unused, const struct sockad if (V_ipv4_hashtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); sin = (const struct sockaddr_in *)sa; CK_LIST_FOREACH(sc, &GIF_SRCHASH(sin->sin_addr.s_addr), srchash) { if (sc->gif_iphdr->ip_src.s_addr != sin->sin_addr.s_addr) @@ -275,7 +275,7 @@ in_gif_output(struct ifnet *ifp, struct mbuf *m, int p int len; /* prepend new IP header */ - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); len = sizeof(struct ip); #ifndef __NO_STRICT_ALIGNMENT if (proto == IPPROTO_ETHERIP) @@ -314,7 +314,7 @@ in_gif_input(struct mbuf *m, int off, int proto, void struct ip *ip; uint8_t ecn; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); if (sc == NULL) { m_freem(m); KMOD_IPSTAT_INC(ips_nogif); @@ -343,7 +343,7 @@ in_gif_lookup(const struct mbuf *m, int off, int proto if (V_ipv4_hashtbl == NULL) return (0); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); ip = mtod(m, const struct ip *); /* * NOTE: it is safe to iterate without any locking here, because softc Modified: head/sys/netinet/ip_gre.c ============================================================================== --- head/sys/netinet/ip_gre.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/netinet/ip_gre.c Wed Jan 15 05:45:27 2020 (r356753) @@ -162,7 +162,7 @@ in_gre_lookup(const struct mbuf *m, int off, int proto if (V_ipv4_hashtbl == NULL) return (0); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); ip = mtod(m, const struct ip *); CK_LIST_FOREACH(sc, &GRE_HASH(ip->ip_dst.s_addr, ip->ip_src.s_addr), chain) { @@ -210,7 +210,7 @@ in_gre_srcaddr(void *arg __unused, const struct sockad if (V_ipv4_hashtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); sin = (const struct sockaddr_in *)sa; CK_LIST_FOREACH(sc, &GRE_SRCHASH(sin->sin_addr.s_addr), srchash) { if (sc->gre_oip.ip_src.s_addr != sin->sin_addr.s_addr) Modified: head/sys/netinet6/in6_gif.c ============================================================================== --- head/sys/netinet6/in6_gif.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/netinet6/in6_gif.c Wed Jan 15 05:45:27 2020 (r356753) @@ -157,7 +157,7 @@ in6_gif_srcaddr(void *arg __unused, const struct socka if (V_ipv6_hashtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); sin = (const struct sockaddr_in6 *)sa; CK_LIST_FOREACH(sc, &GIF_SRCHASH(&sin->sin6_addr), srchash) { if (IN6_ARE_ADDR_EQUAL(&sc->gif_ip6hdr->ip6_src, @@ -293,7 +293,7 @@ in6_gif_output(struct ifnet *ifp, struct mbuf *m, int int len; /* prepend new IP header */ - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); len = sizeof(struct ip6_hdr); #ifndef __NO_STRICT_ALIGNMENT if (proto == IPPROTO_ETHERIP) @@ -335,7 +335,7 @@ in6_gif_input(struct mbuf *m, int off, int proto, void struct ip6_hdr *ip6; uint8_t ecn; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); if (sc == NULL) { m_freem(m); IP6STAT_INC(ip6s_nogif); @@ -364,7 +364,7 @@ in6_gif_lookup(const struct mbuf *m, int off, int prot if (V_ipv6_hashtbl == NULL) return (0); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); /* * NOTE: it is safe to iterate without any locking here, because softc * can be reclaimed only when we are not within net_epoch_preempt Modified: head/sys/netinet6/ip6_gre.c ============================================================================== --- head/sys/netinet6/ip6_gre.c Wed Jan 15 03:41:15 2020 (r356752) +++ head/sys/netinet6/ip6_gre.c Wed Jan 15 05:45:27 2020 (r356753) @@ -153,7 +153,7 @@ in6_gre_lookup(const struct mbuf *m, int off, int prot if (V_ipv6_hashtbl == NULL) return (0); - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); ip6 = mtod(m, const struct ip6_hdr *); CK_LIST_FOREACH(sc, &GRE_HASH(&ip6->ip6_dst, &ip6->ip6_src), chain) { /* @@ -202,7 +202,7 @@ in6_gre_srcaddr(void *arg __unused, const struct socka if (V_ipv6_hashtbl == NULL) return; - MPASS(in_epoch(net_epoch_preempt)); + NET_EPOCH_ASSERT(); sin = (const struct sockaddr_in6 *)sa; CK_LIST_FOREACH(sc, &GRE_SRCHASH(&sin->sin6_addr), srchash) { if (IN6_ARE_ADDR_EQUAL(&sc->gre_oip6.ip6_src, From owner-svn-src-all@freebsd.org Wed Jan 15 05:48:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 93C8E221403; Wed, 15 Jan 2020 05:48:36 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yGb83SLNz45ws; Wed, 15 Jan 2020 05:48:36 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7202D1BCF; Wed, 15 Jan 2020 05:48:36 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F5mael099448; Wed, 15 Jan 2020 05:48:36 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F5maIf099447; Wed, 15 Jan 2020 05:48:36 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150548.00F5maIf099447@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 05:48:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356754 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356754 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 05:48:36 -0000 Author: glebius Date: Wed Jan 15 05:48:36 2020 New Revision: 356754 URL: https://svnweb.freebsd.org/changeset/base/356754 Log: Use official macro to enter/exit the network epoch. NFC Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 05:45:27 2020 (r356753) +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 05:48:36 2020 (r356754) @@ -880,7 +880,7 @@ rt_setup_rate(struct inpcb *inp, struct ifnet *ifp, ui struct epoch_tracker et; int err; - epoch_enter_preempt(net_epoch_preempt, &et); + NET_EPOCH_ENTER(et); use_real_interface: CK_LIST_FOREACH(rs, &int_rs, next) { /* @@ -920,7 +920,7 @@ use_real_interface: if ((rs == NULL) || (rs->rs_disable != 0)) { if (rs->rs_disable && error) *error = ENOSPC; - epoch_exit_preempt(net_epoch_preempt, &et); + NET_EPOCH_EXIT(et); return (NULL); } if (rs->rs_flags & RS_IS_DEFF) { @@ -931,7 +931,7 @@ use_real_interface: if (tifp == NULL) { if (rs->rs_disable && error) *error = ENOTSUP; - epoch_exit_preempt(net_epoch_preempt, &et); + NET_EPOCH_EXIT(et); return (NULL); } goto use_real_interface; @@ -940,7 +940,7 @@ use_real_interface: ((rs->rs_flows_using + 1) > rs->rs_flow_limit)) { if (error) *error = ENOSPC; - epoch_exit_preempt(net_epoch_preempt, &et); + NET_EPOCH_EXIT(et); return (NULL); } rte = tcp_find_suitable_rate(rs, bytes_per_sec, flags); @@ -964,7 +964,7 @@ use_real_interface: */ atomic_add_64(&rs->rs_flows_using, 1); } - epoch_exit_preempt(net_epoch_preempt, &et); + NET_EPOCH_EXIT(et); return (rte); } From owner-svn-src-all@freebsd.org Wed Jan 15 06:05:23 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6CD74221B82; Wed, 15 Jan 2020 06:05:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yGyW1zTWz47CY; Wed, 15 Jan 2020 06:05:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 247A61F9A; Wed, 15 Jan 2020 06:05:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F65NuU011539; Wed, 15 Jan 2020 06:05:23 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F65Kc8011526; Wed, 15 Jan 2020 06:05:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150605.00F65Kc8011526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 06:05:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys X-SVN-Commit-Revision: 356755 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 06:05:23 -0000 Author: glebius Date: Wed Jan 15 06:05:20 2020 New Revision: 356755 URL: https://svnweb.freebsd.org/changeset/base/356755 Log: Introduce NET_EPOCH_CALL() macro and use it everywhere where we free data based on the network epoch. The macro reverses the argument order of epoch_call(9) - first function, then its argument. NFC Modified: head/sys/net/bpf.c head/sys/net/if.c head/sys/net/if_gre.c head/sys/net/if_lagg.c head/sys/net/if_vlan.c head/sys/netinet/in.c head/sys/netinet/in_pcb.c head/sys/netinet/ip_gre.c head/sys/netinet/tcp_ratelimit.c head/sys/netinet6/in6.c head/sys/netinet6/ip6_gre.c head/sys/netpfil/ipfw/nat64/nat64lsn.c head/sys/sys/epoch.h Modified: head/sys/net/bpf.c ============================================================================== --- head/sys/net/bpf.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/net/bpf.c Wed Jan 15 06:05:20 2020 (r356755) @@ -274,10 +274,10 @@ static struct filterops bpfread_filtops = { * * 2. An userland application uses ioctl() call to bpf_d descriptor. * All such call are serialized with global lock. BPF filters can be - * changed, but pointer to old filter will be freed using epoch_call(). + * changed, but pointer to old filter will be freed using NET_EPOCH_CALL(). * Thus it should be safe for bpf_tap/bpf_mtap* code to do access to * filter pointers, even if change will happen during bpf_tap execution. - * Destroying of bpf_d descriptor also is doing using epoch_call(). + * Destroying of bpf_d descriptor also is doing using NET_EPOCH_CALL(). * * 3. An userland application can write packets into bpf_d descriptor. * There we need to be sure, that ifnet won't disappear during bpfwrite(). @@ -288,7 +288,7 @@ static struct filterops bpfread_filtops = { * * 5. The kernel invokes bpfdetach() on interface destroying. All lists * are modified with global lock held and actual free() is done using - * epoch_call(). + * NET_EPOCH_CALL(). */ static void @@ -314,7 +314,7 @@ bpfif_rele(struct bpf_if *bp) if (!refcount_release(&bp->bif_refcnt)) return; - epoch_call(net_epoch_preempt, &bp->epoch_ctx, bpfif_free); + NET_EPOCH_CALL(bpfif_free, &bp->epoch_ctx); } static void @@ -330,7 +330,7 @@ bpfd_rele(struct bpf_d *d) if (!refcount_release(&d->bd_refcnt)) return; - epoch_call(net_epoch_preempt, &d->epoch_ctx, bpfd_free); + NET_EPOCH_CALL(bpfd_free, &d->epoch_ctx); } static struct bpf_program_buffer* @@ -2036,8 +2036,7 @@ bpf_setf(struct bpf_d *d, struct bpf_program *fp, u_lo BPFD_UNLOCK(d); if (fcode != NULL) - epoch_call(net_epoch_preempt, &fcode->epoch_ctx, - bpf_program_buffer_free); + NET_EPOCH_CALL(bpf_program_buffer_free, &fcode->epoch_ctx); if (track_event) EVENTHANDLER_INVOKE(bpf_track, Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/net/if.c Wed Jan 15 06:05:20 2020 (r356755) @@ -654,7 +654,7 @@ if_free(struct ifnet *ifp) IFNET_WUNLOCK(); if (refcount_release(&ifp->if_refcount)) - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, if_destroy); + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); CURVNET_RESTORE(); } @@ -677,7 +677,7 @@ if_rele(struct ifnet *ifp) if (!refcount_release(&ifp->if_refcount)) return; - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, if_destroy); + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); } void @@ -1826,7 +1826,7 @@ ifa_free(struct ifaddr *ifa) { if (refcount_release(&ifa->ifa_refcnt)) - epoch_call(net_epoch_preempt, &ifa->ifa_epoch_ctx, ifa_destroy); + NET_EPOCH_CALL(ifa_destroy, &ifa->ifa_epoch_ctx); } @@ -3410,7 +3410,7 @@ if_freemulti(struct ifmultiaddr *ifma) KASSERT(ifma->ifma_refcount == 0, ("if_freemulti_epoch: refcount %d", ifma->ifma_refcount)); - epoch_call(net_epoch_preempt, &ifma->ifma_epoch_ctx, if_destroymulti); + NET_EPOCH_CALL(if_destroymulti, &ifma->ifma_epoch_ctx); } Modified: head/sys/net/if_gre.c ============================================================================== --- head/sys/net/if_gre.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/net/if_gre.c Wed Jan 15 06:05:20 2020 (r356755) @@ -392,7 +392,7 @@ gre_delete_tunnel(struct gre_softc *sc) if ((gs = sc->gre_so) != NULL && CK_LIST_EMPTY(&gs->list)) { CK_LIST_REMOVE(gs, chain); soclose(gs->so); - epoch_call(net_epoch_preempt, &gs->epoch_ctx, gre_sofree); + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); sc->gre_so = NULL; } GRE2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING; Modified: head/sys/net/if_lagg.c ============================================================================== --- head/sys/net/if_lagg.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/net/if_lagg.c Wed Jan 15 06:05:20 2020 (r356755) @@ -910,7 +910,7 @@ lagg_port_destroy(struct lagg_port *lp, int rundelport * free port and release it's ifnet reference after a grace period has * elapsed. */ - epoch_call(net_epoch_preempt, &lp->lp_epoch_ctx, lagg_port_destroy_cb); + NET_EPOCH_CALL(lagg_port_destroy_cb, &lp->lp_epoch_ctx); /* Update lagg capabilities */ lagg_capabilities(sc); lagg_linkstate(sc); Modified: head/sys/net/if_vlan.c ============================================================================== --- head/sys/net/if_vlan.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/net/if_vlan.c Wed Jan 15 06:05:20 2020 (r356755) @@ -584,7 +584,7 @@ vlan_setmulti(struct ifnet *ifp) while ((mc = CK_SLIST_FIRST(&sc->vlan_mc_listhead)) != NULL) { CK_SLIST_REMOVE_HEAD(&sc->vlan_mc_listhead, mc_entries); (void)if_delmulti(ifp_p, (struct sockaddr *)&mc->mc_addr); - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, vlan_mc_free); + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); } /* Now program new ones. */ @@ -1543,7 +1543,7 @@ vlan_unconfig_locked(struct ifnet *ifp, int departing) error); } CK_SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries); - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, vlan_mc_free); + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); } vlan_setflags(ifp, 0); /* clear special flags on parent */ Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet/in.c Wed Jan 15 06:05:20 2020 (r356755) @@ -1087,7 +1087,7 @@ in_lltable_destroy_lle(struct llentry *lle) { LLE_WUNLOCK(lle); - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in_lltable_destroy_lle_unlocked); + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); } static struct llentry * @@ -1348,7 +1348,7 @@ in_lltable_alloc(struct lltable *llt, u_int flags, con linkhdrsize = LLE_MAX_LINKHDR; if (lltable_calc_llheader(ifp, AF_INET, IF_LLADDR(ifp), linkhdr, &linkhdrsize, &lladdr_off) != 0) { - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in_lltable_destroy_lle_unlocked); + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); return (NULL); } lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, Modified: head/sys/netinet/in_pcb.c ============================================================================== --- head/sys/netinet/in_pcb.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet/in_pcb.c Wed Jan 15 06:05:20 2020 (r356755) @@ -269,8 +269,7 @@ in_pcblbgroup_free(struct inpcblbgroup *grp) { CK_LIST_REMOVE(grp, il_list); - epoch_call(net_epoch_preempt, &grp->il_epoch_ctx, - in_pcblbgroup_free_deferred); + NET_EPOCH_CALL(in_pcblbgroup_free_deferred, &grp->il_epoch_ctx); } static struct inpcblbgroup * @@ -1663,7 +1662,7 @@ in_pcbfree(struct inpcb *inp) /* mark as destruction in progress */ inp->inp_flags2 |= INP_FREED; INP_WUNLOCK(inp); - epoch_call(net_epoch_preempt, &inp->inp_epoch_ctx, in_pcbfree_deferred); + NET_EPOCH_CALL(in_pcbfree_deferred, &inp->inp_epoch_ctx); } /* @@ -1704,7 +1703,7 @@ in_pcbdrop(struct inpcb *inp) CK_LIST_REMOVE(inp, inp_portlist); if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { CK_LIST_REMOVE(phd, phd_hash); - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, inpcbport_free); + NET_EPOCH_CALL(inpcbport_free, &phd->phd_epoch_ctx); } INP_HASH_WUNLOCK(inp->inp_pcbinfo); inp->inp_flags &= ~INP_INHASHLIST; @@ -2674,7 +2673,7 @@ in_pcbremlists(struct inpcb *inp) CK_LIST_REMOVE(inp, inp_portlist); if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { CK_LIST_REMOVE(phd, phd_hash); - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, inpcbport_free); + NET_EPOCH_CALL(inpcbport_free, &phd->phd_epoch_ctx); } INP_HASH_WUNLOCK(pcbinfo); inp->inp_flags &= ~INP_INHASHLIST; Modified: head/sys/netinet/ip_gre.c ============================================================================== --- head/sys/netinet/ip_gre.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet/ip_gre.c Wed Jan 15 06:05:20 2020 (r356755) @@ -235,7 +235,7 @@ in_gre_udp_input(struct mbuf *m, int off, struct inpcb * If socket was closed before we have entered NET_EPOCH section, * INP_FREED flag should be set. Otherwise it should be safe to * make access to ctx data, because gre_so will be freed by - * gre_sofree() via epoch_call(). + * gre_sofree() via NET_EPOCH_CALL(). */ if (__predict_false(inp->inp_flags2 & INP_FREED)) { NET_EPOCH_EXIT(et); @@ -284,8 +284,7 @@ in_gre_setup_socket(struct gre_softc *sc) if (CK_LIST_EMPTY(&gs->list)) { CK_LIST_REMOVE(gs, chain); soclose(gs->so); - epoch_call(net_epoch_preempt, &gs->epoch_ctx, - gre_sofree); + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); } gs = sc->gre_so = NULL; } Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 06:05:20 2020 (r356755) @@ -286,7 +286,7 @@ rs_defer_destroy(struct tcp_rate_set *rs) /* Set flag to only defer once. */ rs->rs_flags |= RS_FUNERAL_SCHD; - epoch_call(net_epoch_preempt, &rs->rs_epoch_ctx, rs_destroy); + NET_EPOCH_CALL(rs_destroy, &rs->rs_epoch_ctx); } #ifdef INET Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet6/in6.c Wed Jan 15 06:05:20 2020 (r356755) @@ -2061,7 +2061,7 @@ in6_lltable_destroy_lle(struct llentry *lle) { LLE_WUNLOCK(lle); - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in6_lltable_destroy_lle_unlocked); + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); } static struct llentry * @@ -2282,7 +2282,7 @@ in6_lltable_alloc(struct lltable *llt, u_int flags, linkhdrsize = LLE_MAX_LINKHDR; if (lltable_calc_llheader(ifp, AF_INET6, IF_LLADDR(ifp), linkhdr, &linkhdrsize, &lladdr_off) != 0) { - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in6_lltable_destroy_lle_unlocked); + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); return (NULL); } lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, Modified: head/sys/netinet6/ip6_gre.c ============================================================================== --- head/sys/netinet6/ip6_gre.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netinet6/ip6_gre.c Wed Jan 15 06:05:20 2020 (r356755) @@ -228,7 +228,7 @@ in6_gre_udp_input(struct mbuf *m, int off, struct inpc * If socket was closed before we have entered NET_EPOCH section, * INP_FREED flag should be set. Otherwise it should be safe to * make access to ctx data, because gre_so will be freed by - * gre_sofree() via epoch_call(). + * gre_sofree() via NET_EPOCH_CALL(). */ if (__predict_false(inp->inp_flags2 & INP_FREED)) { NET_EPOCH_EXIT(et); @@ -280,8 +280,7 @@ in6_gre_setup_socket(struct gre_softc *sc) if (CK_LIST_EMPTY(&gs->list)) { CK_LIST_REMOVE(gs, chain); soclose(gs->so); - epoch_call(net_epoch_preempt, &gs->epoch_ctx, - gre_sofree); + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); } gs = sc->gre_so = NULL; } Modified: head/sys/netpfil/ipfw/nat64/nat64lsn.c ============================================================================== --- head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 06:05:20 2020 (r356755) @@ -75,7 +75,7 @@ MALLOC_DEFINE(M_NAT64LSN, "NAT64LSN", "NAT64LSN"); #define NAT64LSN_EPOCH_ENTER(et) NET_EPOCH_ENTER(et) #define NAT64LSN_EPOCH_EXIT(et) NET_EPOCH_EXIT(et) #define NAT64LSN_EPOCH_ASSERT() NET_EPOCH_ASSERT() -#define NAT64LSN_EPOCH_CALL(c, f) epoch_call(net_epoch_preempt, (c), (f)) +#define NAT64LSN_EPOCH_CALL(c, f) NET_EPOCH_CALL((f), (c)) static uma_zone_t nat64lsn_host_zone; static uma_zone_t nat64lsn_pgchunk_zone; Modified: head/sys/sys/epoch.h ============================================================================== --- head/sys/sys/epoch.h Wed Jan 15 05:48:36 2020 (r356754) +++ head/sys/sys/epoch.h Wed Jan 15 06:05:20 2020 (r356755) @@ -101,6 +101,7 @@ extern epoch_t net_epoch_preempt; #define NET_EPOCH_ENTER(et) epoch_enter_preempt(net_epoch_preempt, &(et)) #define NET_EPOCH_EXIT(et) epoch_exit_preempt(net_epoch_preempt, &(et)) #define NET_EPOCH_WAIT() epoch_wait_preempt(net_epoch_preempt) +#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (c), (f)) #define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) #endif /* _KERNEL */ From owner-svn-src-all@freebsd.org Wed Jan 15 06:10:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 62E4E221D63; Wed, 15 Jan 2020 06:10:55 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yH4t6b4Gz47Rb; Wed, 15 Jan 2020 06:10:54 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 00F6Akgo090258 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 14 Jan 2020 22:10:46 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 00F6Ak2u090257; Tue, 14 Jan 2020 22:10:46 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Tue, 14 Jan 2020 22:10:46 -0800 From: Gleb Smirnoff To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Cc: hselasky@freebsd.org, bz@freebsd.org, cem@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys Message-ID: <20200115061046.GR39529@FreeBSD.org> References: <202001150605.00F65Kc8011526@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <202001150605.00F65Kc8011526@repo.freebsd.org> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47yH4t6b4Gz47Rb X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-0.20 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_SPAM_MEDIUM(0.67)[0.669,0]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US]; NEURAL_HAM_LONG(-0.87)[-0.865,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 06:10:55 -0000 Hi, On Wed, Jan 15, 2020 at 06:05:20AM +0000, Gleb Smirnoff wrote: T> Log: T> Introduce NET_EPOCH_CALL() macro and use it everywhere where we free T> data based on the network epoch. The macro reverses the argument T> order of epoch_call(9) - first function, then its argument. NFC I really want to reverse the argument order of epoch_call() as well. The current order is really backwards: void epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback)(epoch_context_t)); Suggested declaration is: void epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback)(epoch_context_t)); This will be a very easy change, since today function is used just in few places. Before branching stable/12 we intentionally put this note in epoch.9 manual page: NOTES The epoch kernel programming interface is under development and is subject to change. Any objections? -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Wed Jan 15 06:12:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A01C7221F28; Wed, 15 Jan 2020 06:12:39 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yH6v3khLz47pJ; Wed, 15 Jan 2020 06:12:39 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7B5892162; Wed, 15 Jan 2020 06:12:39 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F6Cdt3017108; Wed, 15 Jan 2020 06:12:39 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F6Cdig017107; Wed, 15 Jan 2020 06:12:39 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150612.00F6Cdig017107@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 06:12:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356756 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356756 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 06:12:39 -0000 Author: glebius Date: Wed Jan 15 06:12:39 2020 New Revision: 356756 URL: https://svnweb.freebsd.org/changeset/base/356756 Log: A miss from r356754. Modified: head/sys/netinet/tcp_ratelimit.c Modified: head/sys/netinet/tcp_ratelimit.c ============================================================================== --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 06:05:20 2020 (r356755) +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 06:12:39 2020 (r356756) @@ -913,7 +913,7 @@ use_real_interface: */ if (rs->rs_disable && error) *error = ENODEV; - epoch_exit_preempt(net_epoch_preempt, &et); + NET_EPOCH_EXIT(et); return (NULL); } From owner-svn-src-all@freebsd.org Wed Jan 15 06:18:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 80DE722200B; Wed, 15 Jan 2020 06:18:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yHFj2WK8z47xp; Wed, 15 Jan 2020 06:18:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4D4ED2165; Wed, 15 Jan 2020 06:18:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F6IX6A017438; Wed, 15 Jan 2020 06:18:33 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F6IWB4017436; Wed, 15 Jan 2020 06:18:32 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001150618.00F6IWB4017436@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 15 Jan 2020 06:18:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356757 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 356757 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 06:18:33 -0000 Author: glebius Date: Wed Jan 15 06:18:32 2020 New Revision: 356757 URL: https://svnweb.freebsd.org/changeset/base/356757 Log: gif_transmit() must always be called in the network epoch. Modified: head/sys/net/if_gif.c head/sys/net/if_gif.h Modified: head/sys/net/if_gif.c ============================================================================== --- head/sys/net/if_gif.c Wed Jan 15 06:12:39 2020 (r356756) +++ head/sys/net/if_gif.c Wed Jan 15 06:18:32 2020 (r356757) @@ -272,7 +272,7 @@ gif_transmit(struct ifnet *ifp, struct mbuf *m) uint8_t proto, ecn; int error; - GIF_RLOCK(); + NET_EPOCH_ASSERT(); #ifdef MAC error = mac_ifnet_check_transmit(ifp, m); if (error) { @@ -370,7 +370,6 @@ gif_transmit(struct ifnet *ifp, struct mbuf *m) err: if (error) if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); - GIF_RUNLOCK(); return (error); } Modified: head/sys/net/if_gif.h ============================================================================== --- head/sys/net/if_gif.h Wed Jan 15 06:12:39 2020 (r356756) +++ head/sys/net/if_gif.h Wed Jan 15 06:18:32 2020 (r356757) @@ -97,8 +97,6 @@ struct etherip_header { /* mbuf adjust factor to force 32-bit alignment of IP header */ #define ETHERIP_ALIGN 2 -#define GIF_RLOCK() struct epoch_tracker gif_et; epoch_enter_preempt(net_epoch_preempt, &gif_et) -#define GIF_RUNLOCK() epoch_exit_preempt(net_epoch_preempt, &gif_et) #define GIF_WAIT() epoch_wait_preempt(net_epoch_preempt) /* Prototypes */ From owner-svn-src-all@freebsd.org Wed Jan 15 07:19:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B2926223754 for ; Wed, 15 Jan 2020 07:19:18 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yJbn62K0z4Blr for ; Wed, 15 Jan 2020 07:19:17 +0000 (UTC) (envelope-from steven@multiplay.co.uk) Received: by mail-io1-xd2d.google.com with SMTP id n11so16689059iom.9 for ; Tue, 14 Jan 2020 23:19:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=multiplay-co-uk.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=KeFNWLQnCT09FnXZIBXXsDN57SPBBnjfcPm/zG5/NJg=; b=F5Czsf5+cxJIrkzE0Ecux5CT4FTrbm1GReEjAieanJvDGy45Xz4qxD07hlwNXr2wfC +IwmB1yi2OzjsA2+UjXnA2LxTyeeSvgNbuoBspwGLvPfdFhbs4JFNn0dCa18/9m0fqiH Ewp3yW0vxJ7vzvw9ZhkxE827joSRB3Woaqa98NKFxh+EQ4Ty8jhwiSH3gmrq3uWDd5Ik DI32mMr15Hz5vgtKGpRfGGImeVRHs9U/pgKWcOtrpYGa2p9lqSqjw8+g1NO0YfsqLLNN 24EDfQinmXraW9Ax8FtCYbUjF5HEqaUqrQrtlWI9KlPRgBdopcyxW4zP78uQsZTn9aGH Q1Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=KeFNWLQnCT09FnXZIBXXsDN57SPBBnjfcPm/zG5/NJg=; b=PayL3OG1JNytw3U9qDnrakVpjySunXrt+C7n1uwd8lR43eBMTjC7qFC7Zjiu/g/2aJ 4bCjHWuQ9J48h9+YYqX2rIdk5So6PvctVa5CLEPt4P4nYG2PJgq4EmlvQth7v2+AVIp8 s9Ta+9qjFGwRqe/Di6x8Mg3K3Khrn9am/7BwHDm1HIz+z2XgkqGnKEmtVygcp0s8/ZOQ LKqYKjp71KYYh0VcBvHN3LxGSPulrARtcjDtkNv/5lyZpk7Ke0AqDEyPe8M1N5y6y1tD 7rKZX8GRKJ035yJNwllyUAExH1oBz3bf02XL4+JgrnZPC1Nt2UaDnijPxJbSPmMWtL+u nUsQ== X-Gm-Message-State: APjAAAXQf3H+Y6Pkce9kfsq0FAWhfUmiGg0ovqw0yzr5ut8CW+UrP6Wf tJmm6m7kfDXy6W8nnD6ykwNgaYNT6XAxEhaaasjKFA== X-Google-Smtp-Source: APXvYqwwp9VrrpK84f+MRsBIhuwNQPDRq6MmOHNYmt66NlPpmpMMcxBnl2guXaOTUl7yqCvH5JK8Gd65B9K5eylLJMM= X-Received: by 2002:a5d:840a:: with SMTP id i10mr20968402ion.225.1579072756239; Tue, 14 Jan 2020 23:19:16 -0800 (PST) MIME-Version: 1.0 References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115061046.GR39529@FreeBSD.org> In-Reply-To: <20200115061046.GR39529@FreeBSD.org> From: Steven Hartland Date: Wed, 15 Jan 2020 07:19:05 +0000 Message-ID: Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Gleb Smirnoff Cc: bz@freebsd.org, cem@freebsd.org, hselasky@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-Rspamd-Queue-Id: 47yJbn62K0z4Blr X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=multiplay-co-uk.20150623.gappssmtp.com header.s=20150623 header.b=F5Czsf5+; dmarc=pass (policy=none) header.from=multiplay.co.uk; spf=pass (mx1.freebsd.org: domain of steven@multiplay.co.uk designates 2607:f8b0:4864:20::d2d as permitted sender) smtp.mailfrom=steven@multiplay.co.uk X-Spamd-Result: default: False [-4.86 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[multiplay-co-uk.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[multiplay-co-uk.20150623.gappssmtp.com:+]; DMARC_POLICY_ALLOW(-0.50)[multiplay.co.uk,none]; RCVD_IN_DNSWL_NONE(0.00)[d.2.d.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[7]; FORGED_SENDER(0.30)[steven.hartland@multiplay.co.uk,steven@multiplay.co.uk]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.16)[ip: (-6.85), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[steven.hartland@multiplay.co.uk,steven@multiplay.co.uk]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 07:19:18 -0000 Aren=E2=80=99t the current and suggested the same there or do I need more c= offee this morning? On Wed, 15 Jan 2020 at 06:10, Gleb Smirnoff wrote: > Hi, > > On Wed, Jan 15, 2020 at 06:05:20AM +0000, Gleb Smirnoff wrote: > T> Log: > T> Introduce NET_EPOCH_CALL() macro and use it everywhere where we free > T> data based on the network epoch. The macro reverses the argument > T> order of epoch_call(9) - first function, then its argument. NFC > > I really want to reverse the argument order of epoch_call() as well. > The current order is really backwards: > > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); > > Suggested declaration is: > > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); > > This will be a very easy change, since today function is > used just in few places. > > Before branching stable/12 we intentionally put this > note in epoch.9 manual page: > > NOTES > The epoch kernel programming interface is under development and is > subject to change. > > Any objections? > > -- > Gleb Smirnoff > From owner-svn-src-all@freebsd.org Wed Jan 15 07:47:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5124F223DAA; Wed, 15 Jan 2020 07:47:53 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yKDn1TZrz4Cg7; Wed, 15 Jan 2020 07:47:53 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 298A831F5; Wed, 15 Jan 2020 07:47:53 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00F7lrvf071098; Wed, 15 Jan 2020 07:47:53 GMT (envelope-from woodsb02@FreeBSD.org) Received: (from woodsb02@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00F7lqiG071097; Wed, 15 Jan 2020 07:47:52 GMT (envelope-from woodsb02@FreeBSD.org) Message-Id: <202001150747.00F7lqiG071097@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: woodsb02 set sender to woodsb02@FreeBSD.org using -f From: Ben Woods Date: Wed, 15 Jan 2020 07:47:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts X-SVN-Group: head X-SVN-Commit-Author: woodsb02 X-SVN-Commit-Paths: in head/usr.sbin/bsdinstall: . scripts X-SVN-Commit-Revision: 356758 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 07:47:53 -0000 Author: woodsb02 (ports committer) Date: Wed Jan 15 07:47:52 2020 New Revision: 356758 URL: https://svnweb.freebsd.org/changeset/base/356758 Log: bsdinstall: Change "default" (first) Partitioning method to ZFS Reported by: Ruben Schade (during his talk at linux.conf.au) Approved by: philip Differential Revision: https://reviews.freebsd.org/D23173 Modified: head/usr.sbin/bsdinstall/bsdinstall.8 head/usr.sbin/bsdinstall/scripts/auto Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 06:18:32 2020 (r356757) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 07:47:52 2020 (r356758) @@ -119,7 +119,7 @@ Provides the installer's interactive guided disk parti installations. Defaults to UFS. .It Cm zfsboot -Provides an alternative ZFS-only automatic interactive disk partitioner. +Provides a ZFS-only automatic interactive disk partitioner. Creates a single .Ic zpool with separate datasets for Modified: head/usr.sbin/bsdinstall/scripts/auto ============================================================================== --- head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 06:18:32 2020 (r356757) +++ head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 07:47:52 2020 (r356758) @@ -289,7 +289,7 @@ Shell \"Open a shell and partition by hand\"" CURARCH=$( uname -m ) case $CURARCH in amd64|arm64|i386) # Booting ZFS Supported - PMODES="$PMODES \"Auto (ZFS)\" \"Guided Root-on-ZFS\"" + PMODES="\"Auto (ZFS)\" \"Guided Root-on-ZFS\" $PMODES" ;; *) # Booting ZFS Unspported ;; @@ -303,6 +303,10 @@ PARTMODE=`echo $PMODES | xargs dialog --backtitle "Fre exec 3>&- case "$PARTMODE" in +"Auto (ZFS)") # ZFS + bsdinstall zfsboot || error "ZFS setup failed" + bsdinstall mount || error "Failed to mount filesystem" + ;; "Auto (UFS)") # Guided bsdinstall autopart || error "Partitioning error" bsdinstall mount || error "Failed to mount filesystem" @@ -319,10 +323,6 @@ case "$PARTMODE" in else bsdinstall partedit || error "Partitioning error" fi - bsdinstall mount || error "Failed to mount filesystem" - ;; -"Auto (ZFS)") # ZFS - bsdinstall zfsboot || error "ZFS setup failed" bsdinstall mount || error "Failed to mount filesystem" ;; *) From owner-svn-src-all@freebsd.org Wed Jan 15 08:34:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2B0562254C9; Wed, 15 Jan 2020 08:34:12 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [18.222.6.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.soaustin.net", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yLGC2lfyz4FVr; Wed, 15 Jan 2020 08:34:10 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from lonesome.com (unknown [18.188.142.31]) by mail.soaustin.net (Postfix) with ESMTPSA id 19475170E3; Wed, 15 Jan 2020 08:34:10 +0000 (UTC) Date: Wed, 15 Jan 2020 08:34:09 +0000 From: Mark Linimon To: Gleb Smirnoff Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, bz@freebsd.org, hselasky@freebsd.org, cem@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys Message-ID: <20200115083407.GA21335@lonesome.com> References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115061046.GR39529@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200115061046.GR39529@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Rspamd-Queue-Id: 47yLGC2lfyz4FVr X-Spamd-Bar: + Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of linimon@lonesome.com has no SPF policy when checking 18.222.6.11) smtp.mailfrom=linimon@lonesome.com X-Spamd-Result: default: False [1.05 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-0.41)[-0.412,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[lonesome.com]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.97)[0.965,0]; IP_SCORE(-0.21)[ip: (0.02), ipnet: 18.220.0.0/14(0.19), asn: 16509(-1.18), country: US(-0.05)]; RCVD_IN_DNSWL_MED(-0.20)[11.6.222.18.list.dnswl.org : 127.0.5.2]; RCPT_COUNT_SEVEN(0.00)[7]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:16509, ipnet:18.220.0.0/14, country:US]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 08:34:12 -0000 On Tue, Jan 14, 2020 at 10:10:46PM -0800, Gleb Smirnoff wrote: > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); > > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); I'm staring at these *really* hard and ... can't tell the difference? mcl From owner-svn-src-all@freebsd.org Wed Jan 15 08:51:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 33407225A4A; Wed, 15 Jan 2020 08:51:10 +0000 (UTC) (envelope-from hps@selasky.org) Received: from mail.turbocat.net (turbocat.net [88.99.82.50]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47yLdn2dxgz4GCr; Wed, 15 Jan 2020 08:51:08 +0000 (UTC) (envelope-from hps@selasky.org) Received: from hps2020.home.selasky.org (unknown [62.141.129.235]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by mail.turbocat.net (Postfix) with ESMTPSA id 0165C2602AB; Wed, 15 Jan 2020 09:51:06 +0100 (CET) Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Cc: bz@freebsd.org, cem@freebsd.org References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115061046.GR39529@FreeBSD.org> From: Hans Petter Selasky Message-ID: Date: Wed, 15 Jan 2020 09:51:02 +0100 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.3.1 MIME-Version: 1.0 In-Reply-To: <20200115061046.GR39529@FreeBSD.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47yLdn2dxgz4GCr X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of hps@selasky.org designates 88.99.82.50 as permitted sender) smtp.mailfrom=hps@selasky.org X-Spamd-Result: default: False [-5.31 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-0.90)[-0.901,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+a:mail.turbocat.net:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[selasky.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCPT_COUNT_FIVE(0.00)[6]; IP_SCORE(-3.11)[ip: (-9.34), ipnet: 88.99.0.0/16(-4.71), asn: 24940(-1.51), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:88.99.0.0/16, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 08:51:10 -0000 On 2020-01-15 07:10, Gleb Smirnoff wrote: > I really want to reverse the argument order of epoch_call() as well. > The current order is really backwards: > > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); > > Suggested declaration is: > > void > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); Hi, I think he meant to put the ctx argument last. Look at how the function is implemented to see if that makes any sense, I.E. how arguments are optimised. > epoch_call(epoch_t epoch, epoch_context_t ctx, > void (*callback)(epoch_context_t)); Is this *want* just because of "function, argument" is better than "argument, function" ? --HPS From owner-svn-src-all@freebsd.org Wed Jan 15 12:32:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7AC821F280D; Wed, 15 Jan 2020 12:32:10 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp-relay-int.realworks.nl (smtp-relay-int.realworks.nl [194.109.157.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47yRXp0k5zz4SJP; Wed, 15 Jan 2020 12:32:09 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Date: Wed, 15 Jan 2020 13:32:07 +0100 (CET) From: Ronald Klop To: Baptiste Daroussin Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Ian Lepore , src-committers@freebsd.org Message-ID: <927666564.6.1579091527217@localhost> In-Reply-To: <20200114171010.zdxpwpawn7mogaqy@ivaldir.net> References: <202001140822.00E8MS1b024516@repo.freebsd.org> <24cb346dd9f6de0f094dfa15c592d211e0d8f4a1.camel@freebsd.org> <20200114171010.zdxpwpawn7mogaqy@ivaldir.net> Subject: Re: svn commit: r356725 - head/usr.bin/diff MIME-Version: 1.0 X-Mailer: Realworks (490.1934.009fd9d6ee0) Importance: Normal X-Priority: 3 (Normal) X-Rspamd-Queue-Id: 47yRXp0k5zz4SJP X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.995,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 12:32:10 -0000 Van: Baptiste Daroussin Datum: dinsdag, 14 januari 2020 18:10 Aan: Ian Lepore CC: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Onderwerp: Re: svn commit: r356725 - head/usr.bin/diff > > On Tue, Jan 14, 2020 at 08:44:29AM -0700, Ian Lepore wrote: > > On Tue, 2020-01-14 at 08:22 +0000, Baptiste Daroussin wrote: > > > Author: bapt > > > Date: Tue Jan 14 08:22:28 2020 > > > New Revision: 356725 > > > URL: https://svnweb.freebsd.org/changeset/base/356725 > > > > > > Log: > > > When system calls indicate an error they return -1, not some > > > arbitrary > > > value < 0. errno is only updated in this case. > > > > > > > What's the point of these changes, other than almost certainly leading > > to worse code generation? > > > > In most instruction sets, you can test for a value < 0 without using > > any instructions, you only need to examine the condition flags after > > loading the value. To compare equal to -1 typically requires at least > > 1 extra instruction, and on risc architectures typically at least two > > extra (load -1 to a register then compare). > > > our diff has forked from the OpenBSD one. The goal of those patches is to keep > in sync code that is still close to the original OpenBSD one as much as > possible. > > Best regards, > Bapt This is a nice example that it is valuable to describe in the commit message *why* a commit is made. Or "the goal" of the patches. Regards, Ronald. From owner-svn-src-all@freebsd.org Wed Jan 15 13:52:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B9EE1F44D3; Wed, 15 Jan 2020 13:52:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yTKB1lZYz4WjT; Wed, 15 Jan 2020 13:52:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3754F7849; Wed, 15 Jan 2020 13:52:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FDqDsH092175; Wed, 15 Jan 2020 13:52:13 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FDqD7f092173; Wed, 15 Jan 2020 13:52:13 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001151352.00FDqD7f092173@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 15 Jan 2020 13:52:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356759 - head/tools/build/options X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/tools/build/options X-SVN-Commit-Revision: 356759 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 13:52:14 -0000 Author: emaste Date: Wed Jan 15 13:52:13 2020 New Revision: 356759 URL: https://svnweb.freebsd.org/changeset/base/356759 Log: Update WITHOUT_BINUTILS* descriptions In the WITHOUT_ descriptions we don't need to mention that ld.bfd is limited to powerpc. When WITHOUT_BINUTILS is specified ld.bfd is not installed on any CPU architecture. Modified: head/tools/build/options/WITHOUT_BINUTILS head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP Modified: head/tools/build/options/WITHOUT_BINUTILS ============================================================================== --- head/tools/build/options/WITHOUT_BINUTILS Wed Jan 15 07:47:52 2020 (r356758) +++ head/tools/build/options/WITHOUT_BINUTILS Wed Jan 15 13:52:13 2020 (r356759) @@ -1,9 +1,8 @@ .\" $FreeBSD$ -Set to not build or install GNU +Do not build or install GNU .Xr as 1 , -.Xr objdump 1 , -and, on powerpc, -.Xr ld.bfd 1 +.Xr ld.bfd 1 , and +.Xr objdump 1 as part of the normal system build. The resulting system cannot build programs from source. Modified: head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP ============================================================================== --- head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP Wed Jan 15 07:47:52 2020 (r356758) +++ head/tools/build/options/WITHOUT_BINUTILS_BOOTSTRAP Wed Jan 15 13:52:13 2020 (r356759) @@ -1,5 +1,5 @@ .\" $FreeBSD$ -Set to not build binutils (as, objdump, and on powerpc ld) +Do not build binutils (as, ld.bfd, and objdump) as part of the bootstrap process. .Bf -symbolic The option does not work for build targets unless some alternative From owner-svn-src-all@freebsd.org Wed Jan 15 15:31:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD52C1F655B; Wed, 15 Jan 2020 15:31:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yWWq56R2z4cX2; Wed, 15 Jan 2020 15:31:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AAA2E8A1E; Wed, 15 Jan 2020 15:31:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FFVZCQ048345; Wed, 15 Jan 2020 15:31:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FFVZUA048344; Wed, 15 Jan 2020 15:31:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001151531.00FFVZUA048344@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Wed, 15 Jan 2020 15:31:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356760 - head/sys/compat/linuxkpi/common/src X-SVN-Group: head X-SVN-Commit-Author: markj X-SVN-Commit-Paths: head/sys/compat/linuxkpi/common/src X-SVN-Commit-Revision: 356760 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 15:31:35 -0000 Author: markj Date: Wed Jan 15 15:31:35 2020 New Revision: 356760 URL: https://svnweb.freebsd.org/changeset/base/356760 Log: Handle a NULL thread pointer in linux_close_file(). This can happen if a file is closed during unix socket GC. The same bug was fixed for devfs descriptors in r228361. PR: 242913 Reported and tested by: iz-rpi03@hs-karlsruhe.de Reviewed by: hselasky, kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23178 Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c ============================================================================== --- head/sys/compat/linuxkpi/common/src/linux_compat.c Wed Jan 15 13:52:13 2020 (r356759) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Wed Jan 15 15:31:35 2020 (r356760) @@ -1498,6 +1498,9 @@ linux_file_close(struct file *file, struct thread *td) KASSERT(file_count(filp) == 0, ("File refcount(%d) is not zero", file_count(filp))); + if (td == NULL) + td = curthread; + error = 0; filp->f_flags = file->f_flag; linux_set_current(td); From owner-svn-src-all@freebsd.org Wed Jan 15 15:59:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ACA221F6AA3; Wed, 15 Jan 2020 15:59:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yX8442Tkz4dv5; Wed, 15 Jan 2020 15:59:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 811238F64; Wed, 15 Jan 2020 15:59:32 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FFxWtq065619; Wed, 15 Jan 2020 15:59:32 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FFxW07065618; Wed, 15 Jan 2020 15:59:32 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001151559.00FFxW07065618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Wed, 15 Jan 2020 15:59:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356761 - head/sys/conf X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/conf X-SVN-Commit-Revision: 356761 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 15:59:32 -0000 Author: kevans Date: Wed Jan 15 15:59:32 2020 New Revision: 356761 URL: https://svnweb.freebsd.org/changeset/base/356761 Log: mips trampoline: don't bother with unwind tables The utility here seems somewhat limited, but clang will attempt to generate .eh_frame and actively fail in doing so. It is perhaps worth investigating why it's being generated in the first place (GCC doesn't do so), but this isn't a high priority. Modified: head/sys/conf/Makefile.mips Modified: head/sys/conf/Makefile.mips ============================================================================== --- head/sys/conf/Makefile.mips Wed Jan 15 15:31:35 2020 (r356760) +++ head/sys/conf/Makefile.mips Wed Jan 15 15:59:32 2020 (r356761) @@ -81,6 +81,7 @@ ${KERNEL_KO}.tramp.bin: ${KERNEL_KO} $S/$M/$M/elf_tram ${CC} -O -nostdlib -I. -I$S ${TRAMP_EXTRA_FLAGS} ${TRAMP_LDFLAGS} -Xlinker \ -T -Xlinker ${LDSCRIPT_NAME}.tramp.noheader \ -DKERNNAME="\"${KERNEL_KO}.tmp\"" -DELFSIZE=${TRAMP_ELFSIZE} \ + -fno-asynchronous-unwind-tables \ $S/$M/$M/inckern.S $S/$M/$M/elf_trampoline.c \ -o ${KERNEL_KO}.tramp.elf ${OBJCOPY} -S -O binary ${KERNEL_KO}.tramp.elf \ From owner-svn-src-all@freebsd.org Wed Jan 15 16:20:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4D67E1F7196; Wed, 15 Jan 2020 16:20:47 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yXcZ5sJqz4g8L; Wed, 15 Jan 2020 16:20:46 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 00FGKhxK093228 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 15 Jan 2020 08:20:43 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 00FGKhf5093227; Wed, 15 Jan 2020 08:20:43 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Wed, 15 Jan 2020 08:20:43 -0800 From: Gleb Smirnoff To: Hans Petter Selasky Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, bz@freebsd.org, cem@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys Message-ID: <20200115162043.GS39529@FreeBSD.org> References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115061046.GR39529@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47yXcZ5sJqz4g8L X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-0.21 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_SPAM_MEDIUM(0.66)[0.663,0]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US]; NEURAL_HAM_LONG(-0.87)[-0.872,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 16:20:47 -0000 On Wed, Jan 15, 2020 at 09:51:02AM +0100, Hans Petter Selasky wrote: H> On 2020-01-15 07:10, Gleb Smirnoff wrote: H> > I really want to reverse the argument order of epoch_call() as well. H> > The current order is really backwards: H> > H> > void H> > epoch_call(epoch_t epoch, epoch_context_t ctx, H> > void (*callback)(epoch_context_t)); H> > H> > Suggested declaration is: H> > H> > void H> > epoch_call(epoch_t epoch, epoch_context_t ctx, H> > void (*callback)(epoch_context_t)); H> H> I think he meant to put the ctx argument last. Look at how the function H> is implemented to see if that makes any sense, I.E. how arguments are H> optimised. Yes, of course. I had too little tea last night and didn't swap arguments after copy-n-paste. Suggested prototype is: void epoch_call(epoch_t epoch, void (*callback)(epoch_context_t), epoch_context_t ctx); H> Is this *want* just because of "function, argument" is better than H> "argument, function" ? Sure. There is no practical impact on how a CPU will execute. It is all about how a human reads a code. -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Wed Jan 15 16:47:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0783F1F79A9; Wed, 15 Jan 2020 16:47:45 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yYCh6BDsz3D0Y; Wed, 15 Jan 2020 16:47:44 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF9BC9879; Wed, 15 Jan 2020 16:47:44 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FGliQH097198; Wed, 15 Jan 2020 16:47:44 GMT (envelope-from scottl@FreeBSD.org) Received: (from scottl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FGliYL097197; Wed, 15 Jan 2020 16:47:44 GMT (envelope-from scottl@FreeBSD.org) Message-Id: <202001151647.00FGliYL097197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: scottl set sender to scottl@FreeBSD.org using -f From: Scott Long Date: Wed, 15 Jan 2020 16:47:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356762 - head/usr.sbin/pciconf X-SVN-Group: head X-SVN-Commit-Author: scottl X-SVN-Commit-Paths: head/usr.sbin/pciconf X-SVN-Commit-Revision: 356762 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 16:47:45 -0000 Author: scottl Date: Wed Jan 15 16:47:44 2020 New Revision: 356762 URL: https://svnweb.freebsd.org/changeset/base/356762 Log: Fix a spacing error from the previous commit for -ll mode. Add a little more space padding to that mode to give the columns a consistent offset. Modified: head/usr.sbin/pciconf/pciconf.c Modified: head/usr.sbin/pciconf/pciconf.c ============================================================================== --- head/usr.sbin/pciconf/pciconf.c Wed Jan 15 15:59:32 2020 (r356761) +++ head/usr.sbin/pciconf/pciconf.c Wed Jan 15 16:47:44 2020 (r356762) @@ -261,12 +261,13 @@ list_devs(const char *name, int verbose, int bars, int return; } if (listmode == 2) - printf("drv\tselector\tclass rev hdr vendor device " - "subven subdev\n"); + printf("drv\tselector\tclass rev hdr " + "vendor device subven subdev\n"); for (p = conf; p < &conf[pc.num_matches]; p++) { if (listmode == 2) printf("%s%d@pci%d:%d:%d:%d:" - "\t%06x %02x %02x %04x %04x %04x %04x\n", + "\t%06x %02x %02x " + "%04x %04x %04x %04x\n", *p->pd_name ? p->pd_name : "none", *p->pd_name ? (int)p->pd_unit : none_count++, p->pc_sel.pc_domain, From owner-svn-src-all@freebsd.org Wed Jan 15 18:10:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B9A121F92FE; Wed, 15 Jan 2020 18:10:03 +0000 (UTC) (envelope-from tijl@freebsd.org) Received: from mailrelay110.isp.belgacom.be (mailrelay110.isp.belgacom.be [195.238.20.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "relay.skynet.be", Issuer "GlobalSign RSA OV SSL CA 2018" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yb2g0b1Tz3K8C; Wed, 15 Jan 2020 18:10:02 +0000 (UTC) (envelope-from tijl@freebsd.org) IronPort-SDR: MgSUks6O+RZZWN+7jNHa3RYHvjcUjESiFV/tH3VXjQAvlOAkBxkE7KeqHtcM4owZJgwiM7dsxq 8Xd1uvGbKz1QW7PPmE4J8QfG9FXhOBkscZI5MOdludhU5PoTuGh3mjvt311Y9Ie/vHvDr1ctbE teq54p6anjiaJSk1+FTSJzjQ1f6TfOtrCSaBSn+bFFgbxT92HycxpfyvzLrLhXtNhUKWK49XyQ l0Rsthc6n13M7CACZ7ltgly5XA+5+GJHAmRdgxqFLpnPH47qjzo8s5UbpKO9Gvv1Pm7UA8CCSO Xxg= X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2BdEQCCVB9e/8Ub9FFkHAEBAQEBBwE?= =?us-ascii?q?BEQEEBAEBgXuCKVkTVAEgEhYUjRKGCwGCEIpbkFwJAQEBAQEBAQEBKwwBAYR?= =?us-ascii?q?AAoF8JzgTAgMBAQsBAQUBAQEBAQUEbYRrTAyFXwEFOhwjEAsUBAklD0gGE4M?= =?us-ascii?q?ngn8LqRGENQELAYEIhAt/BoE2jDKCAIQkPoQIQYVuBJcqmBqCQoc9jmcnmm6?= =?us-ascii?q?EQw+SZ5Q0IoFYTTAIgydQGA2IDReIZIVAQAMwjWABAQ?= X-IPAS-Result: =?us-ascii?q?A2BdEQCCVB9e/8Ub9FFkHAEBAQEBBwEBEQEEBAEBgXuCK?= =?us-ascii?q?VkTVAEgEhYUjRKGCwGCEIpbkFwJAQEBAQEBAQEBKwwBAYRAAoF8JzgTAgMBA?= =?us-ascii?q?QsBAQUBAQEBAQUEbYRrTAyFXwEFOhwjEAsUBAklD0gGE4Mngn8LqRGENQELA?= =?us-ascii?q?YEIhAt/BoE2jDKCAIQkPoQIQYVuBJcqmBqCQoc9jmcnmm6EQw+SZ5Q0IoFYT?= =?us-ascii?q?TAIgydQGA2IDReIZIVAQAMwjWABAQ?= Received: from 197.27-244-81.adsl-dyn.isp.belgacom.be (HELO kalimero.tijl.coosemans.org) ([81.244.27.197]) by relay.skynet.be with ESMTP; 15 Jan 2020 19:10:01 +0100 Received: from localhost (localhost [127.0.0.1]) by kalimero.tijl.coosemans.org (8.15.2/8.15.2) with ESMTP id 00FI9xwA033067; Wed, 15 Jan 2020 19:09:59 +0100 (CET) (envelope-from tijl@FreeBSD.org) Date: Wed, 15 Jan 2020 19:09:58 +0100 From: =?UTF-8?B?VMSzbA==?= Coosemans To: Philip Paeps Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r355978 - head/usr.bin/top Message-ID: <20200115190958.13a33cb4@FreeBSD.org> In-Reply-To: <201912210503.xBL53LCh072168@repo.freebsd.org> References: <201912210503.xBL53LCh072168@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 47yb2g0b1Tz3K8C X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.81 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.86)[-0.860,0]; ASN(0.00)[asn:5432, ipnet:195.238.0.0/19, country:BE]; NEURAL_HAM_LONG(-0.95)[-0.952,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 18:10:03 -0000 On Sat, 21 Dec 2019 05:03:21 +0000 (UTC) Philip Paeps wrote: > Author: philip > Date: Sat Dec 21 05:03:21 2019 > New Revision: 355978 > URL: https://svnweb.freebsd.org/changeset/base/355978 > > Log: > top: display battery capacity remaining > > Submitted by: Antranig Vartanian > Reviewed by: imp, philip > Differential Revision: https://reviews.freebsd.org/D22871 > > Modified: > head/usr.bin/top/display.c > head/usr.bin/top/display.h > head/usr.bin/top/machine.c > head/usr.bin/top/machine.h > head/usr.bin/top/top.c > > Modified: head/usr.bin/top/display.c > ============================================================================== > --- head/usr.bin/top/display.c Sat Dec 21 04:44:17 2019 (r355977) > +++ head/usr.bin/top/display.c Sat Dec 21 05:03:21 2019 (r355978) > @@ -1322,6 +1322,15 @@ i_uptime(struct timeval *bt, time_t *tod) > } > } > > +void > +i_battery(int nbat, int batt) > +{ > + > + if (nbat > 0) { > + printf("; battery: %d%%", batt); It doesn't fit. There's only room for "; b": last pid: 33047; load averages: 1.17, 1.25, 1.34; b up 3+07:35:37 19:08:41 From owner-svn-src-all@freebsd.org Wed Jan 15 18:53:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 390181FA01B; Wed, 15 Jan 2020 18:53:33 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yc0s0XTnz3MBD; Wed, 15 Jan 2020 18:53:33 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0DB23B090; Wed, 15 Jan 2020 18:53:33 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FIrWjx077470; Wed, 15 Jan 2020 18:53:32 GMT (envelope-from mckusick@FreeBSD.org) Received: (from mckusick@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FIrW61077469; Wed, 15 Jan 2020 18:53:32 GMT (envelope-from mckusick@FreeBSD.org) Message-Id: <202001151853.00FIrW61077469@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mckusick set sender to mckusick@FreeBSD.org using -f From: Kirk McKusick Date: Wed, 15 Jan 2020 18:53:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356763 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mckusick X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356763 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 18:53:33 -0000 Author: mckusick Date: Wed Jan 15 18:53:32 2020 New Revision: 356763 URL: https://svnweb.freebsd.org/changeset/base/356763 Log: Peter Holm reports that his test that does an umount(8) on an active mount point while numerous tests are running that are writing to files on that mount point cause the unmount(8) to hang forever. The unmount(8) system call is handled in the kernel by the dounmount() function. The cause of the hang is that prior to dounmount() calling VFS_UNMOUNT() it is calling VFS_SYNC(mp, MNT_WAIT). The MNT_WAIT flag indicates that VFS_SYNC() should not return until all the dirty buffers associated with the mount point have been written to disk. Because user processes are allowed to continue writing and can do so faster than the data can be written to disk, the call to VFS_SYNC() can never finish. Unlike VFS_SYNC(), the VFS_UNMOUNT() routine can suspend all processes when they request to do a write thus having a finite number of dirty buffers to write that cannot be expanded. There is no need to call VFS_SYNC() before calling VFS_UNMOUNT(), because VFS_UNMOUNT() needs to flush everything again anyway after suspending writes, to catch anything that was dirtied between the VFS_SYNC() and writes being suspended. The fix is to simply remove the unnecessary call to VFS_SYNC() from dounmount(). Reported by: Peter Holm Analysis by: Chuck Silvers Tested by: Peter Holm MFC after: 7 days Sponsored by: Netflix Modified: head/sys/kern/vfs_mount.c Modified: head/sys/kern/vfs_mount.c ============================================================================== --- head/sys/kern/vfs_mount.c Wed Jan 15 16:47:44 2020 (r356762) +++ head/sys/kern/vfs_mount.c Wed Jan 15 18:53:32 2020 (r356763) @@ -1696,9 +1696,7 @@ dounmount(struct mount *mp, int flags, struct thread * MNT_IUNLOCK(mp); cache_purgevfs(mp, false); /* remove cache entries for this file sys */ vfs_deallocate_syncvnode(mp); - if ((mp->mnt_flag & MNT_RDONLY) != 0 || (flags & MNT_FORCE) != 0 || - (error = VFS_SYNC(mp, MNT_WAIT)) == 0) - error = VFS_UNMOUNT(mp, flags); + error = VFS_UNMOUNT(mp, flags); vn_finished_write(mp); /* * If we failed to flush the dirty blocks for this mount point, From owner-svn-src-all@freebsd.org Wed Jan 15 18:57:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 10EF01FA0C9; Wed, 15 Jan 2020 18:57:31 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Received: from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com [IPv6:2607:f8b0:4864:20::b2e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yc5Q6VcGz3MLr; Wed, 15 Jan 2020 18:57:30 +0000 (UTC) (envelope-from oliver.pntr@gmail.com) Received: by mail-yb1-xb2e.google.com with SMTP id x18so3101576ybk.6; Wed, 15 Jan 2020 10:57:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=UQ84bTjrqRSS+4Z4SUmgRRDkTIqgWObUQEtGG8k0BXE=; b=rz0Tl6eug7ZHLvgk2JC6vO1wkXuBXUSMmkYKQeQuI5Oht/zo7/xBctSjWoXdYjpTxV dtEm4s4goWfC4IC0k6CNI9KLnUMnIiYRXBdX+yXJPPwbSNyjrkIkbBP+5MxHKEDFxK0+ LrpyQwASpXGmA1Ur2NndsXwUqwbNp4GZRc3jdhAQ2i2/fqrT1YNTJwogVzzXZ1y8r+Ze yUu1wPP36mSa1HGm3szWydn+4/N6Y67znBVNC+6IV7r/aSAodn1jy62QGinUrsHqsb8r bhF4U/KuFwYxYvR0SRBoFOju9L5BdG3A5Ak266gFwx+s0ZwUEm6c11jpyB5juAQzf+Ij HeQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=UQ84bTjrqRSS+4Z4SUmgRRDkTIqgWObUQEtGG8k0BXE=; b=AlCkSJ6oE9uboj0k92llAdW1ch0orOQgSO4PHK3mpPej8kdtIH6jzUThuDKoj3aCSb G31UAkyYcLwXOUhQrIspjAbCTWrCmQHtdzFT0SNrWfemNlkTj4hE4IbeAnoxbsFoS0pX 8ux/IqzBAd+D7X1vNJF7w7UX0E3lbnvxOnA6GVOr3d9vasu8ujIbFN2ntTsfxC/eml1R KQwjcLFp32+C2OCPIuh3+3bfHVwqXBhW2ZonrnK93Jq0Wg/F5505bfctjMgOT7HdD6YR U1J1X5qYegGz4U2pux76BP8c4/AJQfONjFocWipySoYsXBvZr3m9gQJ3x2JEuH/wHfs7 iB3A== X-Gm-Message-State: APjAAAVB6rRzP5tglg2RJLji8+GXya+DunoD/5PhgKe8w7Skf2BUaLVy +ZMpC/aLNnBq5L9od+iceDc5KYA8exUefumIbIkwDQ== X-Google-Smtp-Source: APXvYqw95GUsN7lfazVT8mflEBPbEH9ygNne0rS7tJhgCeJTWDU18rpTBEydl8dk8wcC0YrMWgwwwaMS/aRtcTzflP4= X-Received: by 2002:a25:9244:: with SMTP id e4mr14610475ybo.461.1579114649420; Wed, 15 Jan 2020 10:57:29 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a25:3816:0:0:0:0:0 with HTTP; Wed, 15 Jan 2020 10:57:28 -0800 (PST) In-Reply-To: <202001150747.00F7lqiG071097@repo.freebsd.org> References: <202001150747.00F7lqiG071097@repo.freebsd.org> From: Oliver Pinter Date: Wed, 15 Jan 2020 19:57:28 +0100 Message-ID: Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Ben Woods Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Ed Maste X-Rspamd-Queue-Id: 47yc5Q6VcGz3MLr X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 18:57:31 -0000 On Wednesday, January 15, 2020, Ben Woods wrote: > Author: woodsb02 (ports committer) > Date: Wed Jan 15 07:47:52 2020 > New Revision: 356758 > URL: https://svnweb.freebsd.org/changeset/base/356758 > > Log: > bsdinstall: Change "default" (first) Partitioning method to ZFS > > Reported by: Ruben Schade (during his talk at linux.conf.au) > Approved by: philip > Differential Revision: https://reviews.freebsd.org/D23173 What's the justification behind this change? Plus I miss from here the relontes tag. > > Modified: > head/usr.sbin/bsdinstall/bsdinstall.8 > head/usr.sbin/bsdinstall/scripts/auto > > Modified: head/usr.sbin/bsdinstall/bsdinstall.8 > ============================================================ > ================== > --- head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 06:18:32 2020 > (r356757) > +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 07:47:52 2020 > (r356758) > @@ -119,7 +119,7 @@ Provides the installer's interactive guided disk parti > installations. > Defaults to UFS. > .It Cm zfsboot > -Provides an alternative ZFS-only automatic interactive disk partitioner. > +Provides a ZFS-only automatic interactive disk partitioner. > Creates a single > .Ic zpool > with separate datasets for > > Modified: head/usr.sbin/bsdinstall/scripts/auto > ============================================================ > ================== > --- head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 06:18:32 2020 > (r356757) > +++ head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 07:47:52 2020 > (r356758) > @@ -289,7 +289,7 @@ Shell \"Open a shell and partition by hand\"" > CURARCH=$( uname -m ) > case $CURARCH in > amd64|arm64|i386) # Booting ZFS Supported > - PMODES="$PMODES \"Auto (ZFS)\" \"Guided Root-on-ZFS\"" > + PMODES="\"Auto (ZFS)\" \"Guided Root-on-ZFS\" $PMODES" > ;; > *) # Booting ZFS Unspported > ;; > @@ -303,6 +303,10 @@ PARTMODE=`echo $PMODES | xargs dialog --backtitle "Fre > exec 3>&- > > case "$PARTMODE" in > +"Auto (ZFS)") # ZFS > + bsdinstall zfsboot || error "ZFS setup failed" > + bsdinstall mount || error "Failed to mount filesystem" > + ;; > "Auto (UFS)") # Guided > bsdinstall autopart || error "Partitioning error" > bsdinstall mount || error "Failed to mount filesystem" > @@ -319,10 +323,6 @@ case "$PARTMODE" in > else > bsdinstall partedit || error "Partitioning error" > fi > - bsdinstall mount || error "Failed to mount filesystem" > - ;; > -"Auto (ZFS)") # ZFS > - bsdinstall zfsboot || error "ZFS setup failed" > bsdinstall mount || error "Failed to mount filesystem" > ;; > *) > _______________________________________________ > 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-unsubscribe@freebsd.org" > From owner-svn-src-all@freebsd.org Wed Jan 15 19:10:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6DD821FA4A3; Wed, 15 Jan 2020 19:10:25 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ycNK22frz3MyB; Wed, 15 Jan 2020 19:10:25 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from comporellon.tachypleus.net (unknown [IPv6:2605:e000:1314:5ea:e009:631a:49f0:142c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: nwhitehorn/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 9E06618F78; Wed, 15 Jan 2020 19:10:24 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Oliver Pinter , Ben Woods Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Ed Maste References: <202001150747.00F7lqiG071097@repo.freebsd.org> From: Nathan Whitehorn Message-ID: Date: Wed, 15 Jan 2020 11:10:21 -0800 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 19:10:25 -0000 I agree -- this seems like a really big change, especially with no discussion. -Nathan On 2020-01-15 10:57, Oliver Pinter wrote: > > > On Wednesday, January 15, 2020, Ben Woods > wrote: > > Author: woodsb02 (ports committer) > Date: Wed Jan 15 07:47:52 2020 > New Revision: 356758 > URL: https://svnweb.freebsd.org/changeset/base/356758 > > > Log: >   bsdinstall: Change "default" (first) Partitioning method to ZFS > >   Reported by:  Ruben Schade (during his talk at linux.conf.au > ) >   Approved by:  philip >   Differential Revision:        https://reviews.freebsd.org/D23173 > > > > What's the justification behind this change?  > Plus I miss from here the relontes tag.  > >   > > > Modified: >   head/usr.sbin/bsdinstall/bsdinstall.8 >   head/usr.sbin/bsdinstall/scripts/auto > > Modified: head/usr.sbin/bsdinstall/bsdinstall.8 > ============================================================================== > --- head/usr.sbin/bsdinstall/bsdinstall.8       Wed Jan 15 > 06:18:32 2020        (r356757) > +++ head/usr.sbin/bsdinstall/bsdinstall.8       Wed Jan 15 > 07:47:52 2020        (r356758) > @@ -119,7 +119,7 @@ Provides the installer's interactive guided > disk parti >  installations. >  Defaults to UFS. >  .It Cm zfsboot > -Provides an alternative ZFS-only automatic interactive disk > partitioner. > +Provides a ZFS-only automatic interactive disk partitioner. >  Creates a single >  .Ic zpool >  with separate datasets for > > Modified: head/usr.sbin/bsdinstall/scripts/auto > ============================================================================== > --- head/usr.sbin/bsdinstall/scripts/auto       Wed Jan 15 > 06:18:32 2020        (r356757) > +++ head/usr.sbin/bsdinstall/scripts/auto       Wed Jan 15 > 07:47:52 2020        (r356758) > @@ -289,7 +289,7 @@ Shell \"Open a shell and partition by hand\"" >  CURARCH=$( uname -m ) >  case $CURARCH in >         amd64|arm64|i386)       # Booting ZFS Supported > -               PMODES="$PMODES \"Auto (ZFS)\" \"Guided Root-on-ZFS\"" > +               PMODES="\"Auto (ZFS)\" \"Guided Root-on-ZFS\" $PMODES" >                 ;; >         *)              # Booting ZFS Unspported >                 ;; > @@ -303,6 +303,10 @@ PARTMODE=`echo $PMODES | xargs dialog > --backtitle "Fre >  exec 3>&- > >  case "$PARTMODE" in > +"Auto (ZFS)")  # ZFS > +       bsdinstall zfsboot || error "ZFS setup failed" > +       bsdinstall mount || error "Failed to mount filesystem" > +       ;; >  "Auto (UFS)")  # Guided >         bsdinstall autopart || error "Partitioning error" >         bsdinstall mount || error "Failed to mount filesystem" > @@ -319,10 +323,6 @@ case "$PARTMODE" in >         else >                 bsdinstall partedit || error "Partitioning error" >         fi > -       bsdinstall mount || error "Failed to mount filesystem" > -       ;; > -"Auto (ZFS)")  # ZFS > -       bsdinstall zfsboot || error "ZFS setup failed" >         bsdinstall mount || error "Failed to mount filesystem" >         ;; >  *) > _______________________________________________ > 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-unsubscribe@freebsd.org > " > From owner-svn-src-all@freebsd.org Wed Jan 15 19:43:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CFDE01FAED9; Wed, 15 Jan 2020 19:43:46 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yd6p58byz3Pd7; Wed, 15 Jan 2020 19:43:46 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABE9CB9FE; Wed, 15 Jan 2020 19:43:46 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FJhkkf007014; Wed, 15 Jan 2020 19:43:46 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FJhkqR007013; Wed, 15 Jan 2020 19:43:46 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001151943.00FJhkqR007013@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 15 Jan 2020 19:43:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356764 - in head: share/man/man4 sys/dev/acpi_support X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: in head: share/man/man4 sys/dev/acpi_support X-SVN-Commit-Revision: 356764 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 19:43:46 -0000 Author: emaste Date: Wed Jan 15 19:43:45 2020 New Revision: 356764 URL: https://svnweb.freebsd.org/changeset/base/356764 Log: acpi_ibm: reference ThinkPad instead of IBM These are now Lenovo ThinkPads, not IBM ThinkPads. PR: 234403 Submitted by: Kevin Zheng (original) Modified: head/share/man/man4/acpi_ibm.4 head/sys/dev/acpi_support/acpi_ibm.c Modified: head/share/man/man4/acpi_ibm.4 ============================================================================== --- head/share/man/man4/acpi_ibm.4 Wed Jan 15 18:53:32 2020 (r356763) +++ head/share/man/man4/acpi_ibm.4 Wed Jan 15 19:43:45 2020 (r356764) @@ -30,7 +30,7 @@ .Os .Sh NAME .Nm acpi_ibm -.Nd "ACPI extras driver for IBM laptops" +.Nd "ThinkPad ACPI extras driver" .Sh SYNOPSIS To compile this driver into the kernel, place the following line in your @@ -48,7 +48,7 @@ acpi_ibm_load="YES" .Sh DESCRIPTION The .Nm -driver provides support for hotkeys and other components of IBM laptops. +driver provides support for hotkeys and other components of ThinkPad laptops. The main purpose of this driver is to provide an interface, accessible via .Xr sysctl 8 Modified: head/sys/dev/acpi_support/acpi_ibm.c ============================================================================== --- head/sys/dev/acpi_support/acpi_ibm.c Wed Jan 15 18:53:32 2020 (r356763) +++ head/sys/dev/acpi_support/acpi_ibm.c Wed Jan 15 19:43:45 2020 (r356764) @@ -29,7 +29,7 @@ __FBSDID("$FreeBSD$"); /* - * Driver for extra ACPI-controlled gadgets found on IBM ThinkPad laptops. + * Driver for extra ACPI-controlled gadgets found on ThinkPad laptops. * Inspired by the ibm-acpi and tpb projects which implement these features * on Linux. * @@ -302,7 +302,7 @@ struct acpi_ibm_models { } }; -ACPI_SERIAL_DECL(ibm, "ACPI IBM extras"); +ACPI_SERIAL_DECL(ibm, "ThinkPad ACPI Extras"); static int acpi_ibm_probe(device_t dev); static int acpi_ibm_attach(device_t dev); @@ -419,7 +419,7 @@ acpi_ibm_probe(device_t dev) rv = ACPI_ID_PROBE(device_get_parent(dev), dev, ibm_ids, NULL); if (rv <= 0) - device_set_desc(dev, "IBM ThinkPad ACPI Extras"); + device_set_desc(dev, "ThinkPad ACPI Extras"); return (rv); } From owner-svn-src-all@freebsd.org Wed Jan 15 19:44:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22EFD1FAF95 for ; Wed, 15 Jan 2020 19:44:59 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: from mail-pf1-x443.google.com (mail-pf1-x443.google.com [IPv6:2607:f8b0:4864:20::443]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yd895V2wz3PmB for ; Wed, 15 Jan 2020 19:44:57 +0000 (UTC) (envelope-from jroberson@jroberson.net) Received: by mail-pf1-x443.google.com with SMTP id p14so8999524pfn.4 for ; Wed, 15 Jan 2020 11:44:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jroberson-net.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=lGR2CDNLk6ikSyXQI9hIXCz8f2cUff93EU5CByCaHww=; b=jPiqUpXSplESbBsXpACWnzR5JZCrMG0LBDvmNcKDJYTUGYGYUDJR7N/zqSevCwkjgG WllFdAwOFV9CxYfSXcgh3HXxpN6IiJ06CsnjyiWLp7QxDp3Maf5v8i8YDN2nIMvkRxK+ 2d7i+UttyyWmVRLdysYzJoGUfTSReDmTUNVTGc2WGveDCJVJb6BEUztqpYpDUAYZzNSB kTNu2APnGlNp2Gb9tjECiuKuTIEf5VS+chnMxI9FMNKDGOFpYCSwxc4KUg3ENc2olz/u Vr2rQ+S0SH8Ev8D46mRYG5q4SIqyGn3NqFwTpPy2oWOqM55mjUuQ2yoym7qpCFkWYOG7 RK3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=lGR2CDNLk6ikSyXQI9hIXCz8f2cUff93EU5CByCaHww=; b=K7BK93sDbd9BB4hkVcK3d6xOpCDFSBn1l+JoBBnRbWe9c4kFluPvUzJsYeyqsP0JDa VnyZ82XBHfddT5mYpIHANu77Y94hMAyEQTOcvaKunC/JlmjbT0TasNXCkGtbpt5xewCH obJBT/h9k5I/nXKApxbvyIeQJmbxs4D5HJx5GjK9BYBCpa1FC01hW4R6BqPtjBZE4mGm y4qIFYhtJIL20zWNW3cYSM1P8kl3N2c9X9qVYAfl/Uyorv4HlFutjwYB4+rGsDiZ0ARq xSE+XEzZflPwZKr7J6GVjLftxZ5EWMpoz607jJh0NZD3qgVNNpSltlYg3i9aAr2T4vUg B+cQ== X-Gm-Message-State: APjAAAUapMowP4Hi9A6GqlyN/GnvJWJJ8cdZWSN+exavXy8yB5oIbYaI //ejWqZmtGylzbHm9hHUD4aOyQ== X-Google-Smtp-Source: APXvYqxEmgtwAPPNVB7avgRzuiVlFYs2dXVrXI2FCVO9z3G8BuNGswxUQdnDklNaHgnGoCDT4zFqgA== X-Received: by 2002:a63:d802:: with SMTP id b2mr34876095pgh.414.1579117495947; Wed, 15 Jan 2020 11:44:55 -0800 (PST) Received: from rrcs-76-81-105-82.west.biz.rr.com (rrcs-76-81-105-82.west.biz.rr.com. [76.81.105.82]) by smtp.gmail.com with ESMTPSA id i9sm23088219pfk.24.2020.01.15.11.44.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 15 Jan 2020 11:44:55 -0800 (PST) Date: Wed, 15 Jan 2020 09:44:53 -1000 (HST) From: Jeff Roberson X-X-Sender: jroberson@desktop To: Gleb Smirnoff cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys In-Reply-To: <202001150605.00F65Kc8011526@repo.freebsd.org> Message-ID: References: <202001150605.00F65Kc8011526@repo.freebsd.org> User-Agent: Alpine 2.21.9999 (BSF 287 2018-06-16) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspamd-Queue-Id: 47yd895V2wz3PmB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=jroberson-net.20150623.gappssmtp.com header.s=20150623 header.b=jPiqUpXS; dmarc=none; spf=none (mx1.freebsd.org: domain of jroberson@jroberson.net has no SPF policy when checking 2607:f8b0:4864:20::443) smtp.mailfrom=jroberson@jroberson.net X-Spamd-Result: default: False [-2.73 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; R_DKIM_ALLOW(-0.20)[jroberson-net.20150623.gappssmtp.com:s=20150623]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[jroberson.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[jroberson-net.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[3.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; MID_RHS_NOT_FQDN(0.50)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_TLS_ALL(0.00)[]; IP_SCORE(-0.94)[ip: (-0.70), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 19:44:59 -0000 On Wed, 15 Jan 2020, Gleb Smirnoff wrote: > Author: glebius > Date: Wed Jan 15 06:05:20 2020 > New Revision: 356755 > URL: https://svnweb.freebsd.org/changeset/base/356755 > > Log: > Introduce NET_EPOCH_CALL() macro and use it everywhere where we free > data based on the network epoch. The macro reverses the argument > order of epoch_call(9) - first function, then its argument. NFC Is there some practical impact of changing the argument order or does it just seem more natural to you? Jeff > > Modified: > head/sys/net/bpf.c > head/sys/net/if.c > head/sys/net/if_gre.c > head/sys/net/if_lagg.c > head/sys/net/if_vlan.c > head/sys/netinet/in.c > head/sys/netinet/in_pcb.c > head/sys/netinet/ip_gre.c > head/sys/netinet/tcp_ratelimit.c > head/sys/netinet6/in6.c > head/sys/netinet6/ip6_gre.c > head/sys/netpfil/ipfw/nat64/nat64lsn.c > head/sys/sys/epoch.h > > Modified: head/sys/net/bpf.c > ============================================================================== > --- head/sys/net/bpf.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/net/bpf.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -274,10 +274,10 @@ static struct filterops bpfread_filtops = { > * > * 2. An userland application uses ioctl() call to bpf_d descriptor. > * All such call are serialized with global lock. BPF filters can be > - * changed, but pointer to old filter will be freed using epoch_call(). > + * changed, but pointer to old filter will be freed using NET_EPOCH_CALL(). > * Thus it should be safe for bpf_tap/bpf_mtap* code to do access to > * filter pointers, even if change will happen during bpf_tap execution. > - * Destroying of bpf_d descriptor also is doing using epoch_call(). > + * Destroying of bpf_d descriptor also is doing using NET_EPOCH_CALL(). > * > * 3. An userland application can write packets into bpf_d descriptor. > * There we need to be sure, that ifnet won't disappear during bpfwrite(). > @@ -288,7 +288,7 @@ static struct filterops bpfread_filtops = { > * > * 5. The kernel invokes bpfdetach() on interface destroying. All lists > * are modified with global lock held and actual free() is done using > - * epoch_call(). > + * NET_EPOCH_CALL(). > */ > > static void > @@ -314,7 +314,7 @@ bpfif_rele(struct bpf_if *bp) > > if (!refcount_release(&bp->bif_refcnt)) > return; > - epoch_call(net_epoch_preempt, &bp->epoch_ctx, bpfif_free); > + NET_EPOCH_CALL(bpfif_free, &bp->epoch_ctx); > } > > static void > @@ -330,7 +330,7 @@ bpfd_rele(struct bpf_d *d) > > if (!refcount_release(&d->bd_refcnt)) > return; > - epoch_call(net_epoch_preempt, &d->epoch_ctx, bpfd_free); > + NET_EPOCH_CALL(bpfd_free, &d->epoch_ctx); > } > > static struct bpf_program_buffer* > @@ -2036,8 +2036,7 @@ bpf_setf(struct bpf_d *d, struct bpf_program *fp, u_lo > BPFD_UNLOCK(d); > > if (fcode != NULL) > - epoch_call(net_epoch_preempt, &fcode->epoch_ctx, > - bpf_program_buffer_free); > + NET_EPOCH_CALL(bpf_program_buffer_free, &fcode->epoch_ctx); > > if (track_event) > EVENTHANDLER_INVOKE(bpf_track, > > Modified: head/sys/net/if.c > ============================================================================== > --- head/sys/net/if.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/net/if.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -654,7 +654,7 @@ if_free(struct ifnet *ifp) > IFNET_WUNLOCK(); > > if (refcount_release(&ifp->if_refcount)) > - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, if_destroy); > + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); > CURVNET_RESTORE(); > } > > @@ -677,7 +677,7 @@ if_rele(struct ifnet *ifp) > > if (!refcount_release(&ifp->if_refcount)) > return; > - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, if_destroy); > + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); > } > > void > @@ -1826,7 +1826,7 @@ ifa_free(struct ifaddr *ifa) > { > > if (refcount_release(&ifa->ifa_refcnt)) > - epoch_call(net_epoch_preempt, &ifa->ifa_epoch_ctx, ifa_destroy); > + NET_EPOCH_CALL(ifa_destroy, &ifa->ifa_epoch_ctx); > } > > > @@ -3410,7 +3410,7 @@ if_freemulti(struct ifmultiaddr *ifma) > KASSERT(ifma->ifma_refcount == 0, ("if_freemulti_epoch: refcount %d", > ifma->ifma_refcount)); > > - epoch_call(net_epoch_preempt, &ifma->ifma_epoch_ctx, if_destroymulti); > + NET_EPOCH_CALL(if_destroymulti, &ifma->ifma_epoch_ctx); > } > > > > Modified: head/sys/net/if_gre.c > ============================================================================== > --- head/sys/net/if_gre.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/net/if_gre.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -392,7 +392,7 @@ gre_delete_tunnel(struct gre_softc *sc) > if ((gs = sc->gre_so) != NULL && CK_LIST_EMPTY(&gs->list)) { > CK_LIST_REMOVE(gs, chain); > soclose(gs->so); > - epoch_call(net_epoch_preempt, &gs->epoch_ctx, gre_sofree); > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > sc->gre_so = NULL; > } > GRE2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING; > > Modified: head/sys/net/if_lagg.c > ============================================================================== > --- head/sys/net/if_lagg.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/net/if_lagg.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -910,7 +910,7 @@ lagg_port_destroy(struct lagg_port *lp, int rundelport > * free port and release it's ifnet reference after a grace period has > * elapsed. > */ > - epoch_call(net_epoch_preempt, &lp->lp_epoch_ctx, lagg_port_destroy_cb); > + NET_EPOCH_CALL(lagg_port_destroy_cb, &lp->lp_epoch_ctx); > /* Update lagg capabilities */ > lagg_capabilities(sc); > lagg_linkstate(sc); > > Modified: head/sys/net/if_vlan.c > ============================================================================== > --- head/sys/net/if_vlan.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/net/if_vlan.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -584,7 +584,7 @@ vlan_setmulti(struct ifnet *ifp) > while ((mc = CK_SLIST_FIRST(&sc->vlan_mc_listhead)) != NULL) { > CK_SLIST_REMOVE_HEAD(&sc->vlan_mc_listhead, mc_entries); > (void)if_delmulti(ifp_p, (struct sockaddr *)&mc->mc_addr); > - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, vlan_mc_free); > + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); > } > > /* Now program new ones. */ > @@ -1543,7 +1543,7 @@ vlan_unconfig_locked(struct ifnet *ifp, int departing) > error); > } > CK_SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries); > - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, vlan_mc_free); > + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); > } > > vlan_setflags(ifp, 0); /* clear special flags on parent */ > > Modified: head/sys/netinet/in.c > ============================================================================== > --- head/sys/netinet/in.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet/in.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -1087,7 +1087,7 @@ in_lltable_destroy_lle(struct llentry *lle) > { > > LLE_WUNLOCK(lle); > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in_lltable_destroy_lle_unlocked); > + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); > } > > static struct llentry * > @@ -1348,7 +1348,7 @@ in_lltable_alloc(struct lltable *llt, u_int flags, con > linkhdrsize = LLE_MAX_LINKHDR; > if (lltable_calc_llheader(ifp, AF_INET, IF_LLADDR(ifp), > linkhdr, &linkhdrsize, &lladdr_off) != 0) { > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in_lltable_destroy_lle_unlocked); > + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); > return (NULL); > } > lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, > > Modified: head/sys/netinet/in_pcb.c > ============================================================================== > --- head/sys/netinet/in_pcb.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet/in_pcb.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -269,8 +269,7 @@ in_pcblbgroup_free(struct inpcblbgroup *grp) > { > > CK_LIST_REMOVE(grp, il_list); > - epoch_call(net_epoch_preempt, &grp->il_epoch_ctx, > - in_pcblbgroup_free_deferred); > + NET_EPOCH_CALL(in_pcblbgroup_free_deferred, &grp->il_epoch_ctx); > } > > static struct inpcblbgroup * > @@ -1663,7 +1662,7 @@ in_pcbfree(struct inpcb *inp) > /* mark as destruction in progress */ > inp->inp_flags2 |= INP_FREED; > INP_WUNLOCK(inp); > - epoch_call(net_epoch_preempt, &inp->inp_epoch_ctx, in_pcbfree_deferred); > + NET_EPOCH_CALL(in_pcbfree_deferred, &inp->inp_epoch_ctx); > } > > /* > @@ -1704,7 +1703,7 @@ in_pcbdrop(struct inpcb *inp) > CK_LIST_REMOVE(inp, inp_portlist); > if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { > CK_LIST_REMOVE(phd, phd_hash); > - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, inpcbport_free); > + NET_EPOCH_CALL(inpcbport_free, &phd->phd_epoch_ctx); > } > INP_HASH_WUNLOCK(inp->inp_pcbinfo); > inp->inp_flags &= ~INP_INHASHLIST; > @@ -2674,7 +2673,7 @@ in_pcbremlists(struct inpcb *inp) > CK_LIST_REMOVE(inp, inp_portlist); > if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { > CK_LIST_REMOVE(phd, phd_hash); > - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, inpcbport_free); > + NET_EPOCH_CALL(inpcbport_free, &phd->phd_epoch_ctx); > } > INP_HASH_WUNLOCK(pcbinfo); > inp->inp_flags &= ~INP_INHASHLIST; > > Modified: head/sys/netinet/ip_gre.c > ============================================================================== > --- head/sys/netinet/ip_gre.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet/ip_gre.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -235,7 +235,7 @@ in_gre_udp_input(struct mbuf *m, int off, struct inpcb > * If socket was closed before we have entered NET_EPOCH section, > * INP_FREED flag should be set. Otherwise it should be safe to > * make access to ctx data, because gre_so will be freed by > - * gre_sofree() via epoch_call(). > + * gre_sofree() via NET_EPOCH_CALL(). > */ > if (__predict_false(inp->inp_flags2 & INP_FREED)) { > NET_EPOCH_EXIT(et); > @@ -284,8 +284,7 @@ in_gre_setup_socket(struct gre_softc *sc) > if (CK_LIST_EMPTY(&gs->list)) { > CK_LIST_REMOVE(gs, chain); > soclose(gs->so); > - epoch_call(net_epoch_preempt, &gs->epoch_ctx, > - gre_sofree); > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > } > gs = sc->gre_so = NULL; > } > > Modified: head/sys/netinet/tcp_ratelimit.c > ============================================================================== > --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -286,7 +286,7 @@ rs_defer_destroy(struct tcp_rate_set *rs) > > /* Set flag to only defer once. */ > rs->rs_flags |= RS_FUNERAL_SCHD; > - epoch_call(net_epoch_preempt, &rs->rs_epoch_ctx, rs_destroy); > + NET_EPOCH_CALL(rs_destroy, &rs->rs_epoch_ctx); > } > > #ifdef INET > > Modified: head/sys/netinet6/in6.c > ============================================================================== > --- head/sys/netinet6/in6.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet6/in6.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -2061,7 +2061,7 @@ in6_lltable_destroy_lle(struct llentry *lle) > { > > LLE_WUNLOCK(lle); > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in6_lltable_destroy_lle_unlocked); > + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); > } > > static struct llentry * > @@ -2282,7 +2282,7 @@ in6_lltable_alloc(struct lltable *llt, u_int flags, > linkhdrsize = LLE_MAX_LINKHDR; > if (lltable_calc_llheader(ifp, AF_INET6, IF_LLADDR(ifp), > linkhdr, &linkhdrsize, &lladdr_off) != 0) { > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, in6_lltable_destroy_lle_unlocked); > + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, &lle->lle_epoch_ctx); > return (NULL); > } > lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, > > Modified: head/sys/netinet6/ip6_gre.c > ============================================================================== > --- head/sys/netinet6/ip6_gre.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netinet6/ip6_gre.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -228,7 +228,7 @@ in6_gre_udp_input(struct mbuf *m, int off, struct inpc > * If socket was closed before we have entered NET_EPOCH section, > * INP_FREED flag should be set. Otherwise it should be safe to > * make access to ctx data, because gre_so will be freed by > - * gre_sofree() via epoch_call(). > + * gre_sofree() via NET_EPOCH_CALL(). > */ > if (__predict_false(inp->inp_flags2 & INP_FREED)) { > NET_EPOCH_EXIT(et); > @@ -280,8 +280,7 @@ in6_gre_setup_socket(struct gre_softc *sc) > if (CK_LIST_EMPTY(&gs->list)) { > CK_LIST_REMOVE(gs, chain); > soclose(gs->so); > - epoch_call(net_epoch_preempt, &gs->epoch_ctx, > - gre_sofree); > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > } > gs = sc->gre_so = NULL; > } > > Modified: head/sys/netpfil/ipfw/nat64/nat64lsn.c > ============================================================================== > --- head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 06:05:20 2020 (r356755) > @@ -75,7 +75,7 @@ MALLOC_DEFINE(M_NAT64LSN, "NAT64LSN", "NAT64LSN"); > #define NAT64LSN_EPOCH_ENTER(et) NET_EPOCH_ENTER(et) > #define NAT64LSN_EPOCH_EXIT(et) NET_EPOCH_EXIT(et) > #define NAT64LSN_EPOCH_ASSERT() NET_EPOCH_ASSERT() > -#define NAT64LSN_EPOCH_CALL(c, f) epoch_call(net_epoch_preempt, (c), (f)) > +#define NAT64LSN_EPOCH_CALL(c, f) NET_EPOCH_CALL((f), (c)) > > static uma_zone_t nat64lsn_host_zone; > static uma_zone_t nat64lsn_pgchunk_zone; > > Modified: head/sys/sys/epoch.h > ============================================================================== > --- head/sys/sys/epoch.h Wed Jan 15 05:48:36 2020 (r356754) > +++ head/sys/sys/epoch.h Wed Jan 15 06:05:20 2020 (r356755) > @@ -101,6 +101,7 @@ extern epoch_t net_epoch_preempt; > #define NET_EPOCH_ENTER(et) epoch_enter_preempt(net_epoch_preempt, &(et)) > #define NET_EPOCH_EXIT(et) epoch_exit_preempt(net_epoch_preempt, &(et)) > #define NET_EPOCH_WAIT() epoch_wait_preempt(net_epoch_preempt) > +#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (c), (f)) > #define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) > > #endif /* _KERNEL */ > From owner-svn-src-all@freebsd.org Wed Jan 15 19:46:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F34401FB053; Wed, 15 Jan 2020 19:46:02 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yd9Q4gnGz3PwL; Wed, 15 Jan 2020 19:46:02 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B948BA07; Wed, 15 Jan 2020 19:46:02 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FJk2na007217; Wed, 15 Jan 2020 19:46:02 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FJk1Zw007212; Wed, 15 Jan 2020 19:46:01 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202001151946.00FJk1Zw007212@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Wed, 15 Jan 2020 19:46:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356765 - in head/lib/libc: powerpc64/string string X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: in head/lib/libc: powerpc64/string string X-SVN-Commit-Revision: 356765 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 19:46:03 -0000 Author: luporl Date: Wed Jan 15 19:46:01 2020 New Revision: 356765 URL: https://svnweb.freebsd.org/changeset/base/356765 Log: [PPC64] strcpy optimization Assembly optimization of strcpy for PowerPC64, using double words instead of bytes to copy strings. Submitted by: Leonardo Bianconi (original version) Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D15368 Added: head/lib/libc/powerpc64/string/ head/lib/libc/powerpc64/string/Makefile.inc (contents, props changed) head/lib/libc/powerpc64/string/strcpy.c (contents, props changed) head/lib/libc/powerpc64/string/strcpy_arch_2_05.S (contents, props changed) head/lib/libc/powerpc64/string/strcpy_resolver.c (contents, props changed) Modified: head/lib/libc/string/strcpy.c Added: head/lib/libc/powerpc64/string/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/Makefile.inc Wed Jan 15 19:46:01 2020 (r356765) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +MDSRCS+= \ + strcpy_arch_2_05.S \ + strcpy.c \ + strcpy_resolver.c Added: head/lib/libc/powerpc64/string/strcpy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strcpy.c Wed Jan 15 19:46:01 2020 (r356765) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include +__FBSDID("$FreeBSD$"); + +#define WEAK_STRCPY +#include "../../string/strcpy.c" Added: head/lib/libc/powerpc64/string/strcpy_arch_2_05.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strcpy_arch_2_05.S Wed Jan 15 19:46:01 2020 (r356765) @@ -0,0 +1,144 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if !defined(__BIG_ENDIAN__) +#error "Optimized SRTCPY is only supported by big-endian architecture!" +#endif + +#include +__FBSDID("$FreeBSD$"); + +#if 0 + RCSID("$NetBSD: strcpy.S,v 1.0 2018/05/08 13:00:49 lbianc Exp $") +#endif + +ENTRY(__strcpy_arch_2_05) + mr %r8, %r3 + +/* + * Aligning the reading address, even if it is already aligned to avoid + * performance degradation with strings with 8 bytes or less. + */ +.Lalignment: + lbz %r0,0(%r4) + cmpdi cr7,%r0,0 + stb %r0,0(%r8) + beq cr7,.Lexit + addi %r4,%r4,1 + addi %r8,%r8,1 + andi. %r0,%r4,0x7 + bne .Lalignment + +/* Copy by double word with aligned address. */ +.Lcopy_dw: + ld %r0,0(%r4) + xor %r6,%r6,%r6 + cmpb %r5,%r0,%r6 + cmpdi cr7,%r5,0 + bne cr7,.Lcheck_zero + /* Backward r8 to use stdu instruction in Lcopy_dw_loop */ + addi %r8,%r8,-8 +.Lcopy_dw_loop: + stdu %r0,8(%r8) + ldu %r0,8(%r4) + cmpb %r5,%r0,%r6 + cmpdi cr7,%r5,0 + beq cr7,.Lcopy_dw_loop + + addi %r8,%r8,8 /* Forward r8 to use std instruction. */ +/* Find where the zero is located. */ +.Lcheck_zero: + rldicr. %r5,%r0,0,7 + beq .Lfound_on_byte_0 + rldicr. %r7,%r0,8,7 + beq .Lfound_on_byte_1 + rldicr. %r7,%r0,16,7 + beq .Lfound_on_byte_2 + rldicr. %r7,%r0,24,7 + beq .Lfound_on_byte_3 + andis. %r7,%r0,0xff00 + beq .Lfound_on_byte_4 + andis. %r7,%r0,0xff + beq .Lfound_on_byte_5 + andi. %r7,%r0,0xff00 + beq .Lfound_on_byte_6 + +/* Copy the last string bytes according to the string end position. */ +.Lfound_on_byte_7: + std %r0,0(%r8) + b .Lexit + +.Lfound_on_byte_6: + srdi %r6,%r0,32 + stw %r6,0(%r8) + srdi %r6,%r0,16 + sth %r6,4(%r8) + srdi %r6,%r0,8 + stb %r6,6(%r8) + b .Lexit + +.Lfound_on_byte_5: + srdi %r6,%r0,32 + stw %r6,0(%r8) + srdi %r6,%r0,16 + sth %r6,4(%r8) + b .Lexit + +.Lfound_on_byte_4: + srdi %r6,%r0,32 + stw %r6,0(%r8) + srdi %r6,%r0,24 + stb %r6,4(%r8) + b .Lexit + +.Lfound_on_byte_3: + srdi %r6,%r0,32 + stw %r6,0(%r8) + b .Lexit + +.Lfound_on_byte_2: + srdi %r6,%r0,48 + sth %r6,0(%r8) + srdi %r6,%r0,40 + stb %r6,2(%r8) + b .Lexit + +.Lfound_on_byte_1: + srdi %r6,%r0,48 + sth %r6,0(%r8) + b .Lexit + +.Lfound_on_byte_0: + srdi %r6,%r0,56 + stb %r6,0(%r8) +.Lexit: + blr + +END(__strcpy_arch_2_05) + + .section .note.GNU-stack,"",%progbits Added: head/lib/libc/powerpc64/string/strcpy_resolver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strcpy_resolver.c Wed Jan 15 19:46:01 2020 (r356765) @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +char * +__strcpy_arch_2_05(char * restrict dst, const char * restrict src); + +char * +__strcpy(char * restrict dst, const char * restrict src); + +DEFINE_UIFUNC(, char *, strcpy, (char * restrict, const char * restrict)) +{ + if (cpu_features & PPC_FEATURE_ARCH_2_05) + return (__strcpy_arch_2_05); + else + return (__strcpy); +} Modified: head/lib/libc/string/strcpy.c ============================================================================== --- head/lib/libc/string/strcpy.c Wed Jan 15 19:43:45 2020 (r356764) +++ head/lib/libc/string/strcpy.c Wed Jan 15 19:46:01 2020 (r356765) @@ -37,8 +37,17 @@ __FBSDID("$FreeBSD$"); #include +#ifdef WEAK_STRCPY +__weak_reference(__strcpy, strcpy); +#endif + char * -strcpy(char * __restrict to, const char * __restrict from) +#ifdef WEAK_STRCPY +__strcpy +#else +strcpy +#endif +(char * __restrict to, const char * __restrict from) { char *save = to; From owner-svn-src-all@freebsd.org Wed Jan 15 19:53:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AACEF1FB9C1; Wed, 15 Jan 2020 19:53:04 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ydKX44Qvz3QkK; Wed, 15 Jan 2020 19:53:04 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86C74BD94; Wed, 15 Jan 2020 19:53:04 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FJr4CU012989; Wed, 15 Jan 2020 19:53:04 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FJr3LM012985; Wed, 15 Jan 2020 19:53:03 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202001151953.00FJr3LM012985@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Wed, 15 Jan 2020 19:53:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356766 - in head/lib/libc: powerpc64/string string X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: in head/lib/libc: powerpc64/string string X-SVN-Commit-Revision: 356766 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 19:53:04 -0000 Author: luporl Date: Wed Jan 15 19:53:03 2020 New Revision: 356766 URL: https://svnweb.freebsd.org/changeset/base/356766 Log: [PPC64] strncpy optimization Assembly optimization of strncpy for PowerPC64, using double words instead of bytes to copy strings. Submitted by: Leonardo Bianconi (original version) Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D15369 Added: head/lib/libc/powerpc64/string/strncpy.c (contents, props changed) head/lib/libc/powerpc64/string/strncpy_arch_2_05.S (contents, props changed) head/lib/libc/powerpc64/string/strncpy_resolver.c (contents, props changed) Modified: head/lib/libc/powerpc64/string/Makefile.inc head/lib/libc/string/strncpy.c Modified: head/lib/libc/powerpc64/string/Makefile.inc ============================================================================== --- head/lib/libc/powerpc64/string/Makefile.inc Wed Jan 15 19:46:01 2020 (r356765) +++ head/lib/libc/powerpc64/string/Makefile.inc Wed Jan 15 19:53:03 2020 (r356766) @@ -3,4 +3,7 @@ MDSRCS+= \ strcpy_arch_2_05.S \ strcpy.c \ - strcpy_resolver.c + strcpy_resolver.c \ + strncpy_arch_2_05.S \ + strncpy.c \ + strncpy_resolver.c Added: head/lib/libc/powerpc64/string/strncpy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strncpy.c Wed Jan 15 19:53:03 2020 (r356766) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include +__FBSDID("$FreeBSD$"); + +#define WEAK_STRNCPY +#include "../../string/strncpy.c" Added: head/lib/libc/powerpc64/string/strncpy_arch_2_05.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strncpy_arch_2_05.S Wed Jan 15 19:53:03 2020 (r356766) @@ -0,0 +1,131 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +ENTRY(__strncpy_arch_2_05) + stdu %r1,-40(%r1) + mflr %r0 + std %r0,16(%r1) + std %r3,32(%r1) + + xor %r6,%r6,%r6 /* fixed 0 reg */ + +/* align loop */ + addi %r3,%r3,-1 +.Lalign_loop: + /* len? */ + cmpdi %r5,0 + beq .Lexit + /* aligned? */ + andi. %r0,%r4,7 + beq .Ldw_copy + /* copy */ + lbz %r7,0(%r4) + stbu %r7,1(%r3) + addi %r4,%r4,1 + addi %r5,%r5,-1 + /* zero? */ + cmpdi %r7,0 + beq .Lzero + b .Lalign_loop + +/* dword copy loop */ +.Ldw_copy: + /* prepare src and dst to use load/store and update */ + addi %r3,%r3,-7 + addi %r4,%r4,-8 +.Ldw_copy_loop: + cmpdi %r5,8 + blt .Lbyte_copy + + ldu %r0,8(%r4) + /* check for 0 */ + cmpb %r7,%r0,%r6 + cmpdi %r7,0 + bne .Lbyte_copy_and_zero + /* copy to dst */ + stdu %r0,8(%r3) + addi %r5,%r5,-8 + b .Ldw_copy_loop + +/* Copy remaining src bytes, zero-out buffer + * Note: r5 will be >= 8 + */ +.Lbyte_copy_and_zero: + addi %r3,%r3,7 + addi %r4,%r4,-1 +.Lbyte_copy_and_zero_loop: + lbzu %r7,1(%r4) + stbu %r7,1(%r3) + addi %r5,%r5,-1 + cmpdi %r7,0 + beq .Lzero + b .Lbyte_copy_and_zero_loop + +/* zero-out remaining dst bytes */ +.Lzero: + addi %r3,%r3,1 + li %r4,0 + /* r5 has len already */ + bl memset + nop + b .Lexit + +/* copy remaining (< 8) bytes */ +.Lbyte_copy: + cmpdi %r5,0 + beq .Lexit + addi %r3,%r3,7 + addi %r4,%r4,7 + mtctr %r5 +.Lbyte_copy_loop: + lbzu %r7,1(%r4) + stbu %r7,1(%r3) + cmpdi %r7,0 + /* 0 found: zero out remaining bytes */ + beq .Lbyte_copy_zero + bdnz .Lbyte_copy_loop + b .Lexit +.Lbyte_copy_zero_loop: + stbu %r6,1(%r3) +.Lbyte_copy_zero: + bdnz .Lbyte_copy_zero_loop + +.Lexit: + /* epilogue */ + ld %r3,32(%r1) + ld %r0,16(%r1) + mtlr %r0 + addi %r1,%r1,40 + blr + +END(__strncpy_arch_2_05) + + .section .note.GNU-stack,"",%progbits Added: head/lib/libc/powerpc64/string/strncpy_resolver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/strncpy_resolver.c Wed Jan 15 19:53:03 2020 (r356766) @@ -0,0 +1,48 @@ +/*- + * Copyright (c) 2019 Leandro Lupori + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +char * +__strncpy_arch_2_05(char * restrict dst, const char * restrict src, size_t len); + +char * +__strncpy(char * restrict dst, const char * restrict src, size_t len); + +DEFINE_UIFUNC(, char *, strncpy, + (char * restrict, const char * restrict, size_t)) +{ + if (cpu_features & PPC_FEATURE_ARCH_2_05) + return (__strncpy_arch_2_05); + else + return (__strncpy); +} Modified: head/lib/libc/string/strncpy.c ============================================================================== --- head/lib/libc/string/strncpy.c Wed Jan 15 19:46:01 2020 (r356765) +++ head/lib/libc/string/strncpy.c Wed Jan 15 19:53:03 2020 (r356766) @@ -44,8 +44,17 @@ __FBSDID("$FreeBSD$"); * Copy src to dst, truncating or null-padding to always copy n bytes. * Return dst. */ +#ifdef WEAK_STRNCPY +__weak_reference(__strncpy, strncpy); +#endif + char * -strncpy(char * __restrict dst, const char * __restrict src, size_t n) +#ifdef WEAK_STRNCPY +__strncpy +#else +strncpy +#endif +(char * __restrict dst, const char * __restrict src, size_t n) { if (n != 0) { char *d = dst; From owner-svn-src-all@freebsd.org Wed Jan 15 20:25:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEEC51FC565; Wed, 15 Jan 2020 20:25:54 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yf3Q6JJ5z3xkM; Wed, 15 Jan 2020 20:25:54 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D36DAC354; Wed, 15 Jan 2020 20:25:54 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FKPsm2031581; Wed, 15 Jan 2020 20:25:54 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FKPqu4031569; Wed, 15 Jan 2020 20:25:52 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202001152025.00FKPqu4031569@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Wed, 15 Jan 2020 20:25:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356767 - head/lib/libc/powerpc64/string X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: head/lib/libc/powerpc64/string X-SVN-Commit-Revision: 356767 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 20:25:54 -0000 Author: luporl Date: Wed Jan 15 20:25:52 2020 New Revision: 356767 URL: https://svnweb.freebsd.org/changeset/base/356767 Log: [PPC64] memcpy/memmove/bcopy optimization For copies shorter than 512 bytes, the data is copied using plain ld/std instructions. For 512 bytes or more, the copy is done in 3 phases: Phase 1: copy from the src buffer until it's aligned at a 16-byte boundary Phase 2: copy as many aligned 64-byte blocks from the src buffer as possible Phase 3: copy the remaining data, if any In phase 2, this code uses VSX instructions when available. Otherwise, it uses ldx/stdx. Submitted by: Luis Pires (original version) Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D15118 Added: head/lib/libc/powerpc64/string/bcopy.S (contents, props changed) head/lib/libc/powerpc64/string/bcopy_resolver.c (contents, props changed) head/lib/libc/powerpc64/string/bcopy_vsx.S (contents, props changed) head/lib/libc/powerpc64/string/memcpy.S (contents, props changed) head/lib/libc/powerpc64/string/memcpy_resolver.c (contents, props changed) head/lib/libc/powerpc64/string/memcpy_vsx.S (contents, props changed) head/lib/libc/powerpc64/string/memmove.S (contents, props changed) head/lib/libc/powerpc64/string/memmove_resolver.c (contents, props changed) head/lib/libc/powerpc64/string/memmove_vsx.S (contents, props changed) Modified: head/lib/libc/powerpc64/string/Makefile.inc Modified: head/lib/libc/powerpc64/string/Makefile.inc ============================================================================== --- head/lib/libc/powerpc64/string/Makefile.inc Wed Jan 15 19:53:03 2020 (r356766) +++ head/lib/libc/powerpc64/string/Makefile.inc Wed Jan 15 20:25:52 2020 (r356767) @@ -1,6 +1,15 @@ # $FreeBSD$ MDSRCS+= \ + bcopy.S \ + bcopy_vsx.S \ + bcopy_resolver.c \ + memcpy.S \ + memcpy_vsx.S \ + memcpy_resolver.c \ + memmove.S \ + memmove_vsx.S \ + memmove_resolver.c \ strcpy_arch_2_05.S \ strcpy.c \ strcpy_resolver.c \ Added: head/lib/libc/powerpc64/string/bcopy.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/bcopy.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,306 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#define BLOCK_SIZE_BITS 6 +#define BLOCK_SIZE (1 << BLOCK_SIZE_BITS) +#define BLOCK_SIZE_MASK (BLOCK_SIZE - 1) + +#define MULTI_PHASE_THRESHOLD 512 + +#ifndef FN_NAME +#ifdef MEMMOVE +#define FN_NAME __memmove +WEAK_REFERENCE(__memmove, memmove); +#else +#define FN_NAME __bcopy +WEAK_REFERENCE(__bcopy, bcopy); +#endif +#endif + +/* + * r3: dst + * r4: src + * r5: len + */ + +ENTRY(FN_NAME) + cmpld %r3, %r4 /* src == dst? nothing to do */ + beqlr- + cmpdi %r5, 0 /* len == 0? nothing to do */ + beqlr- + +#ifdef MEMMOVE + std %r3, -8(%r1) /* save dst */ +#else /* bcopy: swap src/dst */ + mr %r0, %r3 + mr %r3, %r4 + mr %r4, %r0 +#endif + + cmpldi %r5, MULTI_PHASE_THRESHOLD + bge .Lmulti_phase + + /* align src */ + cmpd %r4, %r3 /* forward or backward copy? */ + blt .Lbackward_align + + .align 5 +.Lalign: + andi. %r0, %r4, 15 + beq .Lsingle_copy + lbz %r0, 0(%r4) + addi %r4, %r4, 1 + stb %r0, 0(%r3) + addi %r3, %r3, 1 + addi %r5, %r5, -1 + cmpdi %r5, 0 + beq- .Ldone + b .Lalign + +.Lbackward_align: + /* advance src and dst to end (past last byte) */ + add %r3, %r3, %r5 + add %r4, %r4, %r5 + .align 5 +.Lbackward_align_loop: + andi. %r0, %r4, 15 + beq .Lbackward_single_copy + lbzu %r0, -1(%r4) + addi %r5, %r5, -1 + stbu %r0, -1(%r3) + cmpdi %r5, 0 + beq- .Ldone + b .Lbackward_align_loop + +.Lsingle_copy: + /* forward copy */ + li %r0, 1 + li %r8, 16 + li %r9, 0 + b .Lsingle_phase + +.Lbackward_single_copy: + /* backward copy */ + li %r0, -1 + li %r8, -16 + li %r9, -15 + /* point src and dst to last byte */ + addi %r3, %r3, -1 + addi %r4, %r4, -1 + +.Lsingle_phase: + srdi. %r6, %r5, 4 /* number of 16-bytes */ + beq .Lsingle_1 + + /* pre-adjustment */ + add %r3, %r3, %r9 + add %r4, %r4, %r9 + + mtctr %r6 + .align 5 +.Lsingle_16_loop: + ld %r6, 0(%r4) + ld %r7, 8(%r4) + add %r4, %r4, %r8 + std %r6, 0(%r3) + std %r7, 8(%r3) + add %r3, %r3, %r8 + bdnz .Lsingle_16_loop + + /* post-adjustment */ + sub %r3, %r3, %r9 + sub %r4, %r4, %r9 + +.Lsingle_1: + andi. %r6, %r5, 0x0f /* number of 1-bytes */ + beq .Ldone /* 1-bytes == 0? done */ + + mtctr %r6 + .align 5 +.Lsingle_1_loop: + lbz %r6, 0(%r4) + add %r4, %r4, %r0 /* increment */ + stb %r6, 0(%r3) + add %r3, %r3, %r0 /* increment */ + bdnz .Lsingle_1_loop + +.Ldone: +#ifdef MEMMOVE + ld %r3, -8(%r1) /* restore dst */ +#endif + blr + + +.Lmulti_phase: + /* set up multi-phase copy parameters */ + + /* r7 = bytes before the aligned section of the buffer */ + andi. %r6, %r4, 15 + subfic %r7, %r6, 16 + /* r8 = bytes in and after the aligned section of the buffer */ + sub %r8, %r5, %r7 + /* r9 = bytes after the aligned section of the buffer */ + andi. %r9, %r8, BLOCK_SIZE_MASK + /* r10 = BLOCKS in the aligned section of the buffer */ + srdi %r10, %r8, BLOCK_SIZE_BITS + + /* forward or backward copy? */ + cmpd %r4, %r3 + blt .Lbackward_multi_copy + + /* set up forward copy parameters */ + std %r7, -32(%r1) /* bytes to copy in phase 1 */ + std %r10, -40(%r1) /* BLOCKS to copy in phase 2 */ + std %r9, -48(%r1) /* bytes to copy in phase 3 */ + + li %r0, 1 /* increment for phases 1 and 3 */ + li %r5, BLOCK_SIZE /* increment for phase 2 */ + + /* op offsets for phase 2 */ + li %r7, 0 + li %r8, 16 + li %r9, 32 + li %r10, 48 + + std %r8, -16(%r1) /* 16-byte increment (16) */ + std %r7, -24(%r1) /* 16-byte pre/post adjustment (0) */ + + b .Lphase1 + +.Lbackward_multi_copy: + /* set up backward copy parameters */ + std %r9, -32(%r1) /* bytes to copy in phase 1 */ + std %r10, -40(%r1) /* BLOCKS to copy in phase 2 */ + std %r7, -48(%r1) /* bytes to copy in phase 3 */ + + li %r0, -1 /* increment for phases 1 and 3 */ + add %r6, %r5, %r0 /* r6 = len - 1 */ + li %r5, -BLOCK_SIZE /* increment for phase 2 */ + /* advance src and dst to the last position */ + add %r3, %r3, %r6 + add %r4, %r4, %r6 + + /* op offsets for phase 2 */ + li %r7, -15 + li %r8, -31 + li %r9, -47 + li %r10, -63 + + add %r6, %r7, %r0 /* r6 = -16 */ + std %r6, -16(%r1) /* 16-byte increment (-16) */ + std %r7, -24(%r1) /* 16-byte pre/post adjustment (-15) */ + +.Lphase1: + ld %r6, -32(%r1) /* bytes to copy in phase 1 */ + cmpldi %r6, 0 /* r6 == 0? skip phase 1 */ + beq+ .Lphase2 + + mtctr %r6 + .align 5 +.Lphase1_loop: + lbz %r6, 0(%r4) + add %r4, %r4, %r0 /* phase 1 increment */ + stb %r6, 0(%r3) + add %r3, %r3, %r0 /* phase 1 increment */ + bdnz .Lphase1_loop + +.Lphase2: + ld %r6, -40(%r1) /* BLOCKS to copy in phase 2 */ + cmpldi %r6, 0 /* %r6 == 0? skip phase 2 */ + beq .Lphase3 + +#ifdef FN_PHASE2 +FN_PHASE2 +#else + /* save registers */ + std %r14, -56(%r1) + std %r15, -64(%r1) + std %r16, -72(%r1) + std %r17, -80(%r1) + std %r18, -88(%r1) + std %r19, -96(%r1) + std %r20, -104(%r1) + std %r21, -112(%r1) + + addi %r18, %r7, 8 + addi %r19, %r8, 8 + addi %r20, %r9, 8 + addi %r21, %r10, 8 + + mtctr %r6 + .align 5 +.Lphase2_loop: + ldx %r14, %r7, %r4 + ldx %r15, %r18, %r4 + ldx %r16, %r8, %r4 + ldx %r17, %r19, %r4 + stdx %r14, %r7, %r3 + stdx %r15, %r18, %r3 + stdx %r16, %r8, %r3 + stdx %r17, %r19, %r3 + + ldx %r14, %r9, %r4 + ldx %r15, %r20, %r4 + ldx %r16, %r10, %r4 + ldx %r17, %r21, %r4 + stdx %r14, %r9, %r3 + stdx %r15, %r20, %r3 + stdx %r16, %r10, %r3 + stdx %r17, %r21, %r3 + + add %r4, %r4, %r5 /* phase 2 increment */ + add %r3, %r3, %r5 /* phase 2 increment */ + + bdnz .Lphase2_loop + + /* restore registers */ + ld %r14, -56(%r1) + ld %r15, -64(%r1) + ld %r16, -72(%r1) + ld %r17, -80(%r1) + ld %r18, -88(%r1) + ld %r19, -96(%r1) + ld %r20, -104(%r1) + ld %r21, -112(%r1) +#endif + +.Lphase3: + /* load registers for transitioning into the single-phase logic */ + ld %r5, -48(%r1) /* bytes to copy in phase 3 */ + ld %r8, -16(%r1) /* 16-byte increment */ + ld %r9, -24(%r1) /* 16-byte pre/post adjustment */ + b .Lsingle_phase + +END(FN_NAME) + + .section .note.GNU-stack,"",%progbits + Added: head/lib/libc/powerpc64/string/bcopy_resolver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/bcopy_resolver.c Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include + +#define _CAT(a,b) a##b +#define CAT(a,b) _CAT(a,b) +#define CAT3(a,b,c) CAT(CAT(a,b),c) + +#ifdef MEMCOPY +#define FN_NAME memcpy +#define FN_RET void * +#define FN_PARAMS (void *dst, const void *src, size_t len) + +#elif defined(MEMMOVE) +#define FN_NAME memmove +#define FN_RET void * +#define FN_PARAMS (void *dst, const void *src, size_t len) + +#else +#define FN_NAME bcopy +#define FN_RET void +#define FN_PARAMS (const void *src, void *dst, size_t len) +#endif + +#define FN_NAME_NOVSX CAT(__, FN_NAME) +#define FN_NAME_VSX CAT3(__, FN_NAME, _vsx) + +FN_RET FN_NAME_NOVSX FN_PARAMS; +FN_RET FN_NAME_VSX FN_PARAMS; + +DEFINE_UIFUNC(, FN_RET, FN_NAME, FN_PARAMS) +{ + if (cpu_features & PPC_FEATURE_HAS_VSX) + return (FN_NAME_VSX); + else + return (FN_NAME_NOVSX); +} Added: head/lib/libc/powerpc64/string/bcopy_vsx.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/bcopy_vsx.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,61 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef FN_NAME +#define FN_NAME __bcopy_vsx +#endif + +/* + * r3: dst + * r4: src + * r5: block increment + * r6: blocks to copy + * r7/r8/r9/r10: 16-byte offsets to copy + */ + +#define FN_PHASE2 \ + mtctr %r6 ;\ + .align 5 ;\ +.Lphase2_loop: ;\ + lxvd2x %vs6, %r7, %r4 ;\ + lxvd2x %vs7, %r8, %r4 ;\ + lxvd2x %vs8, %r9, %r4 ;\ + lxvd2x %vs9, %r10, %r4 ;\ + stxvd2x %vs6, %r7, %r3 ;\ + stxvd2x %vs7, %r8, %r3 ;\ + stxvd2x %vs8, %r9, %r3 ;\ + stxvd2x %vs9, %r10, %r3 ;\ + /* phase 2 increment */ ;\ + add %r4, %r4, %r5 ;\ + add %r3, %r3, %r5 ;\ + \ + bdnz .Lphase2_loop ;\ + +#include "bcopy.S" Added: head/lib/libc/powerpc64/string/memcpy.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memcpy.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,122 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#ifndef FN_NAME +#define FN_NAME __memcpy +WEAK_REFERENCE(__memcpy, memcpy); +#define BLOCK_BITS 4 +#endif + +#define BLOCK_BYTES (1 << BLOCK_BITS) +#define BLOCK_MASK (BLOCK_BYTES - 1) + +/* + * r3: dst + * r4: src + * r5: len + */ +ENTRY(FN_NAME) + cmpdi %r5, 0 /* len == 0? nothing to do */ + beqlr- + + mr %r8, %r3 /* save dst */ + + /* align src */ +.Lalignment_loop: + lbz %r6, 0(%r4) + stb %r6, 0(%r3) + addi %r3, %r3, 1 + addi %r4, %r4, 1 + addi %r5, %r5, -1 + cmpdi %r5, 0 + beq .Lexit + andi. %r0, %r4, BLOCK_MASK + bne .Lalignment_loop + + /* r7 = remaining, non-block, bytes */ + andi. %r7, %r5, BLOCK_MASK + + /* Check if there are blocks of BLOCK_BYTES to be copied */ + xor. %r5, %r5, %r7 + beq .Lcopy_remaining_fix_index_byte + +#ifdef FN_COPY_LOOP +FN_COPY_LOOP +#else + /* Setup to copy word with ldu and stdu */ + ld %r6, 0(%r4) + ld %r9, 8(%r4) + std %r6, 0(%r3) + std %r9, 8(%r3) + addi %r5, %r5, -BLOCK_BYTES + cmpd %r5, 0 + beq .Lcopy_remaining_fix_index_word + + srdi %r5, %r5, BLOCK_BITS + mtctr %r5 +.Lcopy_word: + ldu %r6, 16(%r4) + ld %r9, 8(%r4) + stdu %r6, 16(%r3) + std %r9, 8(%r3) + bdnz .Lcopy_word + +.Lcopy_remaining_fix_index_word: + /* Check if there are remaining bytes */ + cmpd %r7, 0 + beq .Lexit + addi %r3, %r3, BLOCK_MASK + addi %r4, %r4, BLOCK_MASK + b .Lcopy_remaining +#endif + +.Lcopy_remaining_fix_index_byte: + addi %r4, %r4, -1 + addi %r3, %r3, -1 + + /* Copy remaining bytes */ +.Lcopy_remaining: + mtctr %r7 +.Lcopy_remaining_loop: + lbzu %r6, 1(%r4) + stbu %r6, 1(%r3) + bdnz .Lcopy_remaining_loop + +.Lexit: + /* Restore dst */ + mr %r3, %r8 + blr + +END(FN_NAME) + + .section .note.GNU-stack,"",%progbits + Added: head/lib/libc/powerpc64/string/memcpy_resolver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memcpy_resolver.c Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,4 @@ +/* $FreeBSD$ */ + +#define MEMCOPY +#include "bcopy_resolver.c" Added: head/lib/libc/powerpc64/string/memcpy_vsx.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memcpy_vsx.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,65 @@ +/*- + * Copyright (c) 2018 Instituto de Pesquisas Eldorado + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of its contributors may + * be used to endorse or promote products derived from this software + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#define FN_NAME __memcpy_vsx +#define BLOCK_BITS 6 + +/* + * r5: bytes to copy (multiple of BLOCK_BYTES) + * + */ +#define FN_COPY_LOOP \ + /* Load CTR with number of blocks */ \ + srdi %r5, %r5, BLOCK_BITS ;\ + mtctr %r5 ;\ + /* Prepare indexes to load and store data */ \ + xor %r6, %r6, %r6 ;\ + li %r9, 16 ;\ + li %r10, 32 ;\ + li %r11, 48 ;\ +.Lcopy_vsx_loop: \ + lxvd2x %vs6, %r6, %r4 ;\ + lxvd2x %vs7, %r9, %r4 ;\ + lxvd2x %vs8, %r10, %r4 ;\ + lxvd2x %vs9, %r11, %r4 ;\ + stxvd2x %vs6, %r6, %r3 ;\ + stxvd2x %vs7, %r9, %r3 ;\ + stxvd2x %vs8, %r10, %r3 ;\ + stxvd2x %vs9, %r11, %r3 ;\ + \ + addi %r3, %r3, BLOCK_BYTES ;\ + addi %r4, %r4, BLOCK_BYTES ;\ + bdnz .Lcopy_vsx_loop ;\ + \ + /* Check if there is remaining bytes */ \ + cmpd %r7, 0 ;\ + beq .Lexit ;\ + +#include "memcpy.S" Added: head/lib/libc/powerpc64/string/memmove.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memmove.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,4 @@ +/* $FreeBSD$ */ + +#define MEMMOVE +#include "bcopy.S" Added: head/lib/libc/powerpc64/string/memmove_resolver.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memmove_resolver.c Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,4 @@ +/* $FreeBSD$ */ + +#define MEMMOVE +#include "bcopy_resolver.c" Added: head/lib/libc/powerpc64/string/memmove_vsx.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/powerpc64/string/memmove_vsx.S Wed Jan 15 20:25:52 2020 (r356767) @@ -0,0 +1,5 @@ +/* $FreeBSD$ */ + +#define MEMMOVE +#define FN_NAME __memmove_vsx +#include "bcopy_vsx.S" From owner-svn-src-all@freebsd.org Wed Jan 15 20:33:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7F4F71FC8D6 for ; Wed, 15 Jan 2020 20:33:08 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82b.google.com (mail-qt1-x82b.google.com [IPv6:2607:f8b0:4864:20::82b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yfCl3Xkbz3yGC for ; Wed, 15 Jan 2020 20:33:07 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82b.google.com with SMTP id v25so16970487qto.7 for ; Wed, 15 Jan 2020 12:33:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=7NYfMJQLJJP2T8coI6qnZF+A6MsOpYIL2oZta7tnAH8=; b=mw/7B9foZTp31scgl7RmYSLxBsIyJnCm55YdiicouL9zCHhNNXmg+EsZPM8VjMKXLn jwYS9Lgz+ux2n1M5J/K6X8FbBH8bmX72Z1Gi6VKXavRHKRDvJAs29NLKPKGpzrnO3xk1 jrQzZP/5cSyHHwTHsm8HUdmskPsmwrr+my/StltupeseLCZ42wvYUVR6By23o1aO3s3z goJtrMFKcxwuJzzhB9YNPJ488P5r/iP+9mj4vMao2EI8Qed5aMNCtGXrT+nCFwdkW+O2 U18AgRCpQSfyfArAM187FJ5Sag5owXw0L+aTuYn5zIjJy3AT5BQIDdBHeT8Ij2R+AYLy 2Wzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=7NYfMJQLJJP2T8coI6qnZF+A6MsOpYIL2oZta7tnAH8=; b=K7nqfqOu8Evo6417TSAdMHpsBopWNDkF6czhx0QQQ6+RUWpRjrcU5v4jQqJ2xUJNlV AOepMckT9kfNrTTSWEYyRYrl9p6Z05r+ViFRl08cNDbpeBObyj0UJozDiHc5VvIUmWly QgZy3SGXX6XGWillpW0j92ghmFTSuDvlcuYG1osgWfKXOhzbeujtTKSAZmEdeh9Ulde9 gAChBESP8sVerpPeYZDOnNBC8+EYJ06qq9/gcnemV1+phItF6OeL3jPQnrKrhQFYwLXs WQHxru3x1HCO3Xp9m1/bI8tu6TaPfs5R5Y4BFKBAW+X1yFlMzRL7S9mRoummbpc3tpIS c/GA== X-Gm-Message-State: APjAAAVxUBP9Onl97b0H6SqVl0HEph19R4aOagi8j0bjZwHrZTrD6uwR mWdsPKGpLcXkZEVixonRx6GU8Ub5KgSdYnYcPbspwg== X-Google-Smtp-Source: APXvYqwc1a0szg5KGvOklnhG7OPKPl2Wuoy+oitFLB1sByNlZb4C54GrwF3TuXam/3zEjPAzQ4N3snzllr+j9qc6P0s= X-Received: by 2002:ac8:3198:: with SMTP id h24mr410648qte.291.1579120386106; Wed, 15 Jan 2020 12:33:06 -0800 (PST) MIME-Version: 1.0 References: <202001150747.00F7lqiG071097@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Wed, 15 Jan 2020 13:32:55 -0700 Message-ID: Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Nathan Whitehorn Cc: Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Ed Maste X-Rspamd-Queue-Id: 47yfCl3Xkbz3yGC X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=mw/7B9fo; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82b) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.16 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[b.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[7]; NEURAL_HAM_MEDIUM(-1.00)[-0.998,0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.66)[ip: (-9.33), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; SUSPICIOUS_RECIPS(1.50)[]; FREEMAIL_CC(0.00)[gmail.com] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 20:33:08 -0000 On Wed, Jan 15, 2020 at 12:10 PM Nathan Whitehorn wrote: > I agree -- this seems like a really big change, especially with no > discussion. > I agree this is the right thing to do. ZFS is the best fit for most people (there are exceptions, and they can install UFS and if ZFS isn't right for you, you're likely well aware of it[*]). ZFS is a huge asset to FreeBSD, and we should lead with strength. And the UFS option is there for people that don't want ZFS. Nothing changes there... In an ideal world, it likely should have been socialized first on arch@ (it's likely still good to chat about it there). It would likely be good to kick off a discussion there, but honestly, this should be a fairly boring, bland change for most people in our core, target market. There's little compelling reason to not use ZFS, unless your work load hits the fairly narrow range where ZFS isn't so good. Warner [*] Netflix uses UFS because of sendfile efficiencies, but we don't use the installer to install our systems: we have our own custom one our system integrators use since it has a lot of extra specific checks we need, but that aren't relevant to others. And my personal systems are almost all ZFS (the ones that aren't date from a time that ZFS wasn't in the system, or too new for me to trust it). > -Nathan > > On 2020-01-15 10:57, Oliver Pinter wrote: > > > > > > On Wednesday, January 15, 2020, Ben Woods > > wrote: > > > > Author: woodsb02 (ports committer) > > Date: Wed Jan 15 07:47:52 2020 > > New Revision: 356758 > > URL: https://svnweb.freebsd.org/changeset/base/356758 > > > > > > Log: > > bsdinstall: Change "default" (first) Partitioning method to ZFS > > > > Reported by: Ruben Schade (during his talk at linux.conf.au > > ) > > Approved by: philip > > Differential Revision: https://reviews.freebsd.org/D23173 > > > > > > > > What's the justification behind this change? > > Plus I miss from here the relontes tag. > > > > > > > > > > Modified: > > head/usr.sbin/bsdinstall/bsdinstall.8 > > head/usr.sbin/bsdinstall/scripts/auto > > > > Modified: head/usr.sbin/bsdinstall/bsdinstall.8 > > > ============================================================================== > > --- head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 > > 06:18:32 2020 (r356757) > > +++ head/usr.sbin/bsdinstall/bsdinstall.8 Wed Jan 15 > > 07:47:52 2020 (r356758) > > @@ -119,7 +119,7 @@ Provides the installer's interactive guided > > disk parti > > installations. > > Defaults to UFS. > > .It Cm zfsboot > > -Provides an alternative ZFS-only automatic interactive disk > > partitioner. > > +Provides a ZFS-only automatic interactive disk partitioner. > > Creates a single > > .Ic zpool > > with separate datasets for > > > > Modified: head/usr.sbin/bsdinstall/scripts/auto > > > ============================================================================== > > --- head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 > > 06:18:32 2020 (r356757) > > +++ head/usr.sbin/bsdinstall/scripts/auto Wed Jan 15 > > 07:47:52 2020 (r356758) > > @@ -289,7 +289,7 @@ Shell \"Open a shell and partition by hand\"" > > CURARCH=$( uname -m ) > > case $CURARCH in > > amd64|arm64|i386) # Booting ZFS Supported > > - PMODES="$PMODES \"Auto (ZFS)\" \"Guided > Root-on-ZFS\"" > > + PMODES="\"Auto (ZFS)\" \"Guided Root-on-ZFS\" > $PMODES" > > ;; > > *) # Booting ZFS Unspported > > ;; > > @@ -303,6 +303,10 @@ PARTMODE=`echo $PMODES | xargs dialog > > --backtitle "Fre > > exec 3>&- > > > > case "$PARTMODE" in > > +"Auto (ZFS)") # ZFS > > + bsdinstall zfsboot || error "ZFS setup failed" > > + bsdinstall mount || error "Failed to mount filesystem" > > + ;; > > "Auto (UFS)") # Guided > > bsdinstall autopart || error "Partitioning error" > > bsdinstall mount || error "Failed to mount filesystem" > > @@ -319,10 +323,6 @@ case "$PARTMODE" in > > else > > bsdinstall partedit || error "Partitioning error" > > fi > > - bsdinstall mount || error "Failed to mount filesystem" > > - ;; > > -"Auto (ZFS)") # ZFS > > - bsdinstall zfsboot || error "ZFS setup failed" > > bsdinstall mount || error "Failed to mount filesystem" > > ;; > > *) > > _______________________________________________ > > 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-unsubscribe@freebsd.org > > " > > > > From owner-svn-src-all@freebsd.org Wed Jan 15 20:36:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E17321FC9AE for ; Wed, 15 Jan 2020 20:36:11 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qt1-x82a.google.com (mail-qt1-x82a.google.com [IPv6:2607:f8b0:4864:20::82a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yfHH2BmYz3yWg for ; Wed, 15 Jan 2020 20:36:11 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qt1-x82a.google.com with SMTP id d5so16999952qto.0 for ; Wed, 15 Jan 2020 12:36:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=urNeYVNNxylbJ2cjz7uvjT8ZH+izCQid+xe3Gqcq4Pw=; b=Rf9JC7hTGuw2McKxWamcYzkBdkzHI4vILg77jETNi1DqpTSdGqRLH0BBVOfwfdqh61 uFBVb7Lv+xawwBc6Hl9S+5GPJJy01muxmzRQlOXldGvJKbxJ7dH68nR/SVtTqFJ+1Stu era1BgglPG1B1rqMyqLq3EmHXI6PsBPzJHkX0Ek5aBHGHPIUu7qJ6CCBOTbtxLhoJcU1 RsYjMg/l4/GJOojp6yHVB1eUjpzfTZCqhYW/90qNAHLdb/aIUO8DCmi+xjT5jWlcns2I HOFwkA7fLHk3KksnupwNbYTsMRbChXpY6b6+xbXfmMnqHgMYDSBQMtPiXsdBVYE7fEyo zoDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=urNeYVNNxylbJ2cjz7uvjT8ZH+izCQid+xe3Gqcq4Pw=; b=EZuGcZoi+3JAWxHeL+Hcoa7hp2k3BVHdg2YdGsefQfAtUSvECMODEZ14ur6XvsV8i6 AZAzb3sGouqrxy6350qW8iAbmIvIp+1x5TKnlbVLCLwmdWjpFUgInAz1oaNdPB5vmJ8F 1mrI6Pj76XglmBBMI3onRwvVCvgyZHcRCl95lPudOJE+JoQFlLmuZjb8fgVE6IlesMow ng/wfnqjVDR8eEXXHddTa99LaMh4ewbE2YxtIwG4GLr608C4cp1QbCtSU1KBHYa/6LMh 8MWJGYO/0JPMiaU/n98g9sGjxzNM7uE+8JoQPtqSIOs7ytaet0nGTR6gQF3725CcPBsZ Fs6Q== X-Gm-Message-State: APjAAAWqqwANH8FB8nbY2YNP5JJMhS9eTMeEyr482kocGs4R6VAOQFBp F6KOOYuqaibGnU6ArvFcfsp9w7x4Teelv4fJhAbAuL4R X-Google-Smtp-Source: APXvYqxQ/qdMSUNo4ldktIOdtOdTeNsTt2dht6sso2n3X40sWzs+WRlyEJ6e+GEoijdJ72O0IcQHmtMvkjnr1i8v7Fk= X-Received: by 2002:aed:3e53:: with SMTP id m19mr477184qtf.32.1579120570236; Wed, 15 Jan 2020 12:36:10 -0800 (PST) MIME-Version: 1.0 References: <202001150605.00F65Kc8011526@repo.freebsd.org> In-Reply-To: From: Warner Losh Date: Wed, 15 Jan 2020 13:35:59 -0700 Message-ID: Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Jeff Roberson Cc: Gleb Smirnoff , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47yfHH2BmYz3yWg X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=Rf9JC7hT; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::82a) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.66 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[a.2.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.67)[ip: (-9.36), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 20:36:11 -0000 On Wed, Jan 15, 2020 at 12:45 PM Jeff Roberson wrote: > On Wed, 15 Jan 2020, Gleb Smirnoff wrote: > > > Author: glebius > > Date: Wed Jan 15 06:05:20 2020 > > New Revision: 356755 > > URL: https://svnweb.freebsd.org/changeset/base/356755 > > > > Log: > > Introduce NET_EPOCH_CALL() macro and use it everywhere where we free > > data based on the network epoch. The macro reverses the argument > > order of epoch_call(9) - first function, then its argument. NFC > > Is there some practical impact of changing the argument order or does it > just seem more natural to you? > Everywhere else in the system, it's fnp, argp for ordering the args... You'd be hard pressed to find exceptions to this rule. Since this is a new interface, we should fix it now while we still can :) Warner > Jeff > > > > > Modified: > > head/sys/net/bpf.c > > head/sys/net/if.c > > head/sys/net/if_gre.c > > head/sys/net/if_lagg.c > > head/sys/net/if_vlan.c > > head/sys/netinet/in.c > > head/sys/netinet/in_pcb.c > > head/sys/netinet/ip_gre.c > > head/sys/netinet/tcp_ratelimit.c > > head/sys/netinet6/in6.c > > head/sys/netinet6/ip6_gre.c > > head/sys/netpfil/ipfw/nat64/nat64lsn.c > > head/sys/sys/epoch.h > > > > Modified: head/sys/net/bpf.c > > > ============================================================================== > > --- head/sys/net/bpf.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/net/bpf.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -274,10 +274,10 @@ static struct filterops bpfread_filtops = { > > * > > * 2. An userland application uses ioctl() call to bpf_d descriptor. > > * All such call are serialized with global lock. BPF filters can be > > - * changed, but pointer to old filter will be freed using epoch_call(). > > + * changed, but pointer to old filter will be freed using > NET_EPOCH_CALL(). > > * Thus it should be safe for bpf_tap/bpf_mtap* code to do access to > > * filter pointers, even if change will happen during bpf_tap execution. > > - * Destroying of bpf_d descriptor also is doing using epoch_call(). > > + * Destroying of bpf_d descriptor also is doing using NET_EPOCH_CALL(). > > * > > * 3. An userland application can write packets into bpf_d descriptor. > > * There we need to be sure, that ifnet won't disappear during > bpfwrite(). > > @@ -288,7 +288,7 @@ static struct filterops bpfread_filtops = { > > * > > * 5. The kernel invokes bpfdetach() on interface destroying. All lists > > * are modified with global lock held and actual free() is done using > > - * epoch_call(). > > + * NET_EPOCH_CALL(). > > */ > > > > static void > > @@ -314,7 +314,7 @@ bpfif_rele(struct bpf_if *bp) > > > > if (!refcount_release(&bp->bif_refcnt)) > > return; > > - epoch_call(net_epoch_preempt, &bp->epoch_ctx, bpfif_free); > > + NET_EPOCH_CALL(bpfif_free, &bp->epoch_ctx); > > } > > > > static void > > @@ -330,7 +330,7 @@ bpfd_rele(struct bpf_d *d) > > > > if (!refcount_release(&d->bd_refcnt)) > > return; > > - epoch_call(net_epoch_preempt, &d->epoch_ctx, bpfd_free); > > + NET_EPOCH_CALL(bpfd_free, &d->epoch_ctx); > > } > > > > static struct bpf_program_buffer* > > @@ -2036,8 +2036,7 @@ bpf_setf(struct bpf_d *d, struct bpf_program *fp, > u_lo > > BPFD_UNLOCK(d); > > > > if (fcode != NULL) > > - epoch_call(net_epoch_preempt, &fcode->epoch_ctx, > > - bpf_program_buffer_free); > > + NET_EPOCH_CALL(bpf_program_buffer_free, &fcode->epoch_ctx); > > > > if (track_event) > > EVENTHANDLER_INVOKE(bpf_track, > > > > Modified: head/sys/net/if.c > > > ============================================================================== > > --- head/sys/net/if.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/net/if.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -654,7 +654,7 @@ if_free(struct ifnet *ifp) > > IFNET_WUNLOCK(); > > > > if (refcount_release(&ifp->if_refcount)) > > - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, > if_destroy); > > + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); > > CURVNET_RESTORE(); > > } > > > > @@ -677,7 +677,7 @@ if_rele(struct ifnet *ifp) > > > > if (!refcount_release(&ifp->if_refcount)) > > return; > > - epoch_call(net_epoch_preempt, &ifp->if_epoch_ctx, if_destroy); > > + NET_EPOCH_CALL(if_destroy, &ifp->if_epoch_ctx); > > } > > > > void > > @@ -1826,7 +1826,7 @@ ifa_free(struct ifaddr *ifa) > > { > > > > if (refcount_release(&ifa->ifa_refcnt)) > > - epoch_call(net_epoch_preempt, &ifa->ifa_epoch_ctx, > ifa_destroy); > > + NET_EPOCH_CALL(ifa_destroy, &ifa->ifa_epoch_ctx); > > } > > > > > > @@ -3410,7 +3410,7 @@ if_freemulti(struct ifmultiaddr *ifma) > > KASSERT(ifma->ifma_refcount == 0, ("if_freemulti_epoch: refcount > %d", > > ifma->ifma_refcount)); > > > > - epoch_call(net_epoch_preempt, &ifma->ifma_epoch_ctx, > if_destroymulti); > > + NET_EPOCH_CALL(if_destroymulti, &ifma->ifma_epoch_ctx); > > } > > > > > > > > Modified: head/sys/net/if_gre.c > > > ============================================================================== > > --- head/sys/net/if_gre.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/net/if_gre.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -392,7 +392,7 @@ gre_delete_tunnel(struct gre_softc *sc) > > if ((gs = sc->gre_so) != NULL && CK_LIST_EMPTY(&gs->list)) { > > CK_LIST_REMOVE(gs, chain); > > soclose(gs->so); > > - epoch_call(net_epoch_preempt, &gs->epoch_ctx, gre_sofree); > > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > > sc->gre_so = NULL; > > } > > GRE2IFP(sc)->if_drv_flags &= ~IFF_DRV_RUNNING; > > > > Modified: head/sys/net/if_lagg.c > > > ============================================================================== > > --- head/sys/net/if_lagg.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/net/if_lagg.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -910,7 +910,7 @@ lagg_port_destroy(struct lagg_port *lp, int > rundelport > > * free port and release it's ifnet reference after a grace period > has > > * elapsed. > > */ > > - epoch_call(net_epoch_preempt, &lp->lp_epoch_ctx, > lagg_port_destroy_cb); > > + NET_EPOCH_CALL(lagg_port_destroy_cb, &lp->lp_epoch_ctx); > > /* Update lagg capabilities */ > > lagg_capabilities(sc); > > lagg_linkstate(sc); > > > > Modified: head/sys/net/if_vlan.c > > > ============================================================================== > > --- head/sys/net/if_vlan.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/net/if_vlan.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -584,7 +584,7 @@ vlan_setmulti(struct ifnet *ifp) > > while ((mc = CK_SLIST_FIRST(&sc->vlan_mc_listhead)) != NULL) { > > CK_SLIST_REMOVE_HEAD(&sc->vlan_mc_listhead, mc_entries); > > (void)if_delmulti(ifp_p, (struct sockaddr *)&mc->mc_addr); > > - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, > vlan_mc_free); > > + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); > > } > > > > /* Now program new ones. */ > > @@ -1543,7 +1543,7 @@ vlan_unconfig_locked(struct ifnet *ifp, int > departing) > > error); > > } > > CK_SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, > mc_entries); > > - epoch_call(net_epoch_preempt, &mc->mc_epoch_ctx, > vlan_mc_free); > > + NET_EPOCH_CALL(vlan_mc_free, &mc->mc_epoch_ctx); > > } > > > > vlan_setflags(ifp, 0); /* clear special flags on parent */ > > > > Modified: head/sys/netinet/in.c > > > ============================================================================== > > --- head/sys/netinet/in.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/netinet/in.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -1087,7 +1087,7 @@ in_lltable_destroy_lle(struct llentry *lle) > > { > > > > LLE_WUNLOCK(lle); > > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, > in_lltable_destroy_lle_unlocked); > > + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, > &lle->lle_epoch_ctx); > > } > > > > static struct llentry * > > @@ -1348,7 +1348,7 @@ in_lltable_alloc(struct lltable *llt, u_int flags, > con > > linkhdrsize = LLE_MAX_LINKHDR; > > if (lltable_calc_llheader(ifp, AF_INET, IF_LLADDR(ifp), > > linkhdr, &linkhdrsize, &lladdr_off) != 0) { > > - epoch_call(net_epoch_preempt, > &lle->lle_epoch_ctx, in_lltable_destroy_lle_unlocked); > > + NET_EPOCH_CALL(in_lltable_destroy_lle_unlocked, > &lle->lle_epoch_ctx); > > return (NULL); > > } > > lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, > > > > Modified: head/sys/netinet/in_pcb.c > > > ============================================================================== > > --- head/sys/netinet/in_pcb.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/netinet/in_pcb.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -269,8 +269,7 @@ in_pcblbgroup_free(struct inpcblbgroup *grp) > > { > > > > CK_LIST_REMOVE(grp, il_list); > > - epoch_call(net_epoch_preempt, &grp->il_epoch_ctx, > > - in_pcblbgroup_free_deferred); > > + NET_EPOCH_CALL(in_pcblbgroup_free_deferred, &grp->il_epoch_ctx); > > } > > > > static struct inpcblbgroup * > > @@ -1663,7 +1662,7 @@ in_pcbfree(struct inpcb *inp) > > /* mark as destruction in progress */ > > inp->inp_flags2 |= INP_FREED; > > INP_WUNLOCK(inp); > > - epoch_call(net_epoch_preempt, &inp->inp_epoch_ctx, > in_pcbfree_deferred); > > + NET_EPOCH_CALL(in_pcbfree_deferred, &inp->inp_epoch_ctx); > > } > > > > /* > > @@ -1704,7 +1703,7 @@ in_pcbdrop(struct inpcb *inp) > > CK_LIST_REMOVE(inp, inp_portlist); > > if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { > > CK_LIST_REMOVE(phd, phd_hash); > > - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, > inpcbport_free); > > + NET_EPOCH_CALL(inpcbport_free, > &phd->phd_epoch_ctx); > > } > > INP_HASH_WUNLOCK(inp->inp_pcbinfo); > > inp->inp_flags &= ~INP_INHASHLIST; > > @@ -2674,7 +2673,7 @@ in_pcbremlists(struct inpcb *inp) > > CK_LIST_REMOVE(inp, inp_portlist); > > if (CK_LIST_FIRST(&phd->phd_pcblist) == NULL) { > > CK_LIST_REMOVE(phd, phd_hash); > > - epoch_call(net_epoch_preempt, &phd->phd_epoch_ctx, > inpcbport_free); > > + NET_EPOCH_CALL(inpcbport_free, > &phd->phd_epoch_ctx); > > } > > INP_HASH_WUNLOCK(pcbinfo); > > inp->inp_flags &= ~INP_INHASHLIST; > > > > Modified: head/sys/netinet/ip_gre.c > > > ============================================================================== > > --- head/sys/netinet/ip_gre.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/netinet/ip_gre.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -235,7 +235,7 @@ in_gre_udp_input(struct mbuf *m, int off, struct > inpcb > > * If socket was closed before we have entered NET_EPOCH section, > > * INP_FREED flag should be set. Otherwise it should be safe to > > * make access to ctx data, because gre_so will be freed by > > - * gre_sofree() via epoch_call(). > > + * gre_sofree() via NET_EPOCH_CALL(). > > */ > > if (__predict_false(inp->inp_flags2 & INP_FREED)) { > > NET_EPOCH_EXIT(et); > > @@ -284,8 +284,7 @@ in_gre_setup_socket(struct gre_softc *sc) > > if (CK_LIST_EMPTY(&gs->list)) { > > CK_LIST_REMOVE(gs, chain); > > soclose(gs->so); > > - epoch_call(net_epoch_preempt, > &gs->epoch_ctx, > > - gre_sofree); > > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > > } > > gs = sc->gre_so = NULL; > > } > > > > Modified: head/sys/netinet/tcp_ratelimit.c > > > ============================================================================== > > --- head/sys/netinet/tcp_ratelimit.c Wed Jan 15 05:48:36 2020 > (r356754) > > +++ head/sys/netinet/tcp_ratelimit.c Wed Jan 15 06:05:20 2020 > (r356755) > > @@ -286,7 +286,7 @@ rs_defer_destroy(struct tcp_rate_set *rs) > > > > /* Set flag to only defer once. */ > > rs->rs_flags |= RS_FUNERAL_SCHD; > > - epoch_call(net_epoch_preempt, &rs->rs_epoch_ctx, rs_destroy); > > + NET_EPOCH_CALL(rs_destroy, &rs->rs_epoch_ctx); > > } > > > > #ifdef INET > > > > Modified: head/sys/netinet6/in6.c > > > ============================================================================== > > --- head/sys/netinet6/in6.c Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/netinet6/in6.c Wed Jan 15 06:05:20 2020 (r356755) > > @@ -2061,7 +2061,7 @@ in6_lltable_destroy_lle(struct llentry *lle) > > { > > > > LLE_WUNLOCK(lle); > > - epoch_call(net_epoch_preempt, &lle->lle_epoch_ctx, > in6_lltable_destroy_lle_unlocked); > > + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, > &lle->lle_epoch_ctx); > > } > > > > static struct llentry * > > @@ -2282,7 +2282,7 @@ in6_lltable_alloc(struct lltable *llt, u_int flags, > > linkhdrsize = LLE_MAX_LINKHDR; > > if (lltable_calc_llheader(ifp, AF_INET6, IF_LLADDR(ifp), > > linkhdr, &linkhdrsize, &lladdr_off) != 0) { > > - epoch_call(net_epoch_preempt, > &lle->lle_epoch_ctx, in6_lltable_destroy_lle_unlocked); > > + NET_EPOCH_CALL(in6_lltable_destroy_lle_unlocked, > &lle->lle_epoch_ctx); > > return (NULL); > > } > > lltable_set_entry_addr(ifp, lle, linkhdr, linkhdrsize, > > > > Modified: head/sys/netinet6/ip6_gre.c > > > ============================================================================== > > --- head/sys/netinet6/ip6_gre.c Wed Jan 15 05:48:36 2020 > (r356754) > > +++ head/sys/netinet6/ip6_gre.c Wed Jan 15 06:05:20 2020 > (r356755) > > @@ -228,7 +228,7 @@ in6_gre_udp_input(struct mbuf *m, int off, struct > inpc > > * If socket was closed before we have entered NET_EPOCH section, > > * INP_FREED flag should be set. Otherwise it should be safe to > > * make access to ctx data, because gre_so will be freed by > > - * gre_sofree() via epoch_call(). > > + * gre_sofree() via NET_EPOCH_CALL(). > > */ > > if (__predict_false(inp->inp_flags2 & INP_FREED)) { > > NET_EPOCH_EXIT(et); > > @@ -280,8 +280,7 @@ in6_gre_setup_socket(struct gre_softc *sc) > > if (CK_LIST_EMPTY(&gs->list)) { > > CK_LIST_REMOVE(gs, chain); > > soclose(gs->so); > > - epoch_call(net_epoch_preempt, > &gs->epoch_ctx, > > - gre_sofree); > > + NET_EPOCH_CALL(gre_sofree, &gs->epoch_ctx); > > } > > gs = sc->gre_so = NULL; > > } > > > > Modified: head/sys/netpfil/ipfw/nat64/nat64lsn.c > > > ============================================================================== > > --- head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 05:48:36 2020 > (r356754) > > +++ head/sys/netpfil/ipfw/nat64/nat64lsn.c Wed Jan 15 06:05:20 2020 > (r356755) > > @@ -75,7 +75,7 @@ MALLOC_DEFINE(M_NAT64LSN, "NAT64LSN", "NAT64LSN"); > > #define NAT64LSN_EPOCH_ENTER(et) NET_EPOCH_ENTER(et) > > #define NAT64LSN_EPOCH_EXIT(et) NET_EPOCH_EXIT(et) > > #define NAT64LSN_EPOCH_ASSERT() NET_EPOCH_ASSERT() > > -#define NAT64LSN_EPOCH_CALL(c, f) epoch_call(net_epoch_preempt, > (c), (f)) > > +#define NAT64LSN_EPOCH_CALL(c, f) NET_EPOCH_CALL((f), (c)) > > > > static uma_zone_t nat64lsn_host_zone; > > static uma_zone_t nat64lsn_pgchunk_zone; > > > > Modified: head/sys/sys/epoch.h > > > ============================================================================== > > --- head/sys/sys/epoch.h Wed Jan 15 05:48:36 2020 (r356754) > > +++ head/sys/sys/epoch.h Wed Jan 15 06:05:20 2020 (r356755) > > @@ -101,6 +101,7 @@ extern epoch_t net_epoch_preempt; > > #define NET_EPOCH_ENTER(et) > epoch_enter_preempt(net_epoch_preempt, &(et)) > > #define NET_EPOCH_EXIT(et) > epoch_exit_preempt(net_epoch_preempt, &(et)) > > #define NET_EPOCH_WAIT() > epoch_wait_preempt(net_epoch_preempt) > > +#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (c), > (f)) > > #define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) > > > > #endif /* _KERNEL */ > > > From owner-svn-src-all@freebsd.org Wed Jan 15 21:05:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF8071FD70D; Wed, 15 Jan 2020 21:05:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yfxM5c5Tz41b2; Wed, 15 Jan 2020 21:05:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BBB5CCAD9; Wed, 15 Jan 2020 21:05:43 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00FL5hBR056445; Wed, 15 Jan 2020 21:05:43 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00FL5h3f056444; Wed, 15 Jan 2020 21:05:43 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001152105.00FL5h3f056444@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Wed, 15 Jan 2020 21:05:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356768 - stable/12/tests/sys/capsicum X-SVN-Group: stable-12 X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: stable/12/tests/sys/capsicum X-SVN-Commit-Revision: 356768 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 21:05:43 -0000 Author: emaste Date: Wed Jan 15 21:05:43 2020 New Revision: 356768 URL: https://svnweb.freebsd.org/changeset/base/356768 Log: MFC r345681: Skip test if feature security_capabilities is not available PR: 236863 Sponsored by: The FreeBSD Foundation Modified: stable/12/tests/sys/capsicum/Makefile stable/12/tests/sys/capsicum/ioctls_test.c Directory Properties: stable/12/ (props changed) Modified: stable/12/tests/sys/capsicum/Makefile ============================================================================== --- stable/12/tests/sys/capsicum/Makefile Wed Jan 15 20:25:52 2020 (r356767) +++ stable/12/tests/sys/capsicum/Makefile Wed Jan 15 21:05:43 2020 (r356768) @@ -5,7 +5,7 @@ TESTSDIR= ${TESTSBASE}/sys/capsicum ATF_TESTS_C+= bindat_connectat ATF_TESTS_C+= ioctls_test -CFLAGS.bindat_connectat.c+= -I${SRCTOP}/tests +CFLAGS+= -I${SRCTOP}/tests WARNS?= 6 Modified: stable/12/tests/sys/capsicum/ioctls_test.c ============================================================================== --- stable/12/tests/sys/capsicum/ioctls_test.c Wed Jan 15 20:25:52 2020 (r356767) +++ stable/12/tests/sys/capsicum/ioctls_test.c Wed Jan 15 21:05:43 2020 (r356768) @@ -38,6 +38,8 @@ __FBSDID("$FreeBSD$"); #include +#include "freebsd_test_suite/macros.h" + /* * A variant of ATF_REQUIRE that is suitable for use in child * processes. This only works if the parent process is tripped up by @@ -73,6 +75,8 @@ ATF_TC_BODY(cap_ioctls__listen_copy, tc) pid_t pid; char dummy; int s[2], status; + + ATF_REQUIRE_FEATURE("security_capabilities"); s[0] = socket(AF_INET, SOCK_STREAM, 0); ATF_REQUIRE(s[0] > 0); From owner-svn-src-all@freebsd.org Wed Jan 15 21:10:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F3D841FD95B; Wed, 15 Jan 2020 21:10:09 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yg2S6jDNz427J; Wed, 15 Jan 2020 21:10:08 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00FL9t4d014448 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 Jan 2020 21:09:59 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: emaste@freebsd.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00FL9r7E022655 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 16 Jan 2020 04:09:53 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Warner Losh , Nathan Whitehorn References: <202001150747.00F7lqiG071097@repo.freebsd.org> Cc: Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" , Ed Maste From: Eugene Grosbein Message-ID: Date: Thu, 16 Jan 2020 04:09:47 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * -0.0 SPF_PASS SPF: sender matches SPF record * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47yg2S6jDNz427J X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-2.32 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.97)[-0.969,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_SEVEN(0.00)[8]; IP_SCORE(-1.75)[ip: (-4.77), ipnet: 2a01:4f8::/29(-2.47), asn: 24940(-1.51), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; SUSPICIOUS_RECIPS(1.50)[]; FREEMAIL_CC(0.00)[gmail.com] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 21:10:10 -0000 16.01.2020 3:32, Warner Losh wrote: > unless your work load hits the fairly narrow range where ZFS isn't so good. > > [*] Netflix uses UFS because of sendfile efficiencies There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests that need lots of memory and should not fight with ZFS for RAM etc. From owner-svn-src-all@freebsd.org Wed Jan 15 21:41:29 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3A54E1FE45A; Wed, 15 Jan 2020 21:41:29 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ygkc268Zz44F8; Wed, 15 Jan 2020 21:41:28 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io1-f42.google.com with SMTP id d15so19495792iog.3; Wed, 15 Jan 2020 13:41:28 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JYc2kE/hT+gqJbSULIgOmbfeQGl0+sv/14izzq1b0Xo=; b=ObxhMclSv2kHo55ommTAKZDe49MvrYoNpD7j3ynvWnxHFYDemvOF5v5g9WfZN3gg1+ EvN0rMVELrtwXAcXZn404ArnBFt9o4WfFNw4/018q8x+KRapTkxzJGZ6uy0vGFtaNQ1C 82x5xqnJWn+jOQ+NH9Zhe+2HR+fQeRFK2qLSGEJGR6kf6lZvWYKlfbwyU5HrTo7ahOGB H0Pb0UcZDqdWyx/W27DMwX8/i2hT6OKBihuRvTHUENcQ8K7tS8eL5mfNb5bBStFEcyuy Oyx94PbXMbY6tAXMR6+eW4aeimLE6mcyLfG0dFQQLOHqo7advauSed4iG2HhMECWuHQV GpSw== X-Gm-Message-State: APjAAAWxwPK0Z8sGEYJAbS07ZGQZYyb9/monetk2fMN8OJSGdeQjc7dm hnH/LUhQH0RYUfxiDqWWW9zccNl4zF9xdZVftUyw5A== X-Google-Smtp-Source: APXvYqwBB0aXUM/BLsF8xX5ormegBLagGtwCW6mlRE4qLVBCJhKBXeeFD+YuE9xoq0c4Ez+HOdICnWhh13DdJUUfLX8= X-Received: by 2002:a6b:3ed6:: with SMTP id l205mr1378537ioa.100.1579124487068; Wed, 15 Jan 2020 13:41:27 -0800 (PST) MIME-Version: 1.0 References: <202001150747.00F7lqiG071097@repo.freebsd.org> In-Reply-To: From: Ed Maste Date: Wed, 15 Jan 2020 16:41:14 -0500 Message-ID: Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Eugene Grosbein Cc: Warner Losh , Nathan Whitehorn , Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47ygkc268Zz44F8 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.42 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-2.62 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[42.166.85.209.list.dnswl.org : 127.0.5.0]; RCPT_COUNT_SEVEN(0.00)[8]; NEURAL_HAM_MEDIUM(-1.00)[-0.996,0]; IP_SCORE(-2.12)[ip: (-5.64), ipnet: 209.85.128.0/17(-3.08), asn: 15169(-1.83), country: US(-0.05)]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[42.166.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; SUSPICIOUS_RECIPS(1.50)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 21:41:29 -0000 On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: > > There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests > or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests > that need lots of memory and should not fight with ZFS for RAM etc. That may well be the case, but our defaults should represent the configuration that's desirable to the largest set of users, and IMO that's ZFS in most cases today. It might be that we should default to UFS on i386 and ZFS on amd64? From owner-svn-src-all@freebsd.org Wed Jan 15 22:02:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0BC5A1FEC66; Wed, 15 Jan 2020 22:02:39 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yhC26Wk6z45PY; Wed, 15 Jan 2020 22:02:38 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.3] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id BC61D1A4A4; Wed, 15 Jan 2020 22:02:37 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Ed Maste , Eugene Grosbein Cc: Warner Losh , Nathan Whitehorn , Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" References: <202001150747.00F7lqiG071097@repo.freebsd.org> From: Pedro Giffuni Organization: FreeBSD Message-ID: <6925a470-ccbe-1446-e55e-f0aa8b6e6387@FreeBSD.org> Date: Wed, 15 Jan 2020 17:02:38 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 22:02:39 -0000 On 15/01/2020 16:41, Ed Maste wrote: > On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: >> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests >> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests >> that need lots of memory and should not fight with ZFS for RAM etc. > That may well be the case, but our defaults should represent the > configuration that's desirable to the largest set of users, and IMO > that's ZFS in most cases today. There is also the policy of not making copyleft code mandatory (technically, CDDL is weak copyleft). If ZFS is disabled in the build, the installer should gracefully disable it too. > It might be that we should default to UFS on i386 and ZFS on amd64? FWIW, I still use ZFS for root, because of the older MBR and the need to multiboot. Pedro. From owner-svn-src-all@freebsd.org Wed Jan 15 22:38:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 31C561FFC3B; Wed, 15 Jan 2020 22:38:11 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yj023Q4tz48D4; Wed, 15 Jan 2020 22:38:10 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 00FMc63k094848 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 15 Jan 2020 14:38:07 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 00FMc5PR094847; Wed, 15 Jan 2020 14:38:05 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Wed, 15 Jan 2020 14:38:05 -0800 From: Gleb Smirnoff To: Jeff Roberson Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys Message-ID: <20200115223805.GT39529@FreeBSD.org> References: <202001150605.00F65Kc8011526@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47yj023Q4tz48D4 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-0.39 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_SPAM_MEDIUM(0.51)[0.511,0]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US]; NEURAL_HAM_LONG(-0.90)[-0.899,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Wed, 15 Jan 2020 22:38:11 -0000 On Wed, Jan 15, 2020 at 09:44:53AM -1000, Jeff Roberson wrote: J> On Wed, 15 Jan 2020, Gleb Smirnoff wrote: J> J> > Author: glebius J> > Date: Wed Jan 15 06:05:20 2020 J> > New Revision: 356755 J> > URL: https://svnweb.freebsd.org/changeset/base/356755 J> > J> > Log: J> > Introduce NET_EPOCH_CALL() macro and use it everywhere where we free J> > data based on the network epoch. The macro reverses the argument J> > order of epoch_call(9) - first function, then its argument. NFC J> J> Is there some practical impact of changing the argument order or does it J> just seem more natural to you? It is just more natural. I'm suggesting to change prototype of epoch_call() to the same order as well. -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Thu Jan 16 00:26:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2300E2228B1; Thu, 16 Jan 2020 00:26:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ylPV09DQz4DKY; Thu, 16 Jan 2020 00:26:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 00CDCEF90; Thu, 16 Jan 2020 00:26:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G0Qrtn078849; Thu, 16 Jan 2020 00:26:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G0Qrv1078847; Thu, 16 Jan 2020 00:26:53 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001160026.00G0Qrv1078847@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 16 Jan 2020 00:26:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356769 - stable/12/lib/libc/locale X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/lib/libc/locale X-SVN-Commit-Revision: 356769 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 00:26:54 -0000 Author: markj Date: Thu Jan 16 00:26:53 2020 New Revision: 356769 URL: https://svnweb.freebsd.org/changeset/base/356769 Log: MFC r356569: libc: Fix a few bugs in the xlocale collation code. PR: 243195 Modified: stable/12/lib/libc/locale/collate.c stable/12/lib/libc/locale/rune.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/locale/collate.c ============================================================================== --- stable/12/lib/libc/locale/collate.c Wed Jan 15 21:05:43 2020 (r356768) +++ stable/12/lib/libc/locale/collate.c Thu Jan 16 00:26:53 2020 (r356769) @@ -109,7 +109,7 @@ __collate_load_tables(const char *encoding) return (__collate_load_tables_l(encoding, &__xlocale_global_collate)); } -int +static int __collate_load_tables_l(const char *encoding, struct xlocale_collate *table) { int i, chains, z; @@ -147,7 +147,7 @@ __collate_load_tables_l(const char *encoding, struct x } map = mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0); (void) _close(fd); - if ((TMP = map) == NULL) { + if ((TMP = map) == MAP_FAILED) { return (_LDP_ERROR); } @@ -181,6 +181,11 @@ __collate_load_tables_l(const char *encoding, struct x return (_LDP_ERROR); } + if (table->map && (table->maplen > 0)) { + (void) munmap(table->map, table->maplen); + } + table->map = map; + table->maplen = sbuf.st_size; table->info = info; table->char_pri_table = (void *)TMP; TMP += sizeof (collate_char_t) * (UCHAR_MAX + 1); Modified: stable/12/lib/libc/locale/rune.c ============================================================================== --- stable/12/lib/libc/locale/rune.c Wed Jan 15 21:05:43 2020 (r356768) +++ stable/12/lib/libc/locale/rune.c Thu Jan 16 00:26:53 2020 (r356769) @@ -94,7 +94,7 @@ _Read_RuneMagi(const char *fname) fdata = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0); (void) _close(fd); - if (fdata == NULL) { + if (fdata == MAP_FAILED) { errno = EINVAL; return (NULL); } From owner-svn-src-all@freebsd.org Thu Jan 16 01:13:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1B74F223A6A; Thu, 16 Jan 2020 01:13:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ymRJ6xfhz4GDV; Thu, 16 Jan 2020 01:13:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E991FF8D9; Thu, 16 Jan 2020 01:13:32 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G1DW8Y008518; Thu, 16 Jan 2020 01:13:32 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G1DWMU008516; Thu, 16 Jan 2020 01:13:32 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001160113.00G1DWMU008516@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 16 Jan 2020 01:13:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356770 - in stable: 11/release 12/release X-SVN-Group: stable-11 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356770 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 01:13:33 -0000 Author: gjb Date: Thu Jan 16 01:13:32 2020 New Revision: 356770 URL: https://svnweb.freebsd.org/changeset/base/356770 Log: MFC r356685, r356686: r356685: Ensure the TYPE, BRANCH, and REVISION variables are set in cloudware targets when OSRELEASE is overridden. [1] r356686: Fix a typo. PR: 243287 [1] Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/11/release/Makefile stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/release/Makefile stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Modified: stable/11/release/Makefile ============================================================================== --- stable/11/release/Makefile Thu Jan 16 00:26:53 2020 (r356769) +++ stable/11/release/Makefile Thu Jan 16 01:13:32 2020 (r356770) @@ -54,7 +54,7 @@ TARGET_ARCH= ${TARGET} IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} DISTDIR= dist -# Define OSRELEASE by using newvars.sh +# Define OSRELEASE by using newvers.sh .if !defined(OSRELEASE) || empty(OSRELEASE) .for _V in TYPE BRANCH REVISION ${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} Modified: stable/11/release/Makefile.vm ============================================================================== --- stable/11/release/Makefile.vm Thu Jan 16 00:26:53 2020 (r356769) +++ stable/11/release/Makefile.vm Thu Jan 16 01:13:32 2020 (r356770) @@ -39,6 +39,12 @@ VAGRANT-VMWARE_FORMAT= vmdk VAGRANT-VMWARE_DESC= Vagrant Image for VMWare VAGRANT-VMWARE_DISK= ${OSRELEASE}.vmware.${VAGRANT_FORMAT} +.for _V in TYPE BRANCH REVISION +. if !defined(${_V}) || empty(${_V}) +${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} +. endif +.endfor + emulator-portinstall: .if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ( ${TARGET_ARCH} != "i386" ) || ( ${MACHINE_ARCH} != "amd64" ) From owner-svn-src-all@freebsd.org Thu Jan 16 01:13:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9840E223A74; Thu, 16 Jan 2020 01:13:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ymRK3YTLz4GDW; Thu, 16 Jan 2020 01:13:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7385DF8DA; Thu, 16 Jan 2020 01:13:33 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G1DXKx008525; Thu, 16 Jan 2020 01:13:33 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G1DXRA008524; Thu, 16 Jan 2020 01:13:33 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001160113.00G1DXRA008524@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 16 Jan 2020 01:13:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356770 - in stable: 11/release 12/release X-SVN-Group: stable-12 X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: in stable: 11/release 12/release X-SVN-Commit-Revision: 356770 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 01:13:33 -0000 Author: gjb Date: Thu Jan 16 01:13:32 2020 New Revision: 356770 URL: https://svnweb.freebsd.org/changeset/base/356770 Log: MFC r356685, r356686: r356685: Ensure the TYPE, BRANCH, and REVISION variables are set in cloudware targets when OSRELEASE is overridden. [1] r356686: Fix a typo. PR: 243287 [1] Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: stable/12/release/Makefile stable/12/release/Makefile.vm Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/release/Makefile stable/11/release/Makefile.vm Directory Properties: stable/11/ (props changed) Modified: stable/12/release/Makefile ============================================================================== --- stable/12/release/Makefile Thu Jan 16 00:26:53 2020 (r356769) +++ stable/12/release/Makefile Thu Jan 16 01:13:32 2020 (r356770) @@ -54,7 +54,7 @@ TARGET_ARCH= ${TARGET} IMAKE= ${MAKE} TARGET_ARCH=${TARGET_ARCH} TARGET=${TARGET} DISTDIR= dist -# Define OSRELEASE by using newvars.sh +# Define OSRELEASE by using newvers.sh .if !defined(OSRELEASE) || empty(OSRELEASE) .for _V in TYPE BRANCH REVISION ${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} Modified: stable/12/release/Makefile.vm ============================================================================== --- stable/12/release/Makefile.vm Thu Jan 16 00:26:53 2020 (r356769) +++ stable/12/release/Makefile.vm Thu Jan 16 01:13:32 2020 (r356770) @@ -39,6 +39,12 @@ VAGRANT-VMWARE_FORMAT= vmdk VAGRANT-VMWARE_DESC= Vagrant Image for VMWare VAGRANT-VMWARE_DISK= ${OSRELEASE}.vmware.${VAGRANT_FORMAT} +.for _V in TYPE BRANCH REVISION +. if !defined(${_V}) || empty(${_V}) +${_V}!= eval $$(awk '/^${_V}=/{print}' ${.CURDIR}/../sys/conf/newvers.sh); echo $$${_V} +. endif +.endfor + emulator-portinstall: .if ${TARGET_ARCH} != ${MACHINE_ARCH} .if ( ${TARGET_ARCH} != "i386" ) || ( ${MACHINE_ARCH} != "amd64" ) From owner-svn-src-all@freebsd.org Thu Jan 16 03:11:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A5567226F35; Thu, 16 Jan 2020 03:11:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yq3L4063z4MQb; Thu, 16 Jan 2020 03:11:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8437018DE8; Thu, 16 Jan 2020 03:11:26 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3BQUZ077854; Thu, 16 Jan 2020 03:11:26 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3BQKV077852; Thu, 16 Jan 2020 03:11:26 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160311.00G3BQKV077852@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:11:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356771 - in stable: 11/stand/fdt 11/stand/uboot/fdt 12/stand/fdt 12/stand/uboot/fdt X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/fdt 11/stand/uboot/fdt 12/stand/fdt 12/stand/uboot/fdt X-SVN-Commit-Revision: 356771 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:11:26 -0000 Author: kevans Date: Thu Jan 16 03:11:25 2020 New Revision: 356771 URL: https://svnweb.freebsd.org/changeset/base/356771 Log: MFC r356538: stand/fdt: Scale blob size better as overlays apply Currently, our overlay blob will grow to include the size of the complete overlay blob we're applying. This doesn't scale very well with a lot of overlays- they tend to include a lot of overhead, and they will generally only add a fraction of their total size to the blob they're being applied to. To combat this, pack the blob as we apply new overlays and keep track of how many overlays we've applied. Only ubldr has any fixups to be applied after overlays, so we only need to re-pad the blob in ubldr. Presumably the allocation won't fail since we just did a lot worse in trying to apply overlays and succeeded. I have no intention of removing the padding in make_dtb.sh. There might be an argument to be had over whether it should be configurable, since ubldr *is* the only loader that actually has fixups to be applied and we can do this at runtime, but I'm not too concerned about this. This diff has been sitting in Phabricator for a year and a half, but I've decided to flush it as it does make sure that we're scaling the blob appropriately and leave room at the end for fixups in case of some freak circumstance where applying overlays leaves us with a blob of insufficient size. Modified: stable/11/stand/fdt/fdt_loader_cmd.c stable/11/stand/fdt/fdt_platform.h stable/11/stand/uboot/fdt/uboot_fdt.c Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/stand/fdt/fdt_loader_cmd.c stable/12/stand/fdt/fdt_platform.h stable/12/stand/uboot/fdt/uboot_fdt.c Directory Properties: stable/12/ (props changed) Modified: stable/11/stand/fdt/fdt_loader_cmd.c ============================================================================== --- stable/11/stand/fdt/fdt_loader_cmd.c Thu Jan 16 01:13:32 2020 (r356770) +++ stable/11/stand/fdt/fdt_loader_cmd.c Thu Jan 16 03:11:25 2020 (r356771) @@ -425,7 +425,10 @@ fdt_check_overlay_compatible(void *base_fdt, void *ove return (1); } -void +/* + * Returns the number of overlays successfully applied + */ +int fdt_apply_overlays() { struct preloaded_file *fp; @@ -434,10 +437,10 @@ fdt_apply_overlays() void *current_fdtp; void *next_fdtp; void *overlay; - int rv; + int overlays_applied, rv; if ((fdtp == NULL) || (fdtp_size == 0)) - return; + return (0); max_overlay_size = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { @@ -447,15 +450,16 @@ fdt_apply_overlays() /* Nothing to apply */ if (max_overlay_size == 0) - return; + return (0); overlay = malloc(max_overlay_size); if (overlay == NULL) { printf("failed to allocate memory for DTB blob with overlays\n"); - return; + return (0); } current_fdtp = fdtp; current_fdtp_size = fdtp_size; + overlays_applied = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { COPYOUT(fp->f_addr, overlay, fp->f_size); /* Check compatible first to avoid unnecessary allocation */ @@ -488,7 +492,9 @@ fdt_apply_overlays() if (current_fdtp != fdtp) free(current_fdtp); current_fdtp = next_fdtp; - current_fdtp_size = next_fdtp_size; + fdt_pack(current_fdtp); + current_fdtp_size = fdt_totalsize(current_fdtp); + overlays_applied++; } else { /* * Assume here that the base we tried to apply on is @@ -507,6 +513,26 @@ fdt_apply_overlays() fdtp_size = current_fdtp_size; } free(overlay); + return (overlays_applied); +} + +int +fdt_pad_dtb(size_t padding) +{ + void *padded_fdtp; + size_t padded_fdtp_size; + + padded_fdtp_size = fdtp_size + padding; + padded_fdtp = malloc(padded_fdtp_size); + if (padded_fdtp == NULL) + return (1); + if (fdt_open_into(fdtp, padded_fdtp, padded_fdtp_size) != 0) { + free(padded_fdtp); + return (1); + } + fdtp = padded_fdtp; + fdtp_size = padded_fdtp_size; + return (0); } int Modified: stable/11/stand/fdt/fdt_platform.h ============================================================================== --- stable/11/stand/fdt/fdt_platform.h Thu Jan 16 01:13:32 2020 (r356770) +++ stable/11/stand/fdt/fdt_platform.h Thu Jan 16 03:11:25 2020 (r356771) @@ -43,7 +43,8 @@ void fdt_fixup_cpubusfreqs(unsigned long, unsigned lon void fdt_fixup_ethernet(const char *, char *, int); void fdt_fixup_memory(struct fdt_mem_region *, size_t); void fdt_fixup_stdout(const char *); -void fdt_apply_overlays(void); +int fdt_apply_overlays(void); +int fdt_pad_dtb(size_t); int fdt_load_dtb_addr(struct fdt_header *); int fdt_load_dtb_file(const char *); void fdt_load_dtb_overlays(const char *); Modified: stable/11/stand/uboot/fdt/uboot_fdt.c ============================================================================== --- stable/11/stand/uboot/fdt/uboot_fdt.c Thu Jan 16 01:13:32 2020 (r356770) +++ stable/11/stand/uboot/fdt/uboot_fdt.c Thu Jan 16 03:11:25 2020 (r356771) @@ -63,6 +63,8 @@ fdt_platform_load_from_ubenv(const char *var) return (1); } +#define FDT_DTB_PADSZ 1024 + int fdt_platform_load_dtb(void) { @@ -127,7 +129,8 @@ fdt_platform_fixups(void) ethstr = NULL; /* Apply overlays before anything else */ - fdt_apply_overlays(); + if (fdt_apply_overlays() > 0) + fdt_pad_dtb(FDT_DTB_PADSZ); /* Acquire sys_info */ si = ub_get_sys_info(); From owner-svn-src-all@freebsd.org Thu Jan 16 03:11:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5DD61226F40; Thu, 16 Jan 2020 03:11:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yq3M1vnWz4MQh; Thu, 16 Jan 2020 03:11:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B0ED18DEC; Thu, 16 Jan 2020 03:11:27 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3BRNx077862; Thu, 16 Jan 2020 03:11:27 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3BQwI077860; Thu, 16 Jan 2020 03:11:26 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160311.00G3BQwI077860@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:11:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356771 - in stable: 11/stand/fdt 11/stand/uboot/fdt 12/stand/fdt 12/stand/uboot/fdt X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/stand/fdt 11/stand/uboot/fdt 12/stand/fdt 12/stand/uboot/fdt X-SVN-Commit-Revision: 356771 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:11:27 -0000 Author: kevans Date: Thu Jan 16 03:11:25 2020 New Revision: 356771 URL: https://svnweb.freebsd.org/changeset/base/356771 Log: MFC r356538: stand/fdt: Scale blob size better as overlays apply Currently, our overlay blob will grow to include the size of the complete overlay blob we're applying. This doesn't scale very well with a lot of overlays- they tend to include a lot of overhead, and they will generally only add a fraction of their total size to the blob they're being applied to. To combat this, pack the blob as we apply new overlays and keep track of how many overlays we've applied. Only ubldr has any fixups to be applied after overlays, so we only need to re-pad the blob in ubldr. Presumably the allocation won't fail since we just did a lot worse in trying to apply overlays and succeeded. I have no intention of removing the padding in make_dtb.sh. There might be an argument to be had over whether it should be configurable, since ubldr *is* the only loader that actually has fixups to be applied and we can do this at runtime, but I'm not too concerned about this. This diff has been sitting in Phabricator for a year and a half, but I've decided to flush it as it does make sure that we're scaling the blob appropriately and leave room at the end for fixups in case of some freak circumstance where applying overlays leaves us with a blob of insufficient size. Modified: stable/12/stand/fdt/fdt_loader_cmd.c stable/12/stand/fdt/fdt_platform.h stable/12/stand/uboot/fdt/uboot_fdt.c Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/stand/fdt/fdt_loader_cmd.c stable/11/stand/fdt/fdt_platform.h stable/11/stand/uboot/fdt/uboot_fdt.c Directory Properties: stable/11/ (props changed) Modified: stable/12/stand/fdt/fdt_loader_cmd.c ============================================================================== --- stable/12/stand/fdt/fdt_loader_cmd.c Thu Jan 16 01:13:32 2020 (r356770) +++ stable/12/stand/fdt/fdt_loader_cmd.c Thu Jan 16 03:11:25 2020 (r356771) @@ -427,7 +427,10 @@ fdt_check_overlay_compatible(void *base_fdt, void *ove return (1); } -void +/* + * Returns the number of overlays successfully applied + */ +int fdt_apply_overlays() { struct preloaded_file *fp; @@ -436,13 +439,13 @@ fdt_apply_overlays() void *current_fdtp; void *next_fdtp; void *overlay; - int rv; + int overlays_applied, rv; if ((fdtp == NULL) || (fdtp_size == 0)) - return; + return (0); if (fdt_overlays_applied) - return; + return (0); max_overlay_size = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { @@ -452,15 +455,16 @@ fdt_apply_overlays() /* Nothing to apply */ if (max_overlay_size == 0) - return; + return (0); overlay = malloc(max_overlay_size); if (overlay == NULL) { printf("failed to allocate memory for DTB blob with overlays\n"); - return; + return (0); } current_fdtp = fdtp; current_fdtp_size = fdtp_size; + overlays_applied = 0; for (fp = file_findfile(NULL, "dtbo"); fp != NULL; fp = fp->f_next) { COPYOUT(fp->f_addr, overlay, fp->f_size); /* Check compatible first to avoid unnecessary allocation */ @@ -493,7 +497,9 @@ fdt_apply_overlays() if (current_fdtp != fdtp) free(current_fdtp); current_fdtp = next_fdtp; - current_fdtp_size = next_fdtp_size; + fdt_pack(current_fdtp); + current_fdtp_size = fdt_totalsize(current_fdtp); + overlays_applied++; } else { /* * Assume here that the base we tried to apply on is @@ -513,6 +519,26 @@ fdt_apply_overlays() } free(overlay); fdt_overlays_applied = 1; + return (overlays_applied); +} + +int +fdt_pad_dtb(size_t padding) +{ + void *padded_fdtp; + size_t padded_fdtp_size; + + padded_fdtp_size = fdtp_size + padding; + padded_fdtp = malloc(padded_fdtp_size); + if (padded_fdtp == NULL) + return (1); + if (fdt_open_into(fdtp, padded_fdtp, padded_fdtp_size) != 0) { + free(padded_fdtp); + return (1); + } + fdtp = padded_fdtp; + fdtp_size = padded_fdtp_size; + return (0); } int Modified: stable/12/stand/fdt/fdt_platform.h ============================================================================== --- stable/12/stand/fdt/fdt_platform.h Thu Jan 16 01:13:32 2020 (r356770) +++ stable/12/stand/fdt/fdt_platform.h Thu Jan 16 03:11:25 2020 (r356771) @@ -43,7 +43,8 @@ void fdt_fixup_cpubusfreqs(unsigned long, unsigned lon void fdt_fixup_ethernet(const char *, char *, int); void fdt_fixup_memory(struct fdt_mem_region *, size_t); void fdt_fixup_stdout(const char *); -void fdt_apply_overlays(void); +int fdt_apply_overlays(void); +int fdt_pad_dtb(size_t); int fdt_load_dtb_addr(struct fdt_header *); int fdt_load_dtb_file(const char *); void fdt_load_dtb_overlays(const char *); Modified: stable/12/stand/uboot/fdt/uboot_fdt.c ============================================================================== --- stable/12/stand/uboot/fdt/uboot_fdt.c Thu Jan 16 01:13:32 2020 (r356770) +++ stable/12/stand/uboot/fdt/uboot_fdt.c Thu Jan 16 03:11:25 2020 (r356771) @@ -63,6 +63,8 @@ fdt_platform_load_from_ubenv(const char *var) return (1); } +#define FDT_DTB_PADSZ 1024 + int fdt_platform_load_dtb(void) { @@ -127,7 +129,8 @@ fdt_platform_fixups(void) ethstr = NULL; /* Apply overlays before anything else */ - fdt_apply_overlays(); + if (fdt_apply_overlays() > 0) + fdt_pad_dtb(FDT_DTB_PADSZ); /* Acquire sys_info */ si = ub_get_sys_info(); From owner-svn-src-all@freebsd.org Thu Jan 16 03:14:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 03094227091; Thu, 16 Jan 2020 03:14:02 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yq6K6Pgnz4MrP; Thu, 16 Jan 2020 03:14:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BED4018F5E; Thu, 16 Jan 2020 03:14:01 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3E1Ag080505; Thu, 16 Jan 2020 03:14:01 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3E1LF080504; Thu, 16 Jan 2020 03:14:01 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160314.00G3E1LF080504@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:14:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356772 - stable/12/sys/dev/extres/regulator X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: stable/12/sys/dev/extres/regulator X-SVN-Commit-Revision: 356772 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:14:02 -0000 Author: kevans Date: Thu Jan 16 03:14:01 2020 New Revision: 356772 URL: https://svnweb.freebsd.org/changeset/base/356772 Log: MFC r356649: regulator: small enhancements to regulator_shutdown Highlights: - Exit early if we're not disabling unused regulators; there's no need to take the regulator topology lock and re-evaluate this every iteration, as it's not going to change. - Don't emit a notice that we're shutting down a regulator if it's not enabled, to reduce noise. - Mention the outcome of the shutdown, to aide debugging and easily let developer/user collect list of regulators we actually shutdown to determine problematic one. Modified: stable/12/sys/dev/extres/regulator/regulator.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/extres/regulator/regulator.c ============================================================================== --- stable/12/sys/dev/extres/regulator/regulator.c Thu Jan 16 03:11:25 2020 (r356771) +++ stable/12/sys/dev/extres/regulator/regulator.c Thu Jan 16 03:14:01 2020 (r356772) @@ -191,16 +191,36 @@ regulator_shutdown(void *dummy) int status, ret; int disable = 1; - REG_TOPO_SLOCK(); TUNABLE_INT_FETCH("hw.regulator.disable_unused", &disable); + if (!disable) + return; + REG_TOPO_SLOCK(); + + if (bootverbose) + printf("regulator: shutting down unused regulators\n"); TAILQ_FOREACH(entry, ®node_list, reglist_link) { - if (!entry->std_param.always_on && disable) { - if (bootverbose) - printf("regulator: shutting down %s\n", - entry->name); + if (!entry->std_param.always_on) { ret = regnode_status(entry, &status); - if (ret == 0 && status == REGULATOR_STATUS_ENABLED) - regnode_stop(entry, 0); + if (ret == 0 && status == REGULATOR_STATUS_ENABLED) { + if (bootverbose) + printf("regulator: shutting down %s... ", + entry->name); + ret = regnode_stop(entry, 0); + if (bootverbose) { + /* + * Call out busy in particular, here, + * because it's not unexpected to fail + * shutdown if the regulator is simply + * in-use. + */ + if (ret == EBUSY) + printf("busy\n"); + else if (ret != 0) + printf("error (%d)\n", ret); + else + printf("ok\n"); + } + } } } REG_TOPO_UNLOCK(); From owner-svn-src-all@freebsd.org Thu Jan 16 03:16:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1C28F22718B; Thu, 16 Jan 2020 03:16:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yq8m713xz4N0b; Thu, 16 Jan 2020 03:16:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id EBDAE18F62; Thu, 16 Jan 2020 03:16:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3G81O080686; Thu, 16 Jan 2020 03:16:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3G8h6080684; Thu, 16 Jan 2020 03:16:08 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160316.00G3G8h6080684@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:16:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356773 - in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Commit-Revision: 356773 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:16:09 -0000 Author: kevans Date: Thu Jan 16 03:16:08 2020 New Revision: 356773 URL: https://svnweb.freebsd.org/changeset/base/356773 Log: MFC r356688, r356694: tap(4) manpage improvements r356688: Install tap(4) manpage as vmnet(4) as well If one comes across a vmnet interface, this is a useful pointer to have towards what it actually is if they're otherwise unfamiliar. r356694: tap(4): also note that we drop configured addresses This provides a specific pointer for users of tap(4) to understand why their interfaces are losing their addresses, and specifically how to workaround this if they need different behavior. This manpage received a .Dd bump earlier today in r35688, so no bump occurs this time. Modified: stable/11/share/man/man4/Makefile stable/11/share/man/man4/tap.4 Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: stable/12/share/man/man4/Makefile stable/12/share/man/man4/tap.4 Directory Properties: stable/12/ (props changed) Modified: stable/11/share/man/man4/Makefile ============================================================================== --- stable/11/share/man/man4/Makefile Thu Jan 16 03:14:01 2020 (r356772) +++ stable/11/share/man/man4/Makefile Thu Jan 16 03:16:08 2020 (r356773) @@ -758,7 +758,9 @@ MLINKS+=stf.4 if_stf.4 MLINKS+=stge.4 if_stge.4 MLINKS+=syncache.4 syncookies.4 MLINKS+=syscons.4 sc.4 -MLINKS+=tap.4 if_tap.4 +MLINKS+=tap.4 if_tap.4 \ + tap.4 vmnet.4 \ + tap.4 if_vmnet.4 MLINKS+=tdfx.4 tdfx_linux.4 MLINKS+=ti.4 if_ti.4 MLINKS+=tl.4 if_tl.4 Modified: stable/11/share/man/man4/tap.4 ============================================================================== --- stable/11/share/man/man4/tap.4 Thu Jan 16 03:14:01 2020 (r356772) +++ stable/11/share/man/man4/tap.4 Thu Jan 16 03:16:08 2020 (r356773) @@ -1,11 +1,12 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd November 29, 2017 +.Dd January 15, 2020 .Dt TAP 4 .Os .Sh NAME -.Nm tap +.Nm tap , +.Nm vmnet .Nd Ethernet tunnel software network interface .Sh SYNOPSIS .Cd device tap @@ -280,6 +281,7 @@ On the last close of the data device, the interface is brought down (as if with .Dq ifconfig tap Ns Sy N No down ) +and has all of its configured addresses deleted unless the device is a .Em VMnet device, or has From owner-svn-src-all@freebsd.org Thu Jan 16 03:16:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4A5D22719C; Thu, 16 Jan 2020 03:16:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yq8n409xz4N0c; Thu, 16 Jan 2020 03:16:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8411418F63; Thu, 16 Jan 2020 03:16:09 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3G9oQ080693; Thu, 16 Jan 2020 03:16:09 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3G9Zb080691; Thu, 16 Jan 2020 03:16:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160316.00G3G9Zb080691@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:16:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356773 - in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11/share/man/man4 12/share/man/man4 X-SVN-Commit-Revision: 356773 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:16:09 -0000 Author: kevans Date: Thu Jan 16 03:16:08 2020 New Revision: 356773 URL: https://svnweb.freebsd.org/changeset/base/356773 Log: MFC r356688, r356694: tap(4) manpage improvements r356688: Install tap(4) manpage as vmnet(4) as well If one comes across a vmnet interface, this is a useful pointer to have towards what it actually is if they're otherwise unfamiliar. r356694: tap(4): also note that we drop configured addresses This provides a specific pointer for users of tap(4) to understand why their interfaces are losing their addresses, and specifically how to workaround this if they need different behavior. This manpage received a .Dd bump earlier today in r35688, so no bump occurs this time. Modified: stable/12/share/man/man4/Makefile stable/12/share/man/man4/tap.4 Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: stable/11/share/man/man4/Makefile stable/11/share/man/man4/tap.4 Directory Properties: stable/11/ (props changed) Modified: stable/12/share/man/man4/Makefile ============================================================================== --- stable/12/share/man/man4/Makefile Thu Jan 16 03:14:01 2020 (r356772) +++ stable/12/share/man/man4/Makefile Thu Jan 16 03:16:08 2020 (r356773) @@ -749,7 +749,9 @@ MLINKS+=stf.4 if_stf.4 MLINKS+=stge.4 if_stge.4 MLINKS+=syncache.4 syncookies.4 MLINKS+=syscons.4 sc.4 -MLINKS+=tap.4 if_tap.4 +MLINKS+=tap.4 if_tap.4 \ + tap.4 vmnet.4 \ + tap.4 if_vmnet.4 MLINKS+=tdfx.4 tdfx_linux.4 MLINKS+=ti.4 if_ti.4 MLINKS+=tl.4 if_tl.4 Modified: stable/12/share/man/man4/tap.4 ============================================================================== --- stable/12/share/man/man4/tap.4 Thu Jan 16 03:14:01 2020 (r356772) +++ stable/12/share/man/man4/tap.4 Thu Jan 16 03:16:08 2020 (r356773) @@ -1,11 +1,12 @@ .\" $FreeBSD$ .\" Based on PR#2411 .\" -.Dd April 29, 2019 +.Dd January 13, 2020 .Dt TAP 4 .Os .Sh NAME -.Nm tap +.Nm tap , +.Nm vmnet .Nd Ethernet tunnel software network interface .Sh SYNOPSIS .Cd device tuntap @@ -280,6 +281,7 @@ On the last close of the data device, the interface is brought down (as if with .Dq ifconfig tap Ns Sy N No down ) +and has all of its configured addresses deleted unless the device is a .Em VMnet device, or has From owner-svn-src-all@freebsd.org Thu Jan 16 03:24:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6264522755D; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yqLk1xS6z4NWw; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 398371913C; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3Okh5086542; Thu, 16 Jan 2020 03:24:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3OkYS086541; Thu, 16 Jan 2020 03:24:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160324.00G3OkYS086541@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:24:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356774 - in stable: 11 12 X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 12 X-SVN-Commit-Revision: 356774 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:24:46 -0000 Author: kevans Date: Thu Jan 16 03:24:45 2020 New Revision: 356774 URL: https://svnweb.freebsd.org/changeset/base/356774 Log: Record-only MFC of r353140, r356735 The former added ALLOW_MIPS_SHARED_TEXTREL, and the latter reverted it. Modified: Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Modified: Directory Properties: stable/12/ (props changed) From owner-svn-src-all@freebsd.org Thu Jan 16 03:24:46 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4F9D227567; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yqLk3zZGz4NWx; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8401A1913D; Thu, 16 Jan 2020 03:24:46 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3OkH0086547; Thu, 16 Jan 2020 03:24:46 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3Okj0086546; Thu, 16 Jan 2020 03:24:46 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160324.00G3Okj0086546@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:24:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356774 - in stable: 11 12 X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 12 X-SVN-Commit-Revision: 356774 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:24:46 -0000 Author: kevans Date: Thu Jan 16 03:24:45 2020 New Revision: 356774 URL: https://svnweb.freebsd.org/changeset/base/356774 Log: Record-only MFC of r353140, r356735 The former added ALLOW_MIPS_SHARED_TEXTREL, and the latter reverted it. Modified: Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Modified: Directory Properties: stable/11/ (props changed) From owner-svn-src-all@freebsd.org Thu Jan 16 03:35:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A4E1122798D; Thu, 16 Jan 2020 03:35:20 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi1-f178.google.com (mail-oi1-f178.google.com [209.85.167.178]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yqZv6CqSz4P7k; Thu, 16 Jan 2020 03:35:19 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi1-f178.google.com with SMTP id c16so17691466oic.3; Wed, 15 Jan 2020 19:35:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=GHgzuLeJ0qMMOuz87c/O2vf2lpKU3po7jfjj1DeZDcA=; b=m6s13VVw97iK2cXECOnulijQSI24+BTwBLtANR9jX3PpmLzgWwff7ButVE0A06Avna 1XIAwGxKJJ5f+wl/Gw/szWoQGwVNOq5r58TtXXtnAX/rzQNEPjfy1L70k76HJXyEMY0p w1putyDB7lkIcWvGrIH+fOWW6M5bFdkxaXzQuhUWKqtLB5HtL0GOUKn94La63yw7Qrt6 2xbF/DqelfNXabdTZv3fXmNEQhVILjNGZvdx1J3nVJvtPRjrWgsGmBbOhsoIJfdIFyKL WhUDCx02ATEEiZFMEm1lWK8fb1EHkS7rJUHSVSXyLJmxDae0XS/I9pZ+SBZWVMxoCnAY Jk0w== X-Gm-Message-State: APjAAAV+SpF3MRPpWItCl/wNK3/2EQafJp77yR1XNjCHgnnJ1vovMrcj DZok9O/6MgGLgGyXgG9mZ1tJQw/Q X-Google-Smtp-Source: APXvYqyKlsAzQ7YZhdr873heX02ZaIAekxQwhnHYuQXzP3YT/xI0Q+V1tLMDbATplQSQoUYPFP8qcw== X-Received: by 2002:aca:2407:: with SMTP id n7mr2660153oic.14.1579145718646; Wed, 15 Jan 2020 19:35:18 -0800 (PST) Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com. [209.85.167.171]) by smtp.gmail.com with ESMTPSA id g61sm7325279otb.53.2020.01.15.19.35.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jan 2020 19:35:18 -0800 (PST) Received: by mail-oi1-f171.google.com with SMTP id c77so17664567oib.7; Wed, 15 Jan 2020 19:35:18 -0800 (PST) X-Received: by 2002:aca:4b06:: with SMTP id y6mr2623190oia.81.1579145718234; Wed, 15 Jan 2020 19:35:18 -0800 (PST) MIME-Version: 1.0 References: <202001150605.00F65Kc8011526@repo.freebsd.org> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Wed, 15 Jan 2020 19:35:07 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Warner Losh Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47yqZv6CqSz4P7k X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.167.178 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-3.08 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; REPLYTO_ADDR_EQ_FROM(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.995,0]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[178.167.85.209.list.dnswl.org : 127.0.5.0]; HAS_REPLYTO(0.00)[cem@freebsd.org]; IP_SCORE(-1.08)[ip: (-0.46), ipnet: 209.85.128.0/17(-3.08), asn: 15169(-1.83), country: US(-0.05)]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[178.167.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:35:20 -0000 On Wed, Jan 15, 2020 at 12:36 PM Warner Losh wrote: > Everywhere else in the system, it's fnp, argp for ordering the args... You'd be hard pressed to find exceptions to this rule. Since this is a new interface, we should fix it now while we still can :) qsort_r() is one exception (and that ordering is a mistake in many ways). +1 to Gleb's proposed new world order. From owner-svn-src-all@freebsd.org Thu Jan 16 03:38:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F367E227A72; Thu, 16 Jan 2020 03:38:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yqf869NMz4PHS; Thu, 16 Jan 2020 03:38:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF1191932E; Thu, 16 Jan 2020 03:38:08 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3c8vG092613; Thu, 16 Jan 2020 03:38:08 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3c6UH092603; Thu, 16 Jan 2020 03:38:06 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160338.00G3c6UH092603@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:38:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356775 - in stable: 11 11/gnu/lib 11/lib 11/lib/libssp 11/lib/libssp_nonshared 11/share/mk 11/targets/pseudo/userland/gnu 11/tools/build/mk 12 12/gnu/lib 12/lib 12/lib/libc 12/lib/libs... X-SVN-Group: stable-11 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 11/gnu/lib 11/lib 11/lib/libssp 11/lib/libssp_nonshared 11/share/mk 11/targets/pseudo/userland/gnu 11/tools/build/mk 12 12/gnu/lib 12/lib 12/lib/libc 12/lib/libssp 12/lib/libssp_nonshare... X-SVN-Commit-Revision: 356775 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:38:09 -0000 Author: kevans Date: Thu Jan 16 03:38:06 2020 New Revision: 356775 URL: https://svnweb.freebsd.org/changeset/base/356775 Log: MFC r356356, r356358, r356422: replace gcclibs' libssp r356356: Provide libssp based on libc For libssp.so, rebuild stack_protector.c with FORTIFY_SOURCE stubs that just abort built into it. For libssp_nonshared.a, steal stack_protector_compat.c from ^/lib/libc/secure and massage it to maintain that __stack_chk_fail_local is a hidden symbol. libssp is now built unconditionally regardless of {WITH,WITHOUT}_SSP in the build environment, and the gcclibs version has been disconnected from the build in favor of this one. r356358: libssp: fix FORTIFY_SOURCE stub declarations The LSB 4.1 that I referenced omitted the varargs, and I failed to catch it. The __vsnprintf_chk error was from just downright misreading the page. GCC6 caught all of these, but I had only tested GCC4.2. r356422: Update libssp paths in various Makefile.depend* files I've been advised that the model that uses these are fairly resilient, but we do know the proper path to use (or remove, in the case of ^/targets/...), so go ahead and update them to reflect that. Added: stable/11/lib/libssp/ - copied from r356356, head/lib/libssp/ stable/11/lib/libssp_nonshared/ - copied from r356356, head/lib/libssp_nonshared/ Modified: stable/11/Makefile.inc1 stable/11/ObsoleteFiles.inc stable/11/gnu/lib/Makefile stable/11/lib/Makefile stable/11/lib/libssp/fortify_stubs.c stable/11/share/mk/local.dirdeps.mk stable/11/share/mk/local.gendirdeps.mk stable/11/share/mk/src.libnames.mk stable/11/targets/pseudo/userland/gnu/Makefile.depend stable/11/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/11/ (props changed) Changes in other areas also in this revision: Added: stable/12/lib/libssp/ - copied from r356356, head/lib/libssp/ stable/12/lib/libssp_nonshared/ - copied from r356356, head/lib/libssp_nonshared/ Modified: stable/12/Makefile.inc1 stable/12/ObsoleteFiles.inc stable/12/gnu/lib/Makefile stable/12/lib/Makefile stable/12/lib/libc/Makefile.depend.options stable/12/lib/libssp/fortify_stubs.c stable/12/lib/libsysdecode/Makefile.depend stable/12/share/mk/local.dirdeps.mk stable/12/share/mk/local.gendirdeps.mk stable/12/share/mk/src.libnames.mk stable/12/targets/pseudo/userland/gnu/Makefile.depend stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) Modified: stable/11/Makefile.inc1 ============================================================================== --- stable/11/Makefile.inc1 Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/Makefile.inc1 Thu Jan 16 03:38:06 2020 (r356775) @@ -2114,7 +2114,7 @@ libraries: .MAKE .PHONY # # static libgcc.a prerequisite for shared libc # -_prereq_libs= gnu/lib/libssp/libssp_nonshared gnu/lib/libgcc lib/libcompiler_rt +_prereq_libs= lib/libssp_nonshared gnu/lib/libgcc lib/libcompiler_rt # These dependencies are not automatically generated: # Modified: stable/11/ObsoleteFiles.inc ============================================================================== --- stable/11/ObsoleteFiles.inc Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/ObsoleteFiles.inc Thu Jan 16 03:38:06 2020 (r356775) @@ -38,6 +38,13 @@ # xargs -n1 | sort | uniq -d; # done +# 20200115: gcc libssp removed +OLD_FILES+=usr/include/ssp/ssp.h +OLD_FILES+=usr/include/ssp/stdio.h +OLD_FILES+=usr/include/ssp/string.h +OLD_FILES+=usr/include/ssp/unistd.h +OLD_DIRS+=usr/include/ssp + # 20190723: new clang import which bumps version from 8.0.0 to 8.0.1. OLD_FILES+=usr/lib/clang/8.0.0/include/sanitizer/allocator_interface.h OLD_FILES+=usr/lib/clang/8.0.0/include/sanitizer/asan_interface.h Modified: stable/11/gnu/lib/Makefile ============================================================================== --- stable/11/gnu/lib/Makefile Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/gnu/lib/Makefile Thu Jan 16 03:38:06 2020 (r356775) @@ -10,10 +10,6 @@ SUBDIR+= libgcc SUBDIR+= libgcov libgomp .endif -.if ${MK_SSP} != "no" -SUBDIR+= libssp -.endif - .if ${MK_TESTS} != "no" SUBDIR+= tests .endif Modified: stable/11/lib/Makefile ============================================================================== --- stable/11/lib/Makefile Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/lib/Makefile Thu Jan 16 03:38:06 2020 (r356775) @@ -18,6 +18,8 @@ SUBDIR_BOOTSTRAP= \ ${_libcplusplus} \ ${_libcxxrt} \ libelf \ + libssp \ + libssp_nonshared \ msun # The main list; please keep these sorted alphabetically. @@ -136,7 +138,9 @@ SUBDIR_DEPEND_libatm= libmd SUBDIR_DEPEND_libauditdm= libbsm SUBDIR_DEPEND_libbsnmp= ${_libnetgraph} SUBDIR_DEPEND_libc++:= libcxxrt -SUBDIR_DEPEND_libc= libcompiler_rt +# libssp_nonshared doesn't need to be linked into libc on every arch, but it is +# small enough to build that this bit of serialization is likely insignificant. +SUBDIR_DEPEND_libc= libcompiler_rt libssp_nonshared SUBDIR_DEPEND_libcam= libsbuf SUBDIR_DEPEND_libcasper= libnv SUBDIR_DEPEND_libdevstat= libkvm Modified: stable/11/lib/libssp/fortify_stubs.c ============================================================================== --- head/lib/libssp/fortify_stubs.c Sat Jan 4 20:19:25 2020 (r356356) +++ stable/11/lib/libssp/fortify_stubs.c Thu Jan 16 03:38:06 2020 (r356775) @@ -38,15 +38,15 @@ void *__memcpy_chk(void *dst, const void *src, size_t size_t dstlen); void *__memset_chk(void *dst, int c, size_t len, size_t dstlen); int __snprintf_chk(char *str, size_t maxlen, int flag, size_t strlen, - const char *fmt); -int __sprintf_chk(char *str, int flag, size_t strlen, const char *fmt); + const char *fmt, ...); +int __sprintf_chk(char *str, int flag, size_t strlen, const char *fmt, ...); char *__stpcpy_chk(char *dst, const char *src, size_t dstlen); char *__strcat_chk(char *dst, const char *src, size_t dstlen); char *__strcpy_chk(char *dst, const char *src, size_t dstlen); char *__strncat_chk(char *dst, const char *src, size_t len, size_t dstlen); char *__strncpy_chk(char *dst, const char *src, size_t len, size_t dstlen); -int __vsnprintf_chk(char *str, size_t size, const char *format, - va_list ap); +int __vsnprintf_chk(char *str, size_t size, int flags, size_t len, + const char *format, va_list ap); int __vsprintf_chk(char *str, int flag, size_t slen, const char *format, va_list ap); @@ -69,14 +69,14 @@ __memset_chk(void *dst, int c, size_t len, size_t dstl int __snprintf_chk(char *str, size_t maxlen, int flag, size_t strlen, - const char *fmt) + const char *fmt, ...) { ABORT(); } int -__sprintf_chk(char *str, int flag, size_t strlen, const char *fmt) +__sprintf_chk(char *str, int flag, size_t strlen, const char *fmt, ...) { ABORT(); @@ -118,8 +118,8 @@ __strncpy_chk(char *dst, const char *src, size_t len, } int -__vsnprintf_chk(char *str, size_t size, const char *format, - va_list ap) +__vsnprintf_chk(char *str, size_t size, int flags, size_t len, + const char *format, va_list ap) { ABORT(); Modified: stable/11/share/mk/local.dirdeps.mk ============================================================================== --- stable/11/share/mk/local.dirdeps.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/share/mk/local.dirdeps.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -63,7 +63,7 @@ DIRDEPS_FILTER.xtras+= Nusr.bin/clang/clang.host .if ${DEP_RELDIR} == "lib/libc" DIRDEPS += lib/libc_nonshared .if ${MK_SSP:Uno} != "no" -DIRDEPS += gnu/lib/libssp/libssp_nonshared +DIRDEPS += lib/libssp_nonshared .endif .else DIRDEPS_FILTER.xtras+= Nlib/libc_nonshared Modified: stable/11/share/mk/local.gendirdeps.mk ============================================================================== --- stable/11/share/mk/local.gendirdeps.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/share/mk/local.gendirdeps.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -7,7 +7,7 @@ GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M* # local.dirdeps.mk will put them in if necessary GENDIRDEPS_FILTER+= \ Nbin/cat.host \ - Ngnu/lib/libssp/libssp_nonshared \ + Nlib/libssp_nonshared \ Ncddl/usr.bin/ctf* \ Nlib/libc_nonshared \ Ntargets/pseudo/stage* \ Modified: stable/11/share/mk/src.libnames.mk ============================================================================== --- stable/11/share/mk/src.libnames.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/share/mk/src.libnames.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -501,8 +501,8 @@ LIBDIALOGDIR= ${OBJTOP}/gnu/lib/libdialog LIBGCOVDIR= ${OBJTOP}/gnu/lib/libgcov LIBGOMPDIR= ${OBJTOP}/gnu/lib/libgomp LIBGNUREGEXDIR= ${OBJTOP}/gnu/lib/libregex -LIBSSPDIR= ${OBJTOP}/gnu/lib/libssp -LIBSSP_NONSHAREDDIR= ${OBJTOP}/gnu/lib/libssp/libssp_nonshared +LIBSSPDIR= ${OBJTOP}/lib/libssp +LIBSSP_NONSHAREDDIR= ${OBJTOP}/lib/libssp_nonshared LIBSUPCPLUSPLUSDIR= ${OBJTOP}/gnu/lib/libsupc++ LIBASN1DIR= ${OBJTOP}/kerberos5/lib/libasn1 LIBGSSAPI_KRB5DIR= ${OBJTOP}/kerberos5/lib/libgssapi_krb5 Modified: stable/11/targets/pseudo/userland/gnu/Makefile.depend ============================================================================== --- stable/11/targets/pseudo/userland/gnu/Makefile.depend Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/targets/pseudo/userland/gnu/Makefile.depend Thu Jan 16 03:38:06 2020 (r356775) @@ -15,8 +15,6 @@ DIRDEPS = \ gnu/lib/libreadline/history/doc \ gnu/lib/libreadline/readline/doc \ gnu/lib/libregex/doc \ - gnu/lib/libssp \ - gnu/lib/libssp/libssp_nonshared \ gnu/lib/libstdc++ \ gnu/lib/libsupc++ \ gnu/usr.bin/binutils/ar \ Modified: stable/11/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/11/tools/build/mk/OptionalObsoleteFiles.inc Thu Jan 16 03:24:45 2020 (r356774) +++ stable/11/tools/build/mk/OptionalObsoleteFiles.inc Thu Jan 16 03:38:06 2020 (r356775) @@ -7636,41 +7636,6 @@ OLD_FILES+=usr/share/doc/pjdfstest/README OLD_DIRS+=usr/share/doc/pjdfstest .endif -.if ${MK_SSP} == no -OLD_LIBS+=lib/libssp.so.0 -OLD_FILES+=usr/include/ssp/ssp.h -OLD_FILES+=usr/include/ssp/stdio.h -OLD_FILES+=usr/include/ssp/string.h -OLD_FILES+=usr/include/ssp/unistd.h -OLD_FILES+=usr/lib/libssp.a -OLD_FILES+=usr/lib/libssp.so -OLD_FILES+=usr/lib/libssp_nonshared.a -OLD_FILES+=usr/lib32/libssp.a -OLD_FILES+=usr/lib32/libssp.so -OLD_LIBS+=usr/lib32/libssp.so.0 -OLD_FILES+=usr/lib32/libssp_nonshared.a -OLD_FILES+=usr/tests/lib/libc/ssp/Kyuafile -OLD_FILES+=usr/tests/lib/libc/ssp/h_fgets -OLD_FILES+=usr/tests/lib/libc/ssp/h_getcwd -OLD_FILES+=usr/tests/lib/libc/ssp/h_gets -OLD_FILES+=usr/tests/lib/libc/ssp/h_memcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_memmove -OLD_FILES+=usr/tests/lib/libc/ssp/h_memset -OLD_FILES+=usr/tests/lib/libc/ssp/h_read -OLD_FILES+=usr/tests/lib/libc/ssp/h_readlink -OLD_FILES+=usr/tests/lib/libc/ssp/h_snprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_sprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_stpcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_stpncpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_strcat -OLD_FILES+=usr/tests/lib/libc/ssp/h_strcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_strncat -OLD_FILES+=usr/tests/lib/libc/ssp/h_strncpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_vsnprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_vsprintf -OLD_FILES+=usr/tests/lib/libc/ssp/ssp_test -.endif - .if ${MK_SYSCONS} == no OLD_FILES+=usr/share/syscons/fonts/INDEX.fonts OLD_FILES+=usr/share/syscons/fonts/armscii8-8x14.fnt From owner-svn-src-all@freebsd.org Thu Jan 16 03:38:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CD601227AA5; Thu, 16 Jan 2020 03:38:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yqfC58s2z4PHn; Thu, 16 Jan 2020 03:38:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AB0D61932F; Thu, 16 Jan 2020 03:38:11 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G3cBfd092631; Thu, 16 Jan 2020 03:38:11 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G3c9YP092618; Thu, 16 Jan 2020 03:38:09 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001160338.00G3c9YP092618@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Thu, 16 Jan 2020 03:38:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356775 - in stable: 11 11/gnu/lib 11/lib 11/lib/libssp 11/lib/libssp_nonshared 11/share/mk 11/targets/pseudo/userland/gnu 11/tools/build/mk 12 12/gnu/lib 12/lib 12/lib/libc 12/lib/libs... X-SVN-Group: stable-12 X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in stable: 11 11/gnu/lib 11/lib 11/lib/libssp 11/lib/libssp_nonshared 11/share/mk 11/targets/pseudo/userland/gnu 11/tools/build/mk 12 12/gnu/lib 12/lib 12/lib/libc 12/lib/libssp 12/lib/libssp_nonshare... X-SVN-Commit-Revision: 356775 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 03:38:11 -0000 Author: kevans Date: Thu Jan 16 03:38:06 2020 New Revision: 356775 URL: https://svnweb.freebsd.org/changeset/base/356775 Log: MFC r356356, r356358, r356422: replace gcclibs' libssp r356356: Provide libssp based on libc For libssp.so, rebuild stack_protector.c with FORTIFY_SOURCE stubs that just abort built into it. For libssp_nonshared.a, steal stack_protector_compat.c from ^/lib/libc/secure and massage it to maintain that __stack_chk_fail_local is a hidden symbol. libssp is now built unconditionally regardless of {WITH,WITHOUT}_SSP in the build environment, and the gcclibs version has been disconnected from the build in favor of this one. r356358: libssp: fix FORTIFY_SOURCE stub declarations The LSB 4.1 that I referenced omitted the varargs, and I failed to catch it. The __vsnprintf_chk error was from just downright misreading the page. GCC6 caught all of these, but I had only tested GCC4.2. r356422: Update libssp paths in various Makefile.depend* files I've been advised that the model that uses these are fairly resilient, but we do know the proper path to use (or remove, in the case of ^/targets/...), so go ahead and update them to reflect that. Added: stable/12/lib/libssp/ - copied from r356356, head/lib/libssp/ stable/12/lib/libssp_nonshared/ - copied from r356356, head/lib/libssp_nonshared/ Modified: stable/12/Makefile.inc1 stable/12/ObsoleteFiles.inc stable/12/gnu/lib/Makefile stable/12/lib/Makefile stable/12/lib/libc/Makefile.depend.options stable/12/lib/libssp/fortify_stubs.c stable/12/lib/libsysdecode/Makefile.depend stable/12/share/mk/local.dirdeps.mk stable/12/share/mk/local.gendirdeps.mk stable/12/share/mk/src.libnames.mk stable/12/targets/pseudo/userland/gnu/Makefile.depend stable/12/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/12/ (props changed) Changes in other areas also in this revision: Added: stable/11/lib/libssp/ - copied from r356356, head/lib/libssp/ stable/11/lib/libssp_nonshared/ - copied from r356356, head/lib/libssp_nonshared/ Modified: stable/11/Makefile.inc1 stable/11/ObsoleteFiles.inc stable/11/gnu/lib/Makefile stable/11/lib/Makefile stable/11/lib/libssp/fortify_stubs.c stable/11/share/mk/local.dirdeps.mk stable/11/share/mk/local.gendirdeps.mk stable/11/share/mk/src.libnames.mk stable/11/targets/pseudo/userland/gnu/Makefile.depend stable/11/tools/build/mk/OptionalObsoleteFiles.inc Directory Properties: stable/11/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/Makefile.inc1 Thu Jan 16 03:38:06 2020 (r356775) @@ -2539,7 +2539,7 @@ libraries: .MAKE .PHONY # _prereq_libs= lib/libcompiler_rt .if ${MK_SSP} != "no" -_prereq_libs+= gnu/lib/libssp/libssp_nonshared +_prereq_libs+= lib/libssp_nonshared .endif # These dependencies are not automatically generated: Modified: stable/12/ObsoleteFiles.inc ============================================================================== --- stable/12/ObsoleteFiles.inc Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/ObsoleteFiles.inc Thu Jan 16 03:38:06 2020 (r356775) @@ -38,6 +38,13 @@ # xargs -n1 | sort | uniq -d; # done +# 20200115: gcc libssp removed +OLD_FILES+=usr/include/ssp/ssp.h +OLD_FILES+=usr/include/ssp/stdio.h +OLD_FILES+=usr/include/ssp/string.h +OLD_FILES+=usr/include/ssp/unistd.h +OLD_DIRS+=usr/include/ssp + # 20200107: new clang import which bumps version from 9.0.0 to 9.0.1. OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/algorithm OLD_FILES+=usr/lib/clang/9.0.0/include/cuda_wrappers/complex Modified: stable/12/gnu/lib/Makefile ============================================================================== --- stable/12/gnu/lib/Makefile Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/gnu/lib/Makefile Thu Jan 16 03:38:06 2020 (r356775) @@ -8,7 +8,6 @@ SUBDIR.${MK_GCC}+= libgcov .if ${MK_GCC} != "no" && ${MK_OPENMP} == "no" SUBDIR+= libgomp .endif -SUBDIR.${MK_SSP}+= libssp SUBDIR.${MK_TESTS}+= tests .if ${MK_BSD_CRTBEGIN} == "no" Modified: stable/12/lib/Makefile ============================================================================== --- stable/12/lib/Makefile Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/lib/Makefile Thu Jan 16 03:38:06 2020 (r356775) @@ -18,6 +18,8 @@ SUBDIR_BOOTSTRAP= \ ${_libcplusplus} \ ${_libcxxrt} \ libelf \ + libssp \ + libssp_nonshared \ msun # The main list; please keep these sorted alphabetically. @@ -106,7 +108,9 @@ SUBDIR_DEPEND_libarchive= libz libbz2 libexpat liblzma SUBDIR_DEPEND_libauditdm= libbsm SUBDIR_DEPEND_libbsnmp= ${_libnetgraph} SUBDIR_DEPEND_libc++:= libcxxrt -SUBDIR_DEPEND_libc= libcompiler_rt +# libssp_nonshared doesn't need to be linked into libc on every arch, but it is +# small enough to build that this bit of serialization is likely insignificant. +SUBDIR_DEPEND_libc= libcompiler_rt libssp_nonshared SUBDIR_DEPEND_libcam= libsbuf SUBDIR_DEPEND_libcasper= libnv SUBDIR_DEPEND_libdevstat= libkvm Modified: stable/12/lib/libc/Makefile.depend.options ============================================================================== --- stable/12/lib/libc/Makefile.depend.options Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/lib/libc/Makefile.depend.options Thu Jan 16 03:38:06 2020 (r356775) @@ -3,6 +3,6 @@ DIRDEPS_OPTIONS= SSP -DIRDEPS.SSP.yes= gnu/lib/libssp/libssp_nonshared +DIRDEPS.SSP.yes= lib/libssp_nonshared .include Modified: stable/12/lib/libssp/fortify_stubs.c ============================================================================== --- head/lib/libssp/fortify_stubs.c Sat Jan 4 20:19:25 2020 (r356356) +++ stable/12/lib/libssp/fortify_stubs.c Thu Jan 16 03:38:06 2020 (r356775) @@ -38,15 +38,15 @@ void *__memcpy_chk(void *dst, const void *src, size_t size_t dstlen); void *__memset_chk(void *dst, int c, size_t len, size_t dstlen); int __snprintf_chk(char *str, size_t maxlen, int flag, size_t strlen, - const char *fmt); -int __sprintf_chk(char *str, int flag, size_t strlen, const char *fmt); + const char *fmt, ...); +int __sprintf_chk(char *str, int flag, size_t strlen, const char *fmt, ...); char *__stpcpy_chk(char *dst, const char *src, size_t dstlen); char *__strcat_chk(char *dst, const char *src, size_t dstlen); char *__strcpy_chk(char *dst, const char *src, size_t dstlen); char *__strncat_chk(char *dst, const char *src, size_t len, size_t dstlen); char *__strncpy_chk(char *dst, const char *src, size_t len, size_t dstlen); -int __vsnprintf_chk(char *str, size_t size, const char *format, - va_list ap); +int __vsnprintf_chk(char *str, size_t size, int flags, size_t len, + const char *format, va_list ap); int __vsprintf_chk(char *str, int flag, size_t slen, const char *format, va_list ap); @@ -69,14 +69,14 @@ __memset_chk(void *dst, int c, size_t len, size_t dstl int __snprintf_chk(char *str, size_t maxlen, int flag, size_t strlen, - const char *fmt) + const char *fmt, ...) { ABORT(); } int -__sprintf_chk(char *str, int flag, size_t strlen, const char *fmt) +__sprintf_chk(char *str, int flag, size_t strlen, const char *fmt, ...) { ABORT(); @@ -118,8 +118,8 @@ __strncpy_chk(char *dst, const char *src, size_t len, } int -__vsnprintf_chk(char *str, size_t size, const char *format, - va_list ap) +__vsnprintf_chk(char *str, size_t size, int flags, size_t len, + const char *format, va_list ap) { ABORT(); Modified: stable/12/lib/libsysdecode/Makefile.depend ============================================================================== --- stable/12/lib/libsysdecode/Makefile.depend Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/lib/libsysdecode/Makefile.depend Thu Jan 16 03:38:06 2020 (r356775) @@ -7,7 +7,6 @@ DIRDEPS = \ gnu/lib/libdialog \ gnu/lib/libgomp \ gnu/lib/libregex \ - gnu/lib/libssp \ gnu/lib/libstdc++ \ gnu/lib/libsupc++ \ include \ @@ -99,6 +98,7 @@ DIRDEPS = \ lib/libsdp \ lib/libsecureboot \ lib/libsqlite3 \ + lib/libssp \ lib/libstdthreads \ lib/libtacplus \ lib/libthread_db \ Modified: stable/12/share/mk/local.dirdeps.mk ============================================================================== --- stable/12/share/mk/local.dirdeps.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/share/mk/local.dirdeps.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -75,7 +75,7 @@ DIRDEPS_FILTER.xtras+= Nusr.bin/clang/clang.host .if ${DEP_RELDIR} == "lib/libc" DIRDEPS += lib/libc_nonshared .if ${MK_SSP:Uno} != "no" -DIRDEPS += gnu/lib/libssp/libssp_nonshared +DIRDEPS += lib/libssp_nonshared .endif .else DIRDEPS_FILTER.xtras+= Nlib/libc_nonshared Modified: stable/12/share/mk/local.gendirdeps.mk ============================================================================== --- stable/12/share/mk/local.gendirdeps.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/share/mk/local.gendirdeps.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -7,7 +7,7 @@ GENDIRDEPS_HEADER= echo '\# ${FreeBSD:L:@v@$$$v$$ @:M* # local.dirdeps.mk will put them in if necessary GENDIRDEPS_FILTER+= \ Nbin/cat.host \ - Ngnu/lib/libssp/libssp_nonshared \ + Nlib/libssp_nonshared \ Ncddl/usr.bin/ctf* \ Nlib/libc_nonshared \ Ngnu/lib/csu \ Modified: stable/12/share/mk/src.libnames.mk ============================================================================== --- stable/12/share/mk/src.libnames.mk Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/share/mk/src.libnames.mk Thu Jan 16 03:38:06 2020 (r356775) @@ -561,8 +561,8 @@ LIBDIALOGDIR= ${OBJTOP}/gnu/lib/libdialog LIBGCOVDIR= ${OBJTOP}/gnu/lib/libgcov LIBGOMPDIR= ${OBJTOP}/gnu/lib/libgomp LIBGNUREGEXDIR= ${OBJTOP}/gnu/lib/libregex -LIBSSPDIR= ${OBJTOP}/gnu/lib/libssp -LIBSSP_NONSHAREDDIR= ${OBJTOP}/gnu/lib/libssp/libssp_nonshared +LIBSSPDIR= ${OBJTOP}/lib/libssp +LIBSSP_NONSHAREDDIR= ${OBJTOP}/lib/libssp_nonshared LIBSUPCPLUSPLUSDIR= ${OBJTOP}/gnu/lib/libsupc++ LIBASN1DIR= ${OBJTOP}/kerberos5/lib/libasn1 LIBGSSAPI_KRB5DIR= ${OBJTOP}/kerberos5/lib/libgssapi_krb5 Modified: stable/12/targets/pseudo/userland/gnu/Makefile.depend ============================================================================== --- stable/12/targets/pseudo/userland/gnu/Makefile.depend Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/targets/pseudo/userland/gnu/Makefile.depend Thu Jan 16 03:38:06 2020 (r356775) @@ -12,8 +12,6 @@ DIRDEPS = \ gnu/lib/libgcov \ gnu/lib/libgomp \ gnu/lib/libregex/doc \ - gnu/lib/libssp \ - gnu/lib/libssp/libssp_nonshared \ gnu/lib/libstdc++ \ gnu/lib/libsupc++ \ gnu/usr.bin/binutils/ar \ Modified: stable/12/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- stable/12/tools/build/mk/OptionalObsoleteFiles.inc Thu Jan 16 03:24:45 2020 (r356774) +++ stable/12/tools/build/mk/OptionalObsoleteFiles.inc Thu Jan 16 03:38:06 2020 (r356775) @@ -8317,41 +8317,6 @@ OLD_FILES+=usr/share/doc/pjdfstest/README OLD_DIRS+=usr/share/doc/pjdfstest .endif -.if ${MK_SSP} == no -OLD_LIBS+=lib/libssp.so.0 -OLD_FILES+=usr/include/ssp/ssp.h -OLD_FILES+=usr/include/ssp/stdio.h -OLD_FILES+=usr/include/ssp/string.h -OLD_FILES+=usr/include/ssp/unistd.h -OLD_FILES+=usr/lib/libssp.a -OLD_FILES+=usr/lib/libssp.so -OLD_FILES+=usr/lib/libssp_nonshared.a -OLD_FILES+=usr/lib32/libssp.a -OLD_FILES+=usr/lib32/libssp.so -OLD_LIBS+=usr/lib32/libssp.so.0 -OLD_FILES+=usr/lib32/libssp_nonshared.a -OLD_FILES+=usr/tests/lib/libc/ssp/Kyuafile -OLD_FILES+=usr/tests/lib/libc/ssp/h_fgets -OLD_FILES+=usr/tests/lib/libc/ssp/h_getcwd -OLD_FILES+=usr/tests/lib/libc/ssp/h_gets -OLD_FILES+=usr/tests/lib/libc/ssp/h_memcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_memmove -OLD_FILES+=usr/tests/lib/libc/ssp/h_memset -OLD_FILES+=usr/tests/lib/libc/ssp/h_read -OLD_FILES+=usr/tests/lib/libc/ssp/h_readlink -OLD_FILES+=usr/tests/lib/libc/ssp/h_snprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_sprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_stpcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_stpncpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_strcat -OLD_FILES+=usr/tests/lib/libc/ssp/h_strcpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_strncat -OLD_FILES+=usr/tests/lib/libc/ssp/h_strncpy -OLD_FILES+=usr/tests/lib/libc/ssp/h_vsnprintf -OLD_FILES+=usr/tests/lib/libc/ssp/h_vsprintf -OLD_FILES+=usr/tests/lib/libc/ssp/ssp_test -.endif - .if ${MK_SYSCONS} == no OLD_FILES+=usr/share/syscons/fonts/INDEX.fonts OLD_FILES+=usr/share/syscons/fonts/armscii8-8x14.fnt From owner-svn-src-all@freebsd.org Thu Jan 16 05:01:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AB5F7229197; Thu, 16 Jan 2020 05:01:22 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ysVB4JWwz4S8g; Thu, 16 Jan 2020 05:01:22 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8EF221A337; Thu, 16 Jan 2020 05:01:22 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G51MBb040792; Thu, 16 Jan 2020 05:01:22 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G51LeC040232; Thu, 16 Jan 2020 05:01:21 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202001160501.00G51LeC040232@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Thu, 16 Jan 2020 05:01:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356776 - in head/sys: kern vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in head/sys: kern vm X-SVN-Commit-Revision: 356776 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 05:01:22 -0000 Author: jeff Date: Thu Jan 16 05:01:21 2020 New Revision: 356776 URL: https://svnweb.freebsd.org/changeset/base/356776 Log: Simplify VM and UMA startup by eliminating boot pages. Instead use careful ordering to allocate early pages in the same way boot pages were but only as needed. After the KVA allocator has started up we allocate the KVA that we consumed during boot. This also makes the boot pages freeable since they have vm_page structures allocated with the rest of memory. Parts of this patch were written and tested by markj. Reviewed by: glebius, markj Differential Revision: https://reviews.freebsd.org/D23102 Modified: head/sys/kern/subr_vmem.c head/sys/vm/uma_core.c head/sys/vm/vm_init.c head/sys/vm/vm_kern.c head/sys/vm/vm_page.c Modified: head/sys/kern/subr_vmem.c ============================================================================== --- head/sys/kern/subr_vmem.c Thu Jan 16 03:38:06 2020 (r356775) +++ head/sys/kern/subr_vmem.c Thu Jan 16 05:01:21 2020 (r356776) @@ -77,8 +77,6 @@ __FBSDID("$FreeBSD$"); #include #include -int vmem_startup_count(void); - #define VMEM_OPTORDER 5 #define VMEM_OPTVALUE (1 << VMEM_OPTORDER) #define VMEM_MAXORDER \ @@ -661,17 +659,6 @@ vmem_bt_alloc(uma_zone_t zone, vm_size_t bytes, int do pause("btalloc", 1); return (NULL); -} - -/* - * How many pages do we need to startup_alloc. - */ -int -vmem_startup_count(void) -{ - - return (howmany(BT_MAXALLOC, slab_ipers(sizeof(struct vmem_btag), - UMA_ALIGN_PTR))); } #endif Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Thu Jan 16 03:38:06 2020 (r356775) +++ head/sys/vm/uma_core.c Thu Jan 16 05:01:21 2020 (r356776) @@ -101,6 +101,8 @@ __FBSDID("$FreeBSD$"); #include #endif +#include + /* * This is the zone and keg from which all zones are spawned. */ @@ -151,11 +153,10 @@ static LIST_HEAD(,uma_zone) uma_cachezones = static struct rwlock_padalign __exclusive_cache_line uma_rwlock; /* - * Pointer and counter to pool of pages, that is preallocated at - * startup to bootstrap UMA. + * First available virual address for boot time allocations. */ -static char *bootmem; -static int boot_pages; +static vm_offset_t bootstart; +static vm_offset_t bootmem; static struct sx uma_reclaim_lock; @@ -173,9 +174,7 @@ SYSCTL_ULONG(_vm, OID_AUTO, uma_kmem_total, CTLFLAG_RD /* Is the VM done starting up? */ static enum { BOOT_COLD, - BOOT_STRAPPED, - BOOT_PAGEALLOC, - BOOT_BUCKETS, + BOOT_KVA, BOOT_RUNNING, BOOT_SHUTDOWN, } booted = BOOT_COLD; @@ -257,9 +256,7 @@ enum zfreeskip { /* Prototypes.. */ -int uma_startup_count(int); -void uma_startup(void *, int); -void uma_startup1(void); +void uma_startup1(vm_offset_t); void uma_startup2(void); static void *noobj_alloc(uma_zone_t, vm_size_t, int, uint8_t *, int); @@ -278,6 +275,7 @@ static int zone_ctor(void *, int, void *, int); static void zone_dtor(void *, int, void *); static int zero_init(void *, int, int); static void zone_foreach(void (*zfunc)(uma_zone_t, void *), void *); +static void zone_foreach_unlocked(void (*zfunc)(uma_zone_t, void *), void *); static void zone_timeout(uma_zone_t zone, void *); static int hash_alloc(struct uma_hash *, u_int); static int hash_expand(struct uma_hash *, struct uma_hash *); @@ -370,7 +368,7 @@ static void bucket_enable(void) { - KASSERT(booted >= BOOT_BUCKETS, ("Bucket enable before init")); + KASSERT(booted >= BOOT_KVA, ("Bucket enable before init")); bucketdisable = vm_page_count_min(); } @@ -456,13 +454,11 @@ bucket_alloc(uma_zone_t zone, void *udata, int flags) uma_bucket_t bucket; /* - * This is to stop us from allocating per cpu buckets while we're - * running out of vm.boot_pages. Otherwise, we would exhaust the - * boot pages. This also prevents us from allocating buckets in - * low memory situations. + * Don't allocate buckets in low memory situations. */ if (bucketdisable) return (NULL); + /* * To limit bucket recursion we store the original zone flags * in a cookie passed via zalloc_arg/zfree_arg. This allows the @@ -1226,9 +1222,6 @@ keg_drain(uma_keg_t keg) dom = &keg->uk_domain[i]; KEG_LOCK(keg, i); LIST_FOREACH_SAFE(slab, &dom->ud_free_slab, us_link, tmp) { - /* We have nowhere to free these to. */ - if (slab->us_flags & UMA_SLAB_BOOT) - continue; if (keg->uk_flags & UMA_ZFLAG_HASH) UMA_HASH_REMOVE(&keg->uk_hash, slab); n++; @@ -1427,51 +1420,58 @@ static void * startup_alloc(uma_zone_t zone, vm_size_t bytes, int domain, uint8_t *pflag, int wait) { - uma_keg_t keg; + vm_paddr_t pa; + vm_page_t m; void *mem; int pages; + int i; - keg = zone->uz_keg; - /* - * If we are in BOOT_BUCKETS or higher, than switch to real - * allocator. Zones with page sized slabs switch at BOOT_PAGEALLOC. - */ - switch (booted) { - case BOOT_COLD: - case BOOT_STRAPPED: - break; - case BOOT_PAGEALLOC: - if (keg->uk_ppera > 1) - break; - default: -#ifdef UMA_MD_SMALL_ALLOC - keg->uk_allocf = (keg->uk_ppera > 1) ? - page_alloc : uma_small_alloc; -#else - keg->uk_allocf = page_alloc; -#endif - return keg->uk_allocf(zone, bytes, domain, pflag, wait); - } - - /* - * Check our small startup cache to see if it has pages remaining. - */ pages = howmany(bytes, PAGE_SIZE); KASSERT(pages > 0, ("%s can't reserve 0 pages", __func__)); - if (pages > boot_pages) - panic("UMA zone \"%s\": Increase vm.boot_pages", zone->uz_name); -#ifdef DIAGNOSTIC - printf("%s from \"%s\", %d boot pages left\n", __func__, zone->uz_name, - boot_pages); -#endif - mem = bootmem; - boot_pages -= pages; - bootmem += pages * PAGE_SIZE; + *pflag = UMA_SLAB_BOOT; + m = vm_page_alloc_contig_domain(NULL, 0, domain, + malloc2vm_flags(wait) | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED, pages, + (vm_paddr_t)0, ~(vm_paddr_t)0, 1, 0, VM_MEMATTR_DEFAULT); + if (m == NULL) + return (NULL); - return (mem); + pa = VM_PAGE_TO_PHYS(m); + for (i = 0; i < pages; i++, pa += PAGE_SIZE) { +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ + defined(__riscv) || defined(__powerpc64__) + if ((wait & M_NODUMP) == 0) + dump_add_page(pa); +#endif + } + /* Allocate KVA and indirectly advance bootmem. */ + mem = (void *)pmap_map(&bootmem, m->phys_addr, + m->phys_addr + (pages * PAGE_SIZE), VM_PROT_READ | VM_PROT_WRITE); + if ((wait & M_ZERO) != 0) + bzero(mem, pages * PAGE_SIZE); + + return (mem); } +static void +startup_free(void *mem, vm_size_t bytes) +{ + vm_offset_t va; + vm_page_t m; + + va = (vm_offset_t)mem; + m = PHYS_TO_VM_PAGE(pmap_kextract(va)); + pmap_remove(kernel_pmap, va, va + bytes); + for (; bytes != 0; bytes -= PAGE_SIZE, m++) { +#if defined(__aarch64__) || defined(__amd64__) || defined(__mips__) || \ + defined(__riscv) || defined(__powerpc64__) + dump_drop_page(VM_PAGE_TO_PHYS(m)); +#endif + vm_page_unwire_noq(m); + vm_page_free(m); + } +} + /* * Allocates a number of pages from the system * @@ -1622,6 +1622,11 @@ static void page_free(void *mem, vm_size_t size, uint8_t flags) { + if ((flags & UMA_SLAB_BOOT) != 0) { + startup_free(mem, size); + return; + } + if ((flags & UMA_SLAB_KERNEL) == 0) panic("UMA: page_free used with invalid flags %x", flags); @@ -1972,12 +1977,13 @@ keg_ctor(void *mem, int size, void *udata, int flags) * If we haven't booted yet we need allocations to go through the * startup cache until the vm is ready. */ - if (booted < BOOT_PAGEALLOC) - keg->uk_allocf = startup_alloc; #ifdef UMA_MD_SMALL_ALLOC - else if (keg->uk_ppera == 1) + if (keg->uk_ppera == 1) keg->uk_allocf = uma_small_alloc; + else #endif + if (booted < BOOT_KVA) + keg->uk_allocf = startup_alloc; else if (keg->uk_flags & UMA_ZONE_PCPU) keg->uk_allocf = pcpu_page_alloc; else @@ -2034,6 +2040,18 @@ keg_ctor(void *mem, int size, void *udata, int flags) } static void +zone_kva_available(uma_zone_t zone, void *unused) +{ + uma_keg_t keg; + + if ((zone->uz_flags & UMA_ZFLAG_CACHE) != 0) + return; + KEG_GET(zone, keg); + if (keg->uk_allocf == startup_alloc) + keg->uk_allocf = page_alloc; +} + +static void zone_alloc_counters(uma_zone_t zone, void *unused) { @@ -2474,135 +2492,73 @@ zone_dtor(void *arg, int size, void *udata) ZONE_CROSS_LOCK_FINI(zone); } -/* - * Traverses every zone in the system and calls a callback - * - * Arguments: - * zfunc A pointer to a function which accepts a zone - * as an argument. - * - * Returns: - * Nothing - */ static void -zone_foreach(void (*zfunc)(uma_zone_t, void *arg), void *arg) +zone_foreach_unlocked(void (*zfunc)(uma_zone_t, void *arg), void *arg) { uma_keg_t keg; uma_zone_t zone; - /* - * Before BOOT_RUNNING we are guaranteed to be single - * threaded, so locking isn't needed. Startup functions - * are allowed to use M_WAITOK. - */ - if (__predict_true(booted >= BOOT_RUNNING)) - rw_rlock(&uma_rwlock); LIST_FOREACH(keg, &uma_kegs, uk_link) { LIST_FOREACH(zone, &keg->uk_zones, uz_link) zfunc(zone, arg); } LIST_FOREACH(zone, &uma_cachezones, uz_link) zfunc(zone, arg); - if (__predict_true(booted >= BOOT_RUNNING)) - rw_runlock(&uma_rwlock); } /* - * Count how many pages do we need to bootstrap. VM supplies - * its need in early zones in the argument, we add up our zones, - * which consist of the UMA Slabs, UMA Hash and 9 Bucket zones. The - * zone of zones and zone of kegs are accounted separately. + * Traverses every zone in the system and calls a callback + * + * Arguments: + * zfunc A pointer to a function which accepts a zone + * as an argument. + * + * Returns: + * Nothing */ -#define UMA_BOOT_ZONES 12 -static int zsize, ksize; -int -uma_startup_count(int vm_zones) +static void +zone_foreach(void (*zfunc)(uma_zone_t, void *arg), void *arg) { - int zones, pages; - u_int zppera, zipers; - u_int kppera, kipers; - size_t space, size; - ksize = sizeof(struct uma_keg) + - (sizeof(struct uma_domain) * vm_ndomains); - ksize = roundup(ksize, UMA_SUPER_ALIGN); - zsize = sizeof(struct uma_zone) + - (sizeof(struct uma_cache) * (mp_maxid + 1)) + - (sizeof(struct uma_zone_domain) * vm_ndomains); - zsize = roundup(zsize, UMA_SUPER_ALIGN); - - /* - * Memory for the zone of kegs and its keg, and for zone - * of zones. Allocated directly in uma_startup(). - */ - pages = howmany(zsize * 2 + ksize, PAGE_SIZE); - -#ifdef UMA_MD_SMALL_ALLOC - zones = UMA_BOOT_ZONES; -#else - zones = UMA_BOOT_ZONES + vm_zones; - vm_zones = 0; -#endif - size = slab_sizeof(SLAB_MAX_SETSIZE); - space = slab_space(SLAB_MAX_SETSIZE); - - /* Memory for the rest of startup zones, UMA and VM, ... */ - if (zsize > space) { - /* See keg_large_init(). */ - zppera = howmany(zsize + slab_sizeof(1), PAGE_SIZE); - zipers = 1; - zones += vm_zones; - } else { - zppera = 1; - zipers = space / zsize; - } - pages += howmany(zones, zipers) * zppera; - - /* ... and their kegs. Note that zone of zones allocates a keg! */ - if (ksize > space) { - /* See keg_large_init(). */ - kppera = howmany(ksize + slab_sizeof(1), PAGE_SIZE); - kipers = 1; - } else { - kppera = 1; - kipers = space / ksize; - } - pages += howmany(zones + 1, kipers) * kppera; - - /* - * Allocate an additional slab for zones and kegs on NUMA - * systems. The round-robin allocation policy will populate at - * least one slab per-domain. - */ - pages += (vm_ndomains - 1) * (zppera + kppera); - - return (pages); + rw_rlock(&uma_rwlock); + zone_foreach_unlocked(zfunc, arg); + rw_runlock(&uma_rwlock); } +/* + * Initialize the kernel memory allocator. This is done after pages can be + * allocated but before general KVA is available. + */ void -uma_startup(void *mem, int npages) +uma_startup1(vm_offset_t virtual_avail) { struct uma_zctor_args args; + size_t ksize, zsize, size; uma_keg_t masterkeg; uintptr_t m; + uint8_t pflag; -#ifdef DIAGNOSTIC - printf("Entering %s with %d boot pages configured\n", __func__, npages); -#endif + bootstart = bootmem = virtual_avail; rw_init(&uma_rwlock, "UMA lock"); + sx_init(&uma_reclaim_lock, "umareclaim"); - /* Use bootpages memory for the zone of zones and zone of kegs. */ - m = (uintptr_t)mem; + ksize = sizeof(struct uma_keg) + + (sizeof(struct uma_domain) * vm_ndomains); + ksize = roundup(ksize, UMA_SUPER_ALIGN); + zsize = sizeof(struct uma_zone) + + (sizeof(struct uma_cache) * (mp_maxid + 1)) + + (sizeof(struct uma_zone_domain) * vm_ndomains); + zsize = roundup(zsize, UMA_SUPER_ALIGN); + + /* Allocate the zone of zones, zone of kegs, and zone of zones keg. */ + size = (zsize * 2) + ksize; + m = (uintptr_t)startup_alloc(NULL, size, 0, &pflag, M_NOWAIT | M_ZERO); zones = (uma_zone_t)m; m += zsize; kegs = (uma_zone_t)m; m += zsize; masterkeg = (uma_keg_t)m; - m += ksize; - m = roundup(m, PAGE_SIZE); - npages -= (m - (uintptr_t)mem) / PAGE_SIZE; - mem = (void *)m; /* "manually" create the initial zone */ memset(&args, 0, sizeof(args)); @@ -2617,9 +2573,6 @@ uma_startup(void *mem, int npages) args.flags = UMA_ZFLAG_INTERNAL; zone_ctor(kegs, zsize, &args, M_WAITOK); - bootmem = mem; - boot_pages = npages; - args.name = "UMA Zones"; args.size = zsize; args.ctor = zone_ctor; @@ -2641,32 +2594,42 @@ uma_startup(void *mem, int npages) sizeof(struct slabhead *) * UMA_HASH_SIZE_INIT, NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZFLAG_INTERNAL); - booted = BOOT_STRAPPED; + bucket_init(); } -void -uma_startup1(void) -{ - -#ifdef DIAGNOSTIC - printf("Entering %s with %d boot pages left\n", __func__, boot_pages); +#ifndef UMA_MD_SMALL_ALLOC +extern void vm_radix_reserve_kva(void); #endif - booted = BOOT_PAGEALLOC; -} +/* + * Advertise the availability of normal kva allocations and switch to + * the default back-end allocator. Marks the KVA we consumed on startup + * as used in the map. + */ void uma_startup2(void) { -#ifdef DIAGNOSTIC - printf("Entering %s with %d boot pages left\n", __func__, boot_pages); + if (!PMAP_HAS_DMAP) { + vm_map_lock(kernel_map); + (void)vm_map_insert(kernel_map, NULL, 0, bootstart, bootmem, + VM_PROT_RW, VM_PROT_RW, MAP_NOFAULT); + vm_map_unlock(kernel_map); + } + +#ifndef UMA_MD_SMALL_ALLOC + /* Set up radix zone to use noobj_alloc. */ + vm_radix_reserve_kva(); #endif - sx_init(&uma_reclaim_lock, "umareclaim"); - bucket_init(); - booted = BOOT_BUCKETS; + + booted = BOOT_KVA; + zone_foreach_unlocked(zone_kva_available, NULL); bucket_enable(); } +/* + * Finish our initialization steps. + */ static void uma_startup3(void) { @@ -2676,8 +2639,8 @@ uma_startup3(void) uma_dbg_cnt = counter_u64_alloc(M_WAITOK); uma_skip_cnt = counter_u64_alloc(M_WAITOK); #endif - zone_foreach(zone_alloc_counters, NULL); - zone_foreach(zone_alloc_sysctl, NULL); + zone_foreach_unlocked(zone_alloc_counters, NULL); + zone_foreach_unlocked(zone_alloc_sysctl, NULL); callout_init(&uma_callout, 1); callout_reset(&uma_callout, UMA_TIMEOUT * hz, uma_timeout, NULL); booted = BOOT_RUNNING; @@ -2726,7 +2689,6 @@ uma_zcreate(const char *name, size_t size, uma_ctor ct { struct uma_zctor_args args; uma_zone_t res; - bool locked; KASSERT(powerof2(align + 1), ("invalid zone alignment %d for \"%s\"", align, name)); @@ -2758,15 +2720,10 @@ uma_zcreate(const char *name, size_t size, uma_ctor ct args.flags = flags; args.keg = NULL; - if (booted < BOOT_BUCKETS) { - locked = false; - } else { - sx_slock(&uma_reclaim_lock); - locked = true; - } + sx_slock(&uma_reclaim_lock); res = zone_alloc_item(zones, &args, UMA_ANYDOMAIN, M_WAITOK); - if (locked) - sx_sunlock(&uma_reclaim_lock); + sx_sunlock(&uma_reclaim_lock); + return (res); } @@ -2778,7 +2735,6 @@ uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor struct uma_zctor_args args; uma_keg_t keg; uma_zone_t res; - bool locked; keg = master->uz_keg; memset(&args, 0, sizeof(args)); @@ -2792,16 +2748,10 @@ uma_zsecond_create(char *name, uma_ctor ctor, uma_dtor args.flags = keg->uk_flags | UMA_ZONE_SECONDARY; args.keg = keg; - if (booted < BOOT_BUCKETS) { - locked = false; - } else { - sx_slock(&uma_reclaim_lock); - locked = true; - } - /* XXX Attaches only one keg of potentially many. */ + sx_slock(&uma_reclaim_lock); res = zone_alloc_item(zones, &args, UMA_ANYDOMAIN, M_WAITOK); - if (locked) - sx_sunlock(&uma_reclaim_lock); + sx_sunlock(&uma_reclaim_lock); + return (res); } Modified: head/sys/vm/vm_init.c ============================================================================== --- head/sys/vm/vm_init.c Thu Jan 16 03:38:06 2020 (r356775) +++ head/sys/vm/vm_init.c Thu Jan 16 05:01:21 2020 (r356776) @@ -95,9 +95,7 @@ __FBSDID("$FreeBSD$"); #include #include -extern void uma_startup1(void); -extern void uma_startup2(void); -extern void vm_radix_reserve_kva(void); +extern void uma_startup1(vm_offset_t); long physmem; @@ -110,8 +108,6 @@ SYSINIT(vm_mem, SI_SUB_VM, SI_ORDER_FIRST, vm_mem_init /* * vm_init initializes the virtual memory system. * This is done only by the first cpu up. - * - * The start and end address of physical memory is passed in. */ static void vm_mem_init(void *dummy) @@ -135,10 +131,9 @@ vm_mem_init(void *dummy) */ domainset_zero(); -#ifdef UMA_MD_SMALL_ALLOC - /* Announce page availability to UMA. */ - uma_startup1(); -#endif + /* Bootstrap the kernel memory allocator. */ + uma_startup1(virtual_avail); + /* * Initialize other VM packages */ @@ -147,12 +142,6 @@ vm_mem_init(void *dummy) vm_map_startup(); kmem_init(virtual_avail, virtual_end); -#ifndef UMA_MD_SMALL_ALLOC - /* Set up radix zone to use noobj_alloc. */ - vm_radix_reserve_kva(); -#endif - /* Announce full page availability to UMA. */ - uma_startup2(); kmem_init_zero_region(); pmap_init(); vm_pager_init(); Modified: head/sys/vm/vm_kern.c ============================================================================== --- head/sys/vm/vm_kern.c Thu Jan 16 03:38:06 2020 (r356775) +++ head/sys/vm/vm_kern.c Thu Jan 16 05:01:21 2020 (r356776) @@ -129,6 +129,8 @@ SYSCTL_ULONG(_vm, OID_AUTO, max_kernel_address, CTLFLA #endif #define KVA_QUANTUM (1 << KVA_QUANTUM_SHIFT) +extern void uma_startup2(void); + /* * kva_alloc: * @@ -814,6 +816,13 @@ kmem_init(vm_offset_t start, vm_offset_t end) kernel_arena, KVA_QUANTUM); #endif } + + /* + * This must be the very first call so that the virtual address + * space used for early allocations is properly marked used in + * the map. + */ + uma_startup2(); } /* Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Thu Jan 16 03:38:06 2020 (r356775) +++ head/sys/vm/vm_page.c Thu Jan 16 05:01:21 2020 (r356776) @@ -113,10 +113,6 @@ __FBSDID("$FreeBSD$"); #include -extern int uma_startup_count(int); -extern void uma_startup(void *, int); -extern int vmem_startup_count(void); - struct vm_domain vm_dom[MAXMEMDOM]; DPCPU_DEFINE_STATIC(struct vm_batchqueue, pqbatch[MAXMEMDOM][PQ_COUNT]); @@ -169,11 +165,6 @@ vm_page_t vm_page_array; long vm_page_array_size; long first_page; -static int boot_pages; -SYSCTL_INT(_vm, OID_AUTO, boot_pages, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, - &boot_pages, 0, - "number of pages allocated for bootstrapping the VM system"); - static TAILQ_HEAD(, vm_page) blacklist_head; static int sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS); SYSCTL_PROC(_vm, OID_AUTO, page_blacklist, CTLTYPE_STRING | CTLFLAG_RD | @@ -568,13 +559,13 @@ vm_page_startup(vm_offset_t vaddr) struct vm_phys_seg *seg; vm_page_t m; char *list, *listend; - vm_offset_t mapped; vm_paddr_t end, high_avail, low_avail, new_end, size; vm_paddr_t page_range __unused; vm_paddr_t last_pa, pa; u_long pagecount; int biggestone, i, segind; #ifdef WITNESS + vm_offset_t mapped; int witness_size; #endif #if defined(__i386__) && defined(VM_PHYSSEG_DENSE) @@ -596,48 +587,7 @@ vm_page_startup(vm_offset_t vaddr) for (i = 0; i < vm_ndomains; i++) vm_page_domain_init(i); - /* - * Allocate memory for use when boot strapping the kernel memory - * allocator. Tell UMA how many zones we are going to create - * before going fully functional. UMA will add its zones. - * - * VM startup zones: vmem, vmem_btag, VM OBJECT, RADIX NODE, MAP, - * KMAP ENTRY, MAP ENTRY, VMSPACE. - */ - boot_pages = uma_startup_count(8); - -#ifndef UMA_MD_SMALL_ALLOC - /* vmem_startup() calls uma_prealloc(). */ - boot_pages += vmem_startup_count(); - /* vm_map_startup() calls uma_prealloc(). */ - boot_pages += howmany(MAX_KMAP, - slab_ipers(sizeof(struct vm_map), UMA_ALIGN_PTR)); - - /* - * Before we are fully boot strapped we need to account for the - * following allocations: - * - * "KMAP ENTRY" from kmem_init() - * "vmem btag" from vmem_startup() - * "vmem" from vmem_create() - * "KMAP" from vm_map_startup() - * - * Each needs at least one page per-domain. - */ - boot_pages += 4 * vm_ndomains; -#endif - /* - * CTFLAG_RDTUN doesn't work during the early boot process, so we must - * manually fetch the value. - */ - TUNABLE_INT_FETCH("vm.boot_pages", &boot_pages); - new_end = end - (boot_pages * UMA_SLAB_SIZE); - new_end = trunc_page(new_end); - mapped = pmap_map(&vaddr, new_end, end, - VM_PROT_READ | VM_PROT_WRITE); - bzero((void *)mapped, end - new_end); - uma_startup((void *)mapped, boot_pages); - + new_end = end; #ifdef WITNESS witness_size = round_page(witness_startup_count()); new_end -= witness_size; From owner-svn-src-all@freebsd.org Thu Jan 16 05:08:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 228FB2294EE; Thu, 16 Jan 2020 05:08:00 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ysdr04Pdz4Shl; Thu, 16 Jan 2020 05:08:00 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from weatherwax.trouble.is (weatherwax.trouble.is [46.235.227.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "weatherwax.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: philip/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id DA9CF1DBF6; Thu, 16 Jan 2020 05:07:59 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from rincewind.trouble.is (rincewind.trouble.is [IPv6:2a01:4f9:2a:1715::1:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "rincewind.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) by weatherwax.trouble.is (Postfix) with ESMTPS id 47ysdp4rsHz1SZ5; Thu, 16 Jan 2020 05:07:58 +0000 (UTC) Received: by rincewind.trouble.is (Postfix, authenticated sender philip) id 47ysdj4TKmz4Jfd; Thu, 16 Jan 2020 05:07:53 +0000 (UTC) From: "Philip Paeps" To: "Oliver Pinter" Cc: "Ben Woods" , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, "Ed Maste" Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Date: Thu, 16 Jan 2020 15:07:46 +1000 X-Clacks-Overhead: GNU Terry Pratchett X-Mailer: MailMate (1.13.1r5676) Message-ID: In-Reply-To: References: <202001150747.00F7lqiG071097@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 05:08:00 -0000 On 2020-01-16 04:57:28 (+1000), Oliver Pinter wrote: > On Wednesday, January 15, 2020, Ben Woods > wrote: >> Author: woodsb02 (ports committer) >> Date: Wed Jan 15 07:47:52 2020 >> New Revision: 356758 >> URL: https://svnweb.freebsd.org/changeset/base/356758 >> >> Log: >> bsdinstall: Change "default" (first) Partitioning method to ZFS >> >> Reported by: Ruben Schade (during his talk at linux.conf.au) >> Approved by: philip >> Differential Revision: https://reviews.freebsd.org/D23173 > > What's the justification behind this change? This came up during the Q&A after my ZFS talk at Linux.conf.au earlier this week. Someone pointed out that if you install FreeBSD without engaging your brain and "just press enter a few times", you'll get a UFS system. In the vast majority of cases where you install FreeBSD like that, you really actually want a ZFS system. As Ed wrote elsewhere in this thread, the installer "defaults" should be what most people actually want. Note that Ben's patch doesn't actually make it any more difficult to get a UFS system if anyone wants that. The only thing it does is move ZFS to the top of the list of options so "enter enter enter" gets you a ZFS system instead of a UFS system. > Plus I miss from here the relontes tag. I'm not sure if this merits a release notes entry but ... sure. There is not actually a functional change here. It's just a defaults change. Philip -- Philip Paeps Senior Reality Engineer Alternative Enterprises From owner-svn-src-all@freebsd.org Thu Jan 16 06:36:19 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2108222AEC4; Thu, 16 Jan 2020 06:36:19 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "freefall.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yvbl031jz4Wqh; Thu, 16 Jan 2020 06:36:19 +0000 (UTC) (envelope-from danfe@freebsd.org) Received: by freefall.freebsd.org (Postfix, from userid 1033) id EEADF8BCC; Thu, 16 Jan 2020 06:36:18 +0000 (UTC) Date: Thu, 16 Jan 2020 06:36:18 +0000 From: Alexey Dokuchaev To: T??l Coosemans Cc: Philip Paeps , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r355978 - head/usr.bin/top Message-ID: <20200116063618.GA76153@FreeBSD.org> References: <201912210503.xBL53LCh072168@repo.freebsd.org> <20200115190958.13a33cb4@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200115190958.13a33cb4@FreeBSD.org> User-Agent: Mutt/1.11.4 (2019-03-13) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 06:36:19 -0000 On Wed, Jan 15, 2020 at 07:09:58PM +0100, T??l Coosemans wrote: > On Sat, 21 Dec 2019 05:03:21 +0000 (UTC) Philip Paeps wrote: > > New Revision: 355978 > > URL: https://svnweb.freebsd.org/changeset/base/355978 > > > > Log: > > top: display battery capacity remaining > > > > Submitted by: Antranig Vartanian > > Reviewed by: imp, philip > > Differential Revision: https://reviews.freebsd.org/D22871 > > > > @@ -1322,6 +1322,15 @@ i_uptime(struct timeval *bt, time_t *tod) > > } > > } > > > > +void > > +i_battery(int nbat, int batt) > > +{ > > + > > + if (nbat > 0) { > > + printf("; battery: %d%%", batt); > > It doesn't fit. There's only room for "; b": > > last pid: 33047; load averages: 1.17, 1.25, 1.34; b up 3+07:35:37 ... TBH, I don't think it belongs in that line in the first place (leaving aside the argument whether it belongs to the top(1) at all). At least it should probably be printed on its own line, with potential other power/green-related metrics, and hidden by default. ./danfe From owner-svn-src-all@freebsd.org Thu Jan 16 06:47:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DCBDA22B248; Thu, 16 Jan 2020 06:47:07 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yvrC5VrFz4XWY; Thu, 16 Jan 2020 06:47:07 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from weatherwax.trouble.is (weatherwax.trouble.is [IPv6:2a00:1098:82:3a::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "weatherwax.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: philip/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id A1B5D1E7BA; Thu, 16 Jan 2020 06:47:07 +0000 (UTC) (envelope-from philip@freebsd.org) Received: from rincewind.trouble.is (rincewind.trouble.is [IPv6:2a01:4f9:2a:1715::1:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits)) (Client CN "rincewind.trouble.is", Issuer "Let's Encrypt Authority X3" (verified OK)) by weatherwax.trouble.is (Postfix) with ESMTPS id 47yvrB4S6fz1SbJ; Thu, 16 Jan 2020 06:47:06 +0000 (UTC) Received: by rincewind.trouble.is (Postfix, authenticated sender philip) id 47yvr770TSz4JgM; Thu, 16 Jan 2020 06:47:03 +0000 (UTC) From: "Philip Paeps" To: "=?utf-8?q?T=C4=B3l?= Coosemans" Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r355978 - head/usr.bin/top Date: Thu, 16 Jan 2020 16:46:59 +1000 X-Clacks-Overhead: GNU Terry Pratchett X-Mailer: MailMate (1.13.1r5676) Message-ID: In-Reply-To: <20200115190958.13a33cb4@FreeBSD.org> References: <201912210503.xBL53LCh072168@repo.freebsd.org> <20200115190958.13a33cb4@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 06:47:07 -0000 On 2020-01-16 04:09:58 (+1000), T=C4=B3l Coosemans wrote: > On Sat, 21 Dec 2019 05:03:21 +0000 (UTC) Philip Paeps > wrote: >> Author: philip >> Date: Sat Dec 21 05:03:21 2019 >> New Revision: 355978 >> URL: https://svnweb.freebsd.org/changeset/base/355978 >> >> Log: >> top: display battery capacity remaining >> >> Submitted by: Antranig Vartanian >> Reviewed by: imp, philip >> Differential Revision: https://reviews.freebsd.org/D22871 >> >> Modified: >> head/usr.bin/top/display.c >> head/usr.bin/top/display.h >> head/usr.bin/top/machine.c >> head/usr.bin/top/machine.h >> head/usr.bin/top/top.c >> >> Modified: head/usr.bin/top/display.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- head/usr.bin/top/display.c Sat Dec 21 04:44:17 2019 (r355977) >> +++ head/usr.bin/top/display.c Sat Dec 21 05:03:21 2019 (r355978) >> @@ -1322,6 +1322,15 @@ i_uptime(struct timeval *bt, time_t *tod) >> } >> } >> >> +void >> +i_battery(int nbat, int batt) >> +{ >> + >> + if (nbat > 0) { >> + printf("; battery: %d%%", batt); > > It doesn't fit. There's only room for "; b": > > last pid: 33047; load averages: 1.17, 1.25, 1.34; b up 3+07:35:37 = > 19:08:41 Whoops. Yeah. I just noticed too. (I only did very cursory testing of = this patch - I tend not to run FreeBSD on battery-powered devices = often). I'll shuffle this around a bit. Philip -- = Philip Paeps Senior Reality Engineer Alternative Enterprises From owner-svn-src-all@freebsd.org Thu Jan 16 07:02:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5B2CF22BC6D; Thu, 16 Jan 2020 07:02:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yw9Z1rBRz4YcM; Thu, 16 Jan 2020 07:02:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3A3661B840; Thu, 16 Jan 2020 07:02:10 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G72AGI018030; Thu, 16 Jan 2020 07:02:10 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G729B1018027; Thu, 16 Jan 2020 07:02:09 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001160702.00G729B1018027@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Thu, 16 Jan 2020 07:02:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356777 - stable/12/contrib/llvm-project/llvm/lib/Target/Mips X-SVN-Group: stable-12 X-SVN-Commit-Author: dim X-SVN-Commit-Paths: stable/12/contrib/llvm-project/llvm/lib/Target/Mips X-SVN-Commit-Revision: 356777 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 07:02:10 -0000 Author: dim Date: Thu Jan 16 07:02:09 2020 New Revision: 356777 URL: https://svnweb.freebsd.org/changeset/base/356777 Log: MFC r356701: Merge commit f46ba4f07 from llvm git (by Simon Atanasyan): [mips] Use less registers to load address of TargetExternalSymbol There is no pattern matched `add hi, (MipsLo texternalsym)`. As a result, loading an address of 32-bit symbol requires two registers and one more additional instruction: ``` addiu $1, $zero, %lo(foo) lui $2, %hi(foo) addu $25, $2, $1 ``` This patch adds the missed pattern and enables generation more effective set of instructions: ``` lui $1, %hi(foo) addiu $25, $1, %lo(foo) ``` Differential Revision: https://reviews.llvm.org/D66771 llvm-svn: 370196 Merge commit 59bb3609f from llvm git (by Simon Atanasyan): [mips] Fix 64-bit address loading in case of applying 32-bit mask to the result If result of 64-bit address loading combines with 32-bit mask, LLVM tries to optimize the code and remove "redundant" loading of upper 32-bits of the address. It leads to incorrect code on MIPS64 targets. MIPS backend creates the following chain of commands to load 64-bit address in the `MipsTargetLowering::getAddrNonPICSym64` method: ``` (add (shl (add (shl (add %highest(sym), %higher(sym)), 16), %hi(sym)), 16), %lo(%sym)) ``` If the mask presents, LLVM decides to optimize the chain of commands. It really does not make sense to load upper 32-bits because the 0x0fffffff mask anyway clears them. After removing redundant commands we get this chain: ``` (add (shl (%hi(sym), 16), %lo(%sym)) ``` There is no patterns matched `(MipsHi (i64 symbol))`. Due a bug in `SYM_32` predicate definition, backend incorrectly selects a pattern for a 32-bit symbols and uses the `lui` instruction for loading `%hi(sym)`. As a result we get incorrect set of instructions with unnecessary 16-bit left shifting: ``` lui at,0x0 R_MIPS_HI16 foo dsll at,at,0x10 daddiu at,at,0 R_MIPS_LO16 foo ``` This patch resolves two problems: - Fix `SYM_32/SYM_64` predicates to prevent selection of patterns dedicated to 32-bit symbols in case of using N64 ABI. - Add missed patterns for 64-bit symbols for `%hi/%lo`. Fix PR42736. Differential Revision: https://reviews.llvm.org/D66228 llvm-svn: 370268 These two commits fix a miscompilation of the kernel for mips64, and should allow clang to be used as the default compiler for mips64. Requested by: arichards Modified: stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Directory Properties: stable/12/ (props changed) stable/12/contrib/llvm-project/llvm/ (props changed) Modified: stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td Thu Jan 16 05:01:21 2020 (r356776) +++ stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips.td Thu Jan 16 07:02:09 2020 (r356777) @@ -25,6 +25,8 @@ class PredicateControl { list GPRPredicates = []; // Predicates for the PTR size such as IsPTR64bit list PTRPredicates = []; + // Predicates for a symbol's size such as hasSym32. + list SYMPredicates = []; // Predicates for the FGR size and layout such as IsFP64bit list FGRPredicates = []; // Predicates for the instruction group membership such as ISA's. @@ -38,6 +40,7 @@ class PredicateControl { list Predicates = !listconcat(EncodingPredicates, GPRPredicates, PTRPredicates, + SYMPredicates, FGRPredicates, InsnPredicates, HardFloatPredicate, Modified: stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td Thu Jan 16 05:01:21 2020 (r356776) +++ stable/12/contrib/llvm-project/llvm/lib/Target/Mips/Mips64InstrInfo.td Thu Jan 16 07:02:09 2020 (r356777) @@ -700,7 +700,21 @@ let AdditionalPredicates = [NotInMicroMips] in { (DADDiu GPR64:$hi, tjumptable:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHigher (i64 tconstpool:$lo))), (DADDiu GPR64:$hi, tconstpool:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHigher (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tglobaladdr:$in)), + (DADDiu ZERO_64, tglobaladdr:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tblockaddress:$in)), + (DADDiu ZERO_64, tblockaddress:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tjumptable:$in)), + (DADDiu ZERO_64, tjumptable:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 tconstpool:$in)), + (DADDiu ZERO_64, tconstpool:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsHi (i64 texternalsym:$in)), + (DADDiu ZERO_64, texternalsym:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tglobaladdr:$lo))), (DADDiu GPR64:$hi, tglobaladdr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tblockaddress:$lo))), @@ -710,7 +724,24 @@ let AdditionalPredicates = [NotInMicroMips] in { (DADDiu GPR64:$hi, tjumptable:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsHi (i64 tconstpool:$lo))), (DADDiu GPR64:$hi, tconstpool:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsHi (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tglobaladdr:$in)), + (DADDiu ZERO_64, tglobaladdr:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tblockaddress:$in)), + (DADDiu ZERO_64, tblockaddress:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tjumptable:$in)), + (DADDiu ZERO_64, tjumptable:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tconstpool:$in)), + (DADDiu ZERO_64, tconstpool:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 tglobaltlsaddr:$in)), + (DADDiu ZERO_64, tglobaltlsaddr:$in)>, + ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(MipsLo (i64 texternalsym:$in)), + (DADDiu ZERO_64, texternalsym:$in)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tglobaladdr:$lo))), (DADDiu GPR64:$hi, tglobaladdr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tblockaddress:$lo))), @@ -723,6 +754,9 @@ let AdditionalPredicates = [NotInMicroMips] in { def : MipsPat<(add GPR64:$hi, (MipsLo (i64 tglobaltlsaddr:$lo))), (DADDiu GPR64:$hi, tglobaltlsaddr:$lo)>, ISA_MIPS3, GPR_64, SYM_64; + def : MipsPat<(add GPR64:$hi, (MipsLo (i64 texternalsym:$lo))), + (DADDiu GPR64:$hi, texternalsym:$lo)>, + ISA_MIPS3, GPR_64, SYM_64; } // gp_rel relocs Modified: stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td ============================================================================== --- stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Thu Jan 16 05:01:21 2020 (r356776) +++ stable/12/contrib/llvm-project/llvm/lib/Target/Mips/MipsInstrInfo.td Thu Jan 16 07:02:09 2020 (r356777) @@ -215,9 +215,9 @@ def HasCnMipsP : Predicate<"Subtarget->hasCnMipsP AssemblerPredicate<"FeatureCnMipsP">; def NotCnMipsP : Predicate<"!Subtarget->hasCnMipsP()">, AssemblerPredicate<"!FeatureCnMipsP">; -def IsSym32 : Predicate<"Subtarget->HasSym32()">, +def IsSym32 : Predicate<"Subtarget->hasSym32()">, AssemblerPredicate<"FeatureSym32">; -def IsSym64 : Predicate<"!Subtarget->HasSym32()">, +def IsSym64 : Predicate<"!Subtarget->hasSym32()">, AssemblerPredicate<"!FeatureSym32">; def IsN64 : Predicate<"Subtarget->isABI_N64()">; def IsNotN64 : Predicate<"!Subtarget->isABI_N64()">; @@ -3173,6 +3173,8 @@ multiclass MipsHiLoRelocs; def : MipsPat<(add GPROpnd:$hi, (MipsLo tglobaltlsaddr:$lo)), (Addiu GPROpnd:$hi, tglobaltlsaddr:$lo)>; + def : MipsPat<(add GPROpnd:$hi, (MipsLo texternalsym:$lo)), + (Addiu GPROpnd:$hi, texternalsym:$lo)>; } // wrapper_pic From owner-svn-src-all@freebsd.org Thu Jan 16 07:44:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C246422C86B; Thu, 16 Jan 2020 07:44:01 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yx5s4CfMz4bFQ; Thu, 16 Jan 2020 07:44:01 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00G7hmbf021785 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 07:43:49 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: svn-src-head@freebsd.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00G7hh34028159 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 16 Jan 2020 14:43:43 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Ed Maste References: <202001150747.00F7lqiG071097@repo.freebsd.org> Cc: Warner Losh , Nathan Whitehorn , Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Eugene Grosbein Message-ID: Date: Thu, 16 Jan 2020 14:43:37 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47yx5s4CfMz4bFQ X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.95 / 15.00]; NEURAL_HAM_MEDIUM(-0.95)[-0.949,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; TAGGED_RCPT(0.00)[]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 07:44:01 -0000 16.01.2020 4:41, Ed Maste wrote: > On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: >> >> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests >> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests >> that need lots of memory and should not fight with ZFS for RAM etc. > > That may well be the case, but our defaults should represent the > configuration that's desirable to the largest set of users, and IMO > that's ZFS in most cases today. > > It might be that we should default to UFS on i386 and ZFS on amd64? UFS may be better for any virtual guest having RAM less or equal to 4GB. From owner-svn-src-all@freebsd.org Thu Jan 16 07:51:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D21F722CB44; Thu, 16 Jan 2020 07:51:00 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yxFw34dCz4bmS; Thu, 16 Jan 2020 07:51:00 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00G7onSs021891 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 16 Jan 2020 07:50:50 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: svn-src-head@freebsd.org Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00G7omgD028278 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 16 Jan 2020 14:50:48 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Ed Maste References: <202001150747.00F7lqiG071097@repo.freebsd.org> Cc: Warner Losh , Nathan Whitehorn , Oliver Pinter , Ben Woods , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" From: Eugene Grosbein Message-ID: <781a059d-d409-c6db-14b0-827055325edd@grosbein.net> Date: Thu, 16 Jan 2020 14:50:43 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47yxFw34dCz4bmS X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.94 / 15.00]; TAGGED_RCPT(0.00)[]; NEURAL_HAM_MEDIUM(-0.94)[-0.939,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 07:51:00 -0000 16.01.2020 4:41, Ed Maste wrote: > On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: >> >> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests >> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests >> that need lots of memory and should not fight with ZFS for RAM etc. > > That may well be the case, but our defaults should represent the > configuration that's desirable to the largest set of users, and IMO > that's ZFS in most cases today. > > It might be that we should default to UFS on i386 and ZFS on amd64? Also, size of the media should be considered as ZFS is not feasible for small media. That is, ZFS has its minimum system requirements that should not be ignored by installer. From owner-svn-src-all@freebsd.org Thu Jan 16 08:11:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8B5022DC00; Thu, 16 Jan 2020 08:11:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yxjs5v1pz4cjy; Thu, 16 Jan 2020 08:11:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C59C61C4F5; Thu, 16 Jan 2020 08:11:45 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8Bjun057307; Thu, 16 Jan 2020 08:11:45 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8Bj3A057306; Thu, 16 Jan 2020 08:11:45 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202001160811.00G8Bj3A057306@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Thu, 16 Jan 2020 08:11:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356778 - stable/12/usr.sbin/arp X-SVN-Group: stable-12 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/12/usr.sbin/arp X-SVN-Commit-Revision: 356778 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:11:46 -0000 Author: eugen Date: Thu Jan 16 08:11:45 2020 New Revision: 356778 URL: https://svnweb.freebsd.org/changeset/base/356778 Log: MFC r356551: arp(8): avoid segfaulting due to out-of-bounds memory access Fix obvious mistake that sometimes results in reading memory past end of an array. PR: 242784 Modified: stable/12/usr.sbin/arp/arp.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/arp/arp.c ============================================================================== --- stable/12/usr.sbin/arp/arp.c Thu Jan 16 07:02:09 2020 (r356777) +++ stable/12/usr.sbin/arp/arp.c Thu Jan 16 08:11:45 2020 (r356778) @@ -627,8 +627,7 @@ print_entry(struct sockaddr_dl *sdl, } else xo_emit("{d:/(incomplete)}{en:incomplete/true}"); - for (p = ifnameindex; p && ifnameindex->if_index && - ifnameindex->if_name; p++) { + for (p = ifnameindex; p && p->if_index && p->if_name; p++) { if (p->if_index == sdl->sdl_index) { xo_emit(" on {:interface/%s}", p->if_name); break; From owner-svn-src-all@freebsd.org Thu Jan 16 08:16:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id ED02C22DD0A; Thu, 16 Jan 2020 08:16:12 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yxq065CJz4d4r; Thu, 16 Jan 2020 08:16:12 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC42F1C663; Thu, 16 Jan 2020 08:16:12 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8GCYn061009; Thu, 16 Jan 2020 08:16:12 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8GCDR061008; Thu, 16 Jan 2020 08:16:12 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202001160816.00G8GCDR061008@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Thu, 16 Jan 2020 08:16:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356779 - stable/11/usr.sbin/arp X-SVN-Group: stable-11 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/11/usr.sbin/arp X-SVN-Commit-Revision: 356779 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:16:13 -0000 Author: eugen Date: Thu Jan 16 08:16:12 2020 New Revision: 356779 URL: https://svnweb.freebsd.org/changeset/base/356779 Log: MFC r356551: arp(8): avoid segfaulting due to out-of-bounds memory access Fix obvious mistake that sometimes results in reading memory past end of an array. PR: 242784 Modified: stable/11/usr.sbin/arp/arp.c Directory Properties: stable/11/ (props changed) Modified: stable/11/usr.sbin/arp/arp.c ============================================================================== --- stable/11/usr.sbin/arp/arp.c Thu Jan 16 08:11:45 2020 (r356778) +++ stable/11/usr.sbin/arp/arp.c Thu Jan 16 08:16:12 2020 (r356779) @@ -639,8 +639,7 @@ print_entry(struct sockaddr_dl *sdl, } else xo_emit("{d:/(incomplete)}{en:incomplete/true}"); - for (p = ifnameindex; p && ifnameindex->if_index && - ifnameindex->if_name; p++) { + for (p = ifnameindex; p && p->if_index && p->if_name; p++) { if (p->if_index == sdl->sdl_index) { xo_emit(" on {:interface/%s}", p->if_name); break; From owner-svn-src-all@freebsd.org Thu Jan 16 08:27:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7860822E183; Thu, 16 Jan 2020 08:27:31 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yy432XGKz4dfc; Thu, 16 Jan 2020 08:27:31 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4DDD11C82C; Thu, 16 Jan 2020 08:27:31 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8RV05066901; Thu, 16 Jan 2020 08:27:31 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8RVRI066900; Thu, 16 Jan 2020 08:27:31 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202001160827.00G8RVRI066900@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Thu, 16 Jan 2020 08:27:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356780 - stable/10/usr.sbin/arp X-SVN-Group: stable-10 X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: stable/10/usr.sbin/arp X-SVN-Commit-Revision: 356780 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:27:31 -0000 Author: eugen Date: Thu Jan 16 08:27:30 2020 New Revision: 356780 URL: https://svnweb.freebsd.org/changeset/base/356780 Log: MFC r356551: arp(8): avoid segfaulting due to out-of-bounds memory access Fix obvious mistake that sometimes results in reading memory past end of an array. PR: 242784 Modified: stable/10/usr.sbin/arp/arp.c Directory Properties: stable/10/ (props changed) Modified: stable/10/usr.sbin/arp/arp.c ============================================================================== --- stable/10/usr.sbin/arp/arp.c Thu Jan 16 08:16:12 2020 (r356779) +++ stable/10/usr.sbin/arp/arp.c Thu Jan 16 08:27:30 2020 (r356780) @@ -607,8 +607,7 @@ print_entry(struct sockaddr_dl *sdl, } else printf("(incomplete)"); - for (p = ifnameindex; p && ifnameindex->if_index && - ifnameindex->if_name; p++) { + for (p = ifnameindex; p && p->if_index && p->if_name; p++) { if (p->if_index == sdl->sdl_index) { printf(" on %s", p->if_name); break; From owner-svn-src-all@freebsd.org Thu Jan 16 08:27:53 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5535F22E1EC for ; Thu, 16 Jan 2020 08:27:53 +0000 (UTC) (envelope-from 0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com) Received: from a8-52.smtp-out.amazonses.com (a8-52.smtp-out.amazonses.com [54.240.8.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47yy4S1stbz4dmZ for ; Thu, 16 Jan 2020 08:27:52 +0000 (UTC) (envelope-from 0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=vnqrkfnvu6csdl6mwgk5t6ix3nnepx57; d=tarsnap.com; t=1579163271; h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; bh=/PNY9BbpEMmZtYyEFHSIPiCkgBaECm0ztEE+5UYciLg=; b=cdBrv6fM43iJBaqio21zEYervYLsrzpSYp2WVMZYklMv2wxVxwOnDcpzXN0XzxYU dMAOHCIJI0oAD02Yu+ZLV0RruX7+4vOH3sqzEeANR5IMP0p2cNLXltgW6plEYjO//HV biyBHLDICm3KvpKuzRaincSGw19XoTQK2TlRymuo= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw; d=amazonses.com; t=1579163271; h=Subject:To:Cc:References:From:Message-ID:Date:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding:Feedback-ID; bh=/PNY9BbpEMmZtYyEFHSIPiCkgBaECm0ztEE+5UYciLg=; b=DKkSqIkGD/EJ9j3JF3Lf6GsyfEBdTQAIpvvdGZ3ORAaeImQf6PPetMvVm3BHGaz/ sztYVNwA9SuVLVcIfHjmD/UWN2nvW4Q/eGxF/5rcgNZphPiTyAeV5ZJjdgMesTyu4ea KrD7nJP/UUemps7onsbYxCjlWEOe3L6IrT+Cyg/8= Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Philip Paeps , Oliver Pinter Cc: Ben Woods , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org, Ed Maste References: <202001150747.00F7lqiG071097@repo.freebsd.org> From: Colin Percival Autocrypt: addr=cperciva@tarsnap.com; prefer-encrypt=mutual; keydata= mQGhBElrAAcRBACDfDys4ZtK+ErCJ1HAzYeteKpm3OEsvT/49AjUTLihkF79HhIKrCQU+1KC zv7BwHCMLb6hq30As9L7iFKG7n5QFLFC4Te/VcITUnWHMG/c3ViLOfJGvi+9/nOEHaM1dVJY D6tEp5yM1nHmVQpo9932j4KGuGFR0LhOK5IHXOSfGwCgxSFDPdgxe2OEjWxjGgY+oV3EafcD +JROXCTjlcQiG/OguQH4Vks3mhHfFnEppLxTkDuYgHZQiUtpcT9ssH5khgqoTyMar05OUdAj ZIhNbWDh4LgTj+7ZmvLhXT5Zxw8LX9d7T36aTB8XDQSenDqEtinMWOb0TCBBLbsB8EFG1WTT ESbZci9jJS5yhtktuZoY/eM8uXMD/3k4FWFO80VRRkELSp+XSy/VlSQjyi/rhl2nQq/oOA9F oJbDaB0yq9VNhxP+uFBzBWSqeIX0t1ZWLtNfVFr4TRP5hihI5ICrg/0OpqgisKsU2NFe9xyO hyJLYmfD8ebpDJ/9k30C7Iju9pVrwLm1QgS4S2fqJRcR+U4WbjvP7CgStCVDb2xpbiBQZXJj aXZhbCA8Y3BlcmNpdmFAdGFyc25hcC5jb20+iGEEExECACEFAklrALYCGwMHCwkIBwMCAQQV AggDBBYCAwECHgECF4AACgkQOM7KaQxqam6/igCgn+z2k3V5ggNppmWrZstt1U2lugsAoL7L wS9V9yLtil3oWmHtwpUqYruEuQINBElrAAcQCAD3ZLMIsP4CIDoJORg+YY0lqLVBgcnF7pFb 4Uy2+KvdWofN+DKH61rZLjgXXkNE9M4EQC1B4lGttBP8IY2gs41y3AUogGdyFbidq99rCBz7 LTsgARHwFxZoaHmXyiZLEU1QZuMqwPZV1mCviRhN5E3rRqYNXVcrnXAAuhBpvNyj/ntHvcDN 2/m+ochiuBYueU4kX3lHya7sOj+mTsndcWmQ9soOUyr8O0r/BG088bMn4qqtUw4dl5/pglXk jbl7uOOPinKf0WVd2r6M0wLPJCD4NPHrCWRLLLAjwfjrtoSRvXxDbXhCdgGBa72+K8eYLzVs hgq7tJOoBWzjVK6XRxR7AAMGB/9Mo3iJ2DxqDecd02KCB5BsFDICbJGhPltU7FwrtbC7djSb XUrwsEVLHi4st4cbdGNCWCrp0BRezXZKohKnNAPFOTK++ZfgeKxrV2sJod+Q9RILF86tQ4XF 7A7Yme5hy92t/WgiU4vc/fWbgP8gV/19f8nunaT2E9NSa70mZFjZNu4iuwThoUUO5CV3Wo0Y UISsnRK8XD1+LR3A2qVyLiFRwh/miC1hgLFCTGCQ3GLxZeZzIpYSlGdQJ0L5lixW5ZQD9r1I 8i/8zhE6qRFAM0upUMI3Gt1Oq2w03DiXrZU0Fu/R8Rm8rlnkQKA+95mRTUq1xL5P5NZIi4gJ Z569OPMFiEkEGBECAAkFAklrAAcCGwwACgkQOM7KaQxqam41igCfbaldnFTu5uAdrnrghESv EI3CAo8AoLkNMks1pThl2BJNRm4CtTK9xZeH Message-ID: <0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@email.amazonses.com> Date: Thu, 16 Jan 2020 08:27:51 +0000 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-SES-Outgoing: 2020.01.16-54.240.8.52 Feedback-ID: 1.us-east-1.Lv9FVjaNvvR5llaqfLoOVbo2VxOELl7cjN0AOyXnPlk=:AmazonSES X-Rspamd-Queue-Id: 47yy4S1stbz4dmZ X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=tarsnap.com header.s=vnqrkfnvu6csdl6mwgk5t6ix3nnepx57 header.b=cdBrv6fM; dkim=pass header.d=amazonses.com header.s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw header.b=DKkSqIkG; dmarc=none; spf=pass (mx1.freebsd.org: domain of 0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com designates 54.240.8.52 as permitted sender) smtp.mailfrom=0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com X-Spamd-Result: default: False [-0.05 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[tarsnap.com:s=vnqrkfnvu6csdl6mwgk5t6ix3nnepx57,amazonses.com:s=6gbrjpgwjskckoa6a5zn6fwqkn67xbtw]; FORGED_MUA_THUNDERBIRD_MSGID_UNKNOWN(2.50)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:54.240.0.0/18:c]; NEURAL_HAM_LONG(-1.00)[-0.998,0]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[tarsnap.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[tarsnap.com:+,amazonses.com:+]; RCPT_COUNT_SEVEN(0.00)[7]; RCVD_IN_DNSWL_NONE(0.00)[52.8.240.54.list.dnswl.org : 127.0.15.0]; FORGED_SENDER(0.30)[cperciva@tarsnap.com,0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com]; RCVD_COUNT_ZERO(0.00)[0]; MIME_TRACE(0.00)[0:+]; IP_SCORE(-1.86)[ip: (-1.49), ipnet: 54.240.8.0/21(-4.61), asn: 14618(-3.12), country: US(-0.05)]; ASN(0.00)[asn:14618, ipnet:54.240.8.0/21, country:US]; FROM_NEQ_ENVFROM(0.00)[cperciva@tarsnap.com,0100016fad773fd2-c08f7109-6816-401d-840e-cbc3fdd44131-000000@amazonses.com]; SUSPICIOUS_RECIPS(1.50)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:27:53 -0000 On 2020-01-15 21:07, Philip Paeps wrote: > On 2020-01-16 04:57:28 (+1000), Oliver Pinter wrote: >> On Wednesday, January 15, 2020, Ben Woods wrote: >>>   bsdinstall: Change "default" (first) Partitioning method to ZFS > >> Plus I miss from here the relontes tag. > > I'm not sure if this merits a release notes entry but ... sure. > > There is not actually a functional change here.  It's just a defaults change. I'd say that a change in defaults is far more deserving of being mentioned in the release notes than, say, adding a new feature. Nobody will trip over new features by mistake, but there's probably someone out there who is used to holding down the Enter key in the installer and expects to get UFS. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@freebsd.org Thu Jan 16 08:51:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B388E22EBF5; Thu, 16 Jan 2020 08:51:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yycH2R3Xz4g7d; Thu, 16 Jan 2020 08:51:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ECB21CD84; Thu, 16 Jan 2020 08:51:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8pxOc083436; Thu, 16 Jan 2020 08:51:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8pwTa083434; Thu, 16 Jan 2020 08:51:58 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001160851.00G8pwTa083434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 16 Jan 2020 08:51:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356781 - stable/12/sys/dev/usb/controller X-SVN-Group: stable-12 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/12/sys/dev/usb/controller X-SVN-Commit-Revision: 356781 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:51:59 -0000 Author: hselasky Date: Thu Jan 16 08:51:58 2020 New Revision: 356781 URL: https://svnweb.freebsd.org/changeset/base/356781 Log: MFC r356545: Fix a XHCI driver issue with Intel's Gemini Lake SOC. Do not configure any endpoint twice, but instead keep track of which endpoints are configured on a per device basis, and use an evaluate endpoint context command instead. When changing the configuration make sure all endpoints get deconfigured and the configured endpoint mask is reset. This fixes an issue where an endpoint might stop working if there is an error and the endpoint needs to be reconfigured as a part of the error recovery mechanism in the FreeBSD USB stack. Tested by: Shichun.Ma@dell.com Sponsored by: Mellanox Technologies Modified: stable/12/sys/dev/usb/controller/xhci.c stable/12/sys/dev/usb/controller/xhci.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.c Thu Jan 16 08:27:30 2020 (r356780) +++ stable/12/sys/dev/usb/controller/xhci.c Thu Jan 16 08:51:58 2020 (r356781) @@ -3838,6 +3838,7 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) struct usb_page_cache *pcinp; usb_error_t err; usb_stream_t stream_id; + uint32_t mask; uint8_t index; uint8_t epno; @@ -3903,16 +3904,20 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) * endpoint context state diagram in the XHCI specification: */ - xhci_configure_mask(udev, (1U << epno) | 1U, 0); + mask = (1U << epno); + xhci_configure_mask(udev, mask | 1U, 0); - if (epno > 1) + if (!(sc->sc_hw.devs[index].ep_configured & mask)) { + sc->sc_hw.devs[index].ep_configured |= mask; err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); - else + } else { err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); + } - if (err != 0) - DPRINTF("Could not configure endpoint %u\n", epno); - + if (err != 0) { + DPRINTF("Could not configure " + "endpoint %u at slot %u.\n", epno, index); + } XHCI_CMD_UNLOCK(sc); return (0); @@ -4273,6 +4278,7 @@ xhci_device_state_change(struct usb_device *udev) /* set default state */ sc->sc_hw.devs[index].state = XHCI_ST_DEFAULT; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; @@ -4290,6 +4296,7 @@ xhci_device_state_change(struct usb_device *udev) break; sc->sc_hw.devs[index].state = XHCI_ST_ADDRESSED; + sc->sc_hw.devs[index].ep_configured = 3U; /* set configure mask to slot only */ xhci_configure_mask(udev, 1, 0); @@ -4304,11 +4311,19 @@ xhci_device_state_change(struct usb_device *udev) break; case USB_STATE_CONFIGURED: - if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) - break; + if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) { + /* deconfigure all endpoints, except EP0 */ + err = xhci_cmd_configure_ep(sc, 0, 1, index); + if (err) { + DPRINTF("Failed to deconfigure " + "slot %u.\n", index); + } + } + /* set configured state */ sc->sc_hw.devs[index].state = XHCI_ST_CONFIGURED; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; Modified: stable/12/sys/dev/usb/controller/xhci.h ============================================================================== --- stable/12/sys/dev/usb/controller/xhci.h Thu Jan 16 08:27:30 2020 (r356780) +++ stable/12/sys/dev/usb/controller/xhci.h Thu Jan 16 08:51:58 2020 (r356781) @@ -408,6 +408,8 @@ struct xhci_hw_dev { struct xhci_endpoint_ext endp[XHCI_MAX_ENDPOINTS]; + uint32_t ep_configured; + uint8_t state; uint8_t nports; uint8_t tt; From owner-svn-src-all@freebsd.org Thu Jan 16 08:52:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3AA7322EC6F; Thu, 16 Jan 2020 08:52:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yydM0hS3z4gH1; Thu, 16 Jan 2020 08:52:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 12EAC1CDB4; Thu, 16 Jan 2020 08:52:55 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8qsWh084988; Thu, 16 Jan 2020 08:52:54 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8qsNB084986; Thu, 16 Jan 2020 08:52:54 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001160852.00G8qsNB084986@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 16 Jan 2020 08:52:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356782 - stable/11/sys/dev/usb/controller X-SVN-Group: stable-11 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/11/sys/dev/usb/controller X-SVN-Commit-Revision: 356782 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:52:55 -0000 Author: hselasky Date: Thu Jan 16 08:52:54 2020 New Revision: 356782 URL: https://svnweb.freebsd.org/changeset/base/356782 Log: MFC r356545: Fix a XHCI driver issue with Intel's Gemini Lake SOC. Do not configure any endpoint twice, but instead keep track of which endpoints are configured on a per device basis, and use an evaluate endpoint context command instead. When changing the configuration make sure all endpoints get deconfigured and the configured endpoint mask is reset. This fixes an issue where an endpoint might stop working if there is an error and the endpoint needs to be reconfigured as a part of the error recovery mechanism in the FreeBSD USB stack. Tested by: Shichun.Ma@dell.com Sponsored by: Mellanox Technologies Modified: stable/11/sys/dev/usb/controller/xhci.c stable/11/sys/dev/usb/controller/xhci.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.c Thu Jan 16 08:51:58 2020 (r356781) +++ stable/11/sys/dev/usb/controller/xhci.c Thu Jan 16 08:52:54 2020 (r356782) @@ -3838,6 +3838,7 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) struct usb_page_cache *pcinp; usb_error_t err; usb_stream_t stream_id; + uint32_t mask; uint8_t index; uint8_t epno; @@ -3903,16 +3904,20 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) * endpoint context state diagram in the XHCI specification: */ - xhci_configure_mask(udev, (1U << epno) | 1U, 0); + mask = (1U << epno); + xhci_configure_mask(udev, mask | 1U, 0); - if (epno > 1) + if (!(sc->sc_hw.devs[index].ep_configured & mask)) { + sc->sc_hw.devs[index].ep_configured |= mask; err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); - else + } else { err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); + } - if (err != 0) - DPRINTF("Could not configure endpoint %u\n", epno); - + if (err != 0) { + DPRINTF("Could not configure " + "endpoint %u at slot %u.\n", epno, index); + } XHCI_CMD_UNLOCK(sc); return (0); @@ -4273,6 +4278,7 @@ xhci_device_state_change(struct usb_device *udev) /* set default state */ sc->sc_hw.devs[index].state = XHCI_ST_DEFAULT; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; @@ -4290,6 +4296,7 @@ xhci_device_state_change(struct usb_device *udev) break; sc->sc_hw.devs[index].state = XHCI_ST_ADDRESSED; + sc->sc_hw.devs[index].ep_configured = 3U; /* set configure mask to slot only */ xhci_configure_mask(udev, 1, 0); @@ -4304,11 +4311,19 @@ xhci_device_state_change(struct usb_device *udev) break; case USB_STATE_CONFIGURED: - if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) - break; + if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) { + /* deconfigure all endpoints, except EP0 */ + err = xhci_cmd_configure_ep(sc, 0, 1, index); + if (err) { + DPRINTF("Failed to deconfigure " + "slot %u.\n", index); + } + } + /* set configured state */ sc->sc_hw.devs[index].state = XHCI_ST_CONFIGURED; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; Modified: stable/11/sys/dev/usb/controller/xhci.h ============================================================================== --- stable/11/sys/dev/usb/controller/xhci.h Thu Jan 16 08:51:58 2020 (r356781) +++ stable/11/sys/dev/usb/controller/xhci.h Thu Jan 16 08:52:54 2020 (r356782) @@ -406,6 +406,8 @@ struct xhci_hw_dev { struct xhci_endpoint_ext endp[XHCI_MAX_ENDPOINTS]; + uint32_t ep_configured; + uint8_t state; uint8_t nports; uint8_t tt; From owner-svn-src-all@freebsd.org Thu Jan 16 08:53:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C7DA422ED28; Thu, 16 Jan 2020 08:53:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yyfb4xf2z3Bpy; Thu, 16 Jan 2020 08:53:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A4E2B1CDB6; Thu, 16 Jan 2020 08:53:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00G8rxV1085101; Thu, 16 Jan 2020 08:53:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from hselasky@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00G8rxv7085100; Thu, 16 Jan 2020 08:53:59 GMT (envelope-from hselasky@FreeBSD.org) Message-Id: <202001160853.00G8rxv7085100@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hselasky set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky Date: Thu, 16 Jan 2020 08:53:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r356783 - stable/10/sys/dev/usb/controller X-SVN-Group: stable-10 X-SVN-Commit-Author: hselasky X-SVN-Commit-Paths: stable/10/sys/dev/usb/controller X-SVN-Commit-Revision: 356783 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 08:53:59 -0000 Author: hselasky Date: Thu Jan 16 08:53:59 2020 New Revision: 356783 URL: https://svnweb.freebsd.org/changeset/base/356783 Log: MFC r356545: Fix a XHCI driver issue with Intel's Gemini Lake SOC. Do not configure any endpoint twice, but instead keep track of which endpoints are configured on a per device basis, and use an evaluate endpoint context command instead. When changing the configuration make sure all endpoints get deconfigured and the configured endpoint mask is reset. This fixes an issue where an endpoint might stop working if there is an error and the endpoint needs to be reconfigured as a part of the error recovery mechanism in the FreeBSD USB stack. Tested by: Shichun.Ma@dell.com Sponsored by: Mellanox Technologies Modified: stable/10/sys/dev/usb/controller/xhci.c stable/10/sys/dev/usb/controller/xhci.h Directory Properties: stable/10/ (props changed) Modified: stable/10/sys/dev/usb/controller/xhci.c ============================================================================== --- stable/10/sys/dev/usb/controller/xhci.c Thu Jan 16 08:52:54 2020 (r356782) +++ stable/10/sys/dev/usb/controller/xhci.c Thu Jan 16 08:53:59 2020 (r356783) @@ -3841,6 +3841,7 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) struct usb_page_cache *pcinp; usb_error_t err; usb_stream_t stream_id; + uint32_t mask; uint8_t index; uint8_t epno; @@ -3906,16 +3907,20 @@ xhci_configure_reset_endpoint(struct usb_xfer *xfer) * endpoint context state diagram in the XHCI specification: */ - xhci_configure_mask(udev, (1U << epno) | 1U, 0); + mask = (1U << epno); + xhci_configure_mask(udev, mask | 1U, 0); - if (epno > 1) + if (!(sc->sc_hw.devs[index].ep_configured & mask)) { + sc->sc_hw.devs[index].ep_configured |= mask; err = xhci_cmd_configure_ep(sc, buf_inp.physaddr, 0, index); - else + } else { err = xhci_cmd_evaluate_ctx(sc, buf_inp.physaddr, index); + } - if (err != 0) - DPRINTF("Could not configure endpoint %u\n", epno); - + if (err != 0) { + DPRINTF("Could not configure " + "endpoint %u at slot %u.\n", epno, index); + } XHCI_CMD_UNLOCK(sc); return (0); @@ -4276,6 +4281,7 @@ xhci_device_state_change(struct usb_device *udev) /* set default state */ sc->sc_hw.devs[index].state = XHCI_ST_DEFAULT; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; @@ -4293,6 +4299,7 @@ xhci_device_state_change(struct usb_device *udev) break; sc->sc_hw.devs[index].state = XHCI_ST_ADDRESSED; + sc->sc_hw.devs[index].ep_configured = 3U; /* set configure mask to slot only */ xhci_configure_mask(udev, 1, 0); @@ -4307,11 +4314,19 @@ xhci_device_state_change(struct usb_device *udev) break; case USB_STATE_CONFIGURED: - if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) - break; + if (sc->sc_hw.devs[index].state == XHCI_ST_CONFIGURED) { + /* deconfigure all endpoints, except EP0 */ + err = xhci_cmd_configure_ep(sc, 0, 1, index); + if (err) { + DPRINTF("Failed to deconfigure " + "slot %u.\n", index); + } + } + /* set configured state */ sc->sc_hw.devs[index].state = XHCI_ST_CONFIGURED; + sc->sc_hw.devs[index].ep_configured = 3U; /* reset number of contexts */ sc->sc_hw.devs[index].context_num = 0; Modified: stable/10/sys/dev/usb/controller/xhci.h ============================================================================== --- stable/10/sys/dev/usb/controller/xhci.h Thu Jan 16 08:52:54 2020 (r356782) +++ stable/10/sys/dev/usb/controller/xhci.h Thu Jan 16 08:53:59 2020 (r356783) @@ -406,6 +406,8 @@ struct xhci_hw_dev { struct xhci_endpoint_ext endp[XHCI_MAX_ENDPOINTS]; + uint32_t ep_configured; + uint8_t state; uint8_t nports; uint8_t tt; From owner-svn-src-all@freebsd.org Thu Jan 16 09:01:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB56722F187; Thu, 16 Jan 2020 09:01:38 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: from mail-pj1-x1034.google.com (mail-pj1-x1034.google.com [IPv6:2607:f8b0:4864:20::1034]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47yyqQ0dYFz3CF3; Thu, 16 Jan 2020 09:01:37 +0000 (UTC) (envelope-from koobs.freebsd@gmail.com) Received: by mail-pj1-x1034.google.com with SMTP id r67so1234695pjb.0; Thu, 16 Jan 2020 01:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:reply-to:subject:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=nUPesmFgR9AZYX8yIPN0EDZJTrjRKvb6e/90X7OPZBA=; b=AyqwjNKYUTmcFO+I2K8eUwLgzFNkCHIdoPY21hiX8A92yZK3BWPlH3erGn6M3gnYLd xFahNm1FfNziqtNq49vjLZgJmMaAh25yERJMOpZJd03s3Wud4iNtJtrEI3eNYpZ13weZ rt2yCk7Q9auqmIOdM5Rsclv8h6srnxGXlDXdCxcJ5O7NlZK7JoJAFAI7/otw7ln1VLE+ S1bPrRv2UlMyw41XqoMQ31Lmt93F3gdC5JD3ddTRt6f4GWdfqX9LjmBD0nHWPNb2yTrb dwf1kbXZBThFtPagjt9zGPF4SBcr348+eNTCZbOlxtENRLhmm3Ebap5X5vTfrF55BFVW v9Cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:reply-to:subject:cc:references:from :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=nUPesmFgR9AZYX8yIPN0EDZJTrjRKvb6e/90X7OPZBA=; b=K71ji4E2gLn+9FWCsUW1Zulj40A61x/hOl7k9WS2Zlo7SFei83OO9EZO4+s1SYMkyu 7DP0K43d1qb9g4i9uNfXxDXGkYuDw9zW3v4B74uKhKvozTiqH8efzYUoinEcCOmFGIFH KdhqtPyVC7E5XoxEilUOyU+7QujAqoy7i6iSZO48hLWxoVYzwzm2fM/uVAA73PbyAKt9 9GAUC6AmXRPEvuvSnuEAbhQW+sk8midVpPnrVv6o6av1Ls1CC2PmVzIHhfoyy3XD7EII bTnnJEvaT9M7vjpAfF06AoNIVr58xRI5HM0hlL8617KVkujEuh1/lrGDmjPhJx95vne6 Qp2g== X-Gm-Message-State: APjAAAU05bZkYTXZk+G/6qFavBvQwkXsqChIrxzuR0lrDEgcPfwcFJMP Kh+zuBedy1ebI8X2y7QdPqjTb5v9 X-Google-Smtp-Source: APXvYqxnddEtAglog0xAfcCZTGw1GcyuwQQlPGpkZPkYJ0uU/ReF8weeeNgf5phfEdJwone0tmyncw== X-Received: by 2002:a17:902:b785:: with SMTP id e5mr31503537pls.327.1579165290599; Thu, 16 Jan 2020 01:01:30 -0800 (PST) Received: from [192.168.1.110] (180-150-68-130.b49644.syd.nbn.aussiebb.net. [180.150.68.130]) by smtp.gmail.com with ESMTPSA id w4sm1717334pjt.23.2020.01.16.01.01.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Jan 2020 01:01:30 -0800 (PST) Sender: Kubilay Kocak Reply-To: koobs@FreeBSD.org Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Ben Woods References: <202001150747.00F7lqiG071097@repo.freebsd.org> <0100016fad773f6c-22812db6-4185-4922-a424-94c4ae083344-000000@email.amazonses.com> From: Kubilay Kocak Message-ID: <81104b94-8c89-7eec-720f-0aab2201eb3f@FreeBSD.org> Date: Thu, 16 Jan 2020 20:01:26 +1100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Thunderbird/72.0 MIME-Version: 1.0 In-Reply-To: <0100016fad773f6c-22812db6-4185-4922-a424-94c4ae083344-000000@email.amazonses.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 47yyqQ0dYFz3CF3 X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20161025 header.b=AyqwjNKY; dmarc=none; spf=pass (mx1.freebsd.org: domain of koobsfreebsd@gmail.com designates 2607:f8b0:4864:20::1034 as permitted sender) smtp.mailfrom=koobsfreebsd@gmail.com X-Spamd-Result: default: False [-0.50 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; HAS_REPLYTO(0.00)[koobs@FreeBSD.org]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; REPLYTO_ADDR_EQ_FROM(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[gmail.com:+]; MISSING_TO(2.00)[]; FORGED_SENDER(0.30)[koobs@FreeBSD.org,koobsfreebsd@gmail.com]; IP_SCORE(-0.79)[ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FROM_NEQ_ENVFROM(0.00)[koobs@FreeBSD.org,koobsfreebsd@gmail.com]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.62)[-0.623,0]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; TAGGED_FROM(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-0.88)[-0.878,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[FreeBSD.org]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 09:01:38 -0000 On 16/01/2020 7:27 pm, Colin Percival wrote: > On 2020-01-15 21:07, Philip Paeps wrote: >> On 2020-01-16 04:57:28 (+1000), Oliver Pinter wrote: >>> On Wednesday, January 15, 2020, Ben Woods wrote: >>>>   bsdinstall: Change "default" (first) Partitioning method to ZFS >> >>> Plus I miss from here the relontes tag. >> >> I'm not sure if this merits a release notes entry but ... sure. >> >> There is not actually a functional change here.  It's just a defaults change. > > I'd say that a change in defaults is far more deserving of being mentioned > in the release notes than, say, adding a new feature. Nobody will trip over > new features by mistake, but there's probably someone out there who is used > to holding down the Enter key in the installer and expects to get UFS. > +1 on changing the default. This doesn't preclude UFS systems or reduce choice (we value choice). +0 on tweaking it or setting exceptions if and where necessary, as long as it doesn't result in more than minimal fragmentation between versions/archs/install types: this is also a POLA issue. I don't oin its own consider "4gb systems" as necessary. +1 RELNOTES, we value POLA. More things in RELNOTES not less From owner-svn-src-all@freebsd.org Thu Jan 16 10:25:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D3D24231988; Thu, 16 Jan 2020 10:25:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z0hW5Kpkz3JG4; Thu, 16 Jan 2020 10:25:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A8AA71DF14; Thu, 16 Jan 2020 10:25:47 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GAPlGW039906; Thu, 16 Jan 2020 10:25:47 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GAPlKI039905; Thu, 16 Jan 2020 10:25:47 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001161025.00GAPlKI039905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 16 Jan 2020 10:25:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356784 - stable/12/libexec/rtld-elf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/libexec/rtld-elf X-SVN-Commit-Revision: 356784 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 10:25:47 -0000 Author: kib Date: Thu Jan 16 10:25:47 2020 New Revision: 356784 URL: https://svnweb.freebsd.org/changeset/base/356784 Log: MFC r356549: rtld: Return error if $ORIGIN for a dlopen-ed library cannot be resolved. Modified: stable/12/libexec/rtld-elf/rtld.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Thu Jan 16 08:53:59 2020 (r356783) +++ stable/12/libexec/rtld-elf/rtld.c Thu Jan 16 10:25:47 2020 (r356784) @@ -88,9 +88,9 @@ extern void (*__cleanup)(void); static const char *basename(const char *); static void digest_dynamic1(Obj_Entry *, int, const Elf_Dyn **, const Elf_Dyn **, const Elf_Dyn **); -static void digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, +static bool digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, const Elf_Dyn *); -static void digest_dynamic(Obj_Entry *, int); +static bool digest_dynamic(Obj_Entry *, int); static Obj_Entry *digest_phdr(const Elf_Phdr *, int, caddr_t, const char *); static void distribute_static_tls(Objlist *, RtldLockState *); static Obj_Entry *dlcheck(void *); @@ -640,7 +640,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } #endif - digest_dynamic(obj_main, 0); + if (!digest_dynamic(obj_main, 0)) + rtld_die(); dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj_main->path, obj_main->valid_hash_sysv, obj_main->valid_hash_gnu, obj_main->dynsymcount); @@ -1364,13 +1365,13 @@ obj_resolve_origin(Obj_Entry *obj) return (rtld_dirname_abs(obj->path, obj->origin_path) != -1); } -static void +static bool digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpath, const Elf_Dyn *dyn_soname, const Elf_Dyn *dyn_runpath) { if (obj->z_origin && !obj_resolve_origin(obj)) - rtld_die(); + return (false); if (dyn_runpath != NULL) { obj->runpath = (const char *)obj->strtab + dyn_runpath->d_un.d_val; @@ -1381,9 +1382,10 @@ digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpa } if (dyn_soname != NULL) object_add_name(obj, obj->strtab + dyn_soname->d_un.d_val); + return (true); } -static void +static bool digest_dynamic(Obj_Entry *obj, int early) { const Elf_Dyn *dyn_rpath; @@ -1391,7 +1393,7 @@ digest_dynamic(Obj_Entry *obj, int early) const Elf_Dyn *dyn_runpath; digest_dynamic1(obj, early, &dyn_rpath, &dyn_soname, &dyn_runpath); - digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath); + return (digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath)); } /* @@ -2521,16 +2523,15 @@ do_load_object(int fd, const char *name, char *path, s if (name != NULL) object_add_name(obj, name); obj->path = path; - digest_dynamic(obj, 0); + if (!digest_dynamic(obj, 0)) + goto errp; dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj->path, obj->valid_hash_sysv, obj->valid_hash_gnu, obj->dynsymcount); if (obj->z_noopen && (flags & (RTLD_LO_DLOPEN | RTLD_LO_TRACE)) == RTLD_LO_DLOPEN) { dbg("refusing to load non-loadable \"%s\"", obj->path); _rtld_error("Cannot dlopen non-loadable %s", obj->path); - munmap(obj->mapbase, obj->mapsize); - obj_free(obj); - return (NULL); + goto errp; } obj->dlopened = (flags & RTLD_LO_DLOPEN) != 0; @@ -2547,7 +2548,12 @@ do_load_object(int fd, const char *name, char *path, s LD_UTRACE(UTRACE_LOAD_OBJECT, obj, obj->mapbase, obj->mapsize, 0, obj->path); - return obj; + return (obj); + +errp: + munmap(obj->mapbase, obj->mapsize); + obj_free(obj); + return (NULL); } static Obj_Entry * @@ -3948,12 +3954,17 @@ rtld_dirname_abs(const char *path, char *base) { char *last; - if (realpath(path, base) == NULL) + if (realpath(path, base) == NULL) { + _rtld_error("realpath \"%s\" failed (%s)", path, + rtld_strerror(errno)); return (-1); + } dbg("%s -> %s", path, base); last = strrchr(base, '/'); - if (last == NULL) + if (last == NULL) { + _rtld_error("non-abs result from realpath \"%s\"", path); return (-1); + } if (last != base) *last = '\0'; return (0); From owner-svn-src-all@freebsd.org Thu Jan 16 10:35:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25031231E1B; Thu, 16 Jan 2020 10:35:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z0w40Bdnz3Jp2; Thu, 16 Jan 2020 10:35:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 01DC31E0EB; Thu, 16 Jan 2020 10:35:48 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GAZlUQ045845; Thu, 16 Jan 2020 10:35:47 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GAZl7K045844; Thu, 16 Jan 2020 10:35:47 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001161035.00GAZl7K045844@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 16 Jan 2020 10:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356785 - stable/11/libexec/rtld-elf X-SVN-Group: stable-11 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/11/libexec/rtld-elf X-SVN-Commit-Revision: 356785 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 10:35:48 -0000 Author: kib Date: Thu Jan 16 10:35:47 2020 New Revision: 356785 URL: https://svnweb.freebsd.org/changeset/base/356785 Log: MFC r356549: rtld: Return error if $ORIGIN for a dlopen-ed library cannot be resolved. Modified: stable/11/libexec/rtld-elf/rtld.c Directory Properties: stable/11/ (props changed) Modified: stable/11/libexec/rtld-elf/rtld.c ============================================================================== --- stable/11/libexec/rtld-elf/rtld.c Thu Jan 16 10:25:47 2020 (r356784) +++ stable/11/libexec/rtld-elf/rtld.c Thu Jan 16 10:35:47 2020 (r356785) @@ -77,9 +77,9 @@ typedef void * (*path_enum_proc) (const char *path, si static const char *basename(const char *); static void digest_dynamic1(Obj_Entry *, int, const Elf_Dyn **, const Elf_Dyn **, const Elf_Dyn **); -static void digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, +static bool digest_dynamic2(Obj_Entry *, const Elf_Dyn *, const Elf_Dyn *, const Elf_Dyn *); -static void digest_dynamic(Obj_Entry *, int); +static bool digest_dynamic(Obj_Entry *, int); static Obj_Entry *digest_phdr(const Elf_Phdr *, int, caddr_t, const char *); static void distribute_static_tls(Objlist *, RtldLockState *); static Obj_Entry *dlcheck(void *); @@ -645,7 +645,8 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_proc, Obj_Entr } #endif - digest_dynamic(obj_main, 0); + if (!digest_dynamic(obj_main, 0)) + rtld_die(); dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj_main->path, obj_main->valid_hash_sysv, obj_main->valid_hash_gnu, obj_main->dynsymcount); @@ -1359,13 +1360,13 @@ obj_resolve_origin(Obj_Entry *obj) return (rtld_dirname_abs(obj->path, obj->origin_path) != -1); } -static void +static bool digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpath, const Elf_Dyn *dyn_soname, const Elf_Dyn *dyn_runpath) { if (obj->z_origin && !obj_resolve_origin(obj)) - rtld_die(); + return (false); if (dyn_runpath != NULL) { obj->runpath = (char *)obj->strtab + dyn_runpath->d_un.d_val; @@ -1376,9 +1377,10 @@ digest_dynamic2(Obj_Entry *obj, const Elf_Dyn *dyn_rpa } if (dyn_soname != NULL) object_add_name(obj, obj->strtab + dyn_soname->d_un.d_val); + return (true); } -static void +static bool digest_dynamic(Obj_Entry *obj, int early) { const Elf_Dyn *dyn_rpath; @@ -1386,7 +1388,7 @@ digest_dynamic(Obj_Entry *obj, int early) const Elf_Dyn *dyn_runpath; digest_dynamic1(obj, early, &dyn_rpath, &dyn_soname, &dyn_runpath); - digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath); + return (digest_dynamic2(obj, dyn_rpath, dyn_soname, dyn_runpath)); } /* @@ -2506,16 +2508,15 @@ do_load_object(int fd, const char *name, char *path, s if (name != NULL) object_add_name(obj, name); obj->path = path; - digest_dynamic(obj, 0); + if (!digest_dynamic(obj, 0)) + goto errp; dbg("%s valid_hash_sysv %d valid_hash_gnu %d dynsymcount %d", obj->path, obj->valid_hash_sysv, obj->valid_hash_gnu, obj->dynsymcount); if (obj->z_noopen && (flags & (RTLD_LO_DLOPEN | RTLD_LO_TRACE)) == RTLD_LO_DLOPEN) { dbg("refusing to load non-loadable \"%s\"", obj->path); _rtld_error("Cannot dlopen non-loadable %s", obj->path); - munmap(obj->mapbase, obj->mapsize); - obj_free(obj); - return (NULL); + goto errp; } obj->dlopened = (flags & RTLD_LO_DLOPEN) != 0; @@ -2532,7 +2533,12 @@ do_load_object(int fd, const char *name, char *path, s LD_UTRACE(UTRACE_LOAD_OBJECT, obj, obj->mapbase, obj->mapsize, 0, obj->path); - return obj; + return (obj); + +errp: + munmap(obj->mapbase, obj->mapsize); + obj_free(obj); + return (NULL); } static Obj_Entry * @@ -3933,12 +3939,17 @@ rtld_dirname_abs(const char *path, char *base) { char *last; - if (realpath(path, base) == NULL) + if (realpath(path, base) == NULL) { + _rtld_error("realpath \"%s\" failed (%s)", path, + rtld_strerror(errno)); return (-1); + } dbg("%s -> %s", path, base); last = strrchr(base, '/'); - if (last == NULL) + if (last == NULL) { + _rtld_error("non-abs result from realpath \"%s\"", path); return (-1); + } if (last != base) *last = '\0'; return (0); From owner-svn-src-all@freebsd.org Thu Jan 16 10:44:02 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BE077232518; Thu, 16 Jan 2020 10:44:02 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z15Z4kDjz3Kdy; Thu, 16 Jan 2020 10:44:02 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D7201E2DA; Thu, 16 Jan 2020 10:44:02 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GAi2XF052036; Thu, 16 Jan 2020 10:44:02 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GAi2ad052035; Thu, 16 Jan 2020 10:44:02 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001161044.00GAi2ad052035@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jan 2020 10:44:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356786 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356786 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 10:44:02 -0000 Author: mjg Date: Thu Jan 16 10:44:02 2020 New Revision: 356786 URL: https://svnweb.freebsd.org/changeset/base/356786 Log: vfs: reimplement vlrureclaim to actually use LRU Take advantage of global ordering introduced in r356672. Reviewed by: mckusick (previous version) Differential Revision: https://reviews.freebsd.org/D23067 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Thu Jan 16 10:35:47 2020 (r356785) +++ head/sys/kern/vfs_subr.c Thu Jan 16 10:44:02 2020 (r356786) @@ -166,6 +166,7 @@ int vttoif_tab[10] = { */ static TAILQ_HEAD(freelst, vnode) vnode_list; static struct vnode *vnode_list_free_marker; +static struct vnode *vnode_list_reclaim_marker; /* * "Free" vnode target. Free vnodes are rarely completely free, but are @@ -653,6 +654,8 @@ vntblinit(void *dummy __unused) mtx_unlock(&vnode_list_mtx); vnode_list_free_marker = vn_alloc_marker(NULL); TAILQ_INSERT_HEAD(&vnode_list, vnode_list_free_marker, v_vnodelist); + vnode_list_reclaim_marker = vn_alloc_marker(NULL); + TAILQ_INSERT_HEAD(&vnode_list, vnode_list_reclaim_marker, v_vnodelist); vnode_zone = uma_zcreate("VNODE", sizeof (struct vnode), NULL, NULL, vnode_init, vnode_fini, UMA_ALIGN_PTR, 0); vnodepoll_zone = uma_zcreate("VNODEPOLL", sizeof (struct vpollinfo), @@ -1057,6 +1060,17 @@ vattr_null(struct vattr *vap) } /* + * Try to reduce the total number of vnodes. + * + * This routine (and its user) are buggy in at least the following ways: + * - all parameters were picked years ago when RAM sizes were significantly + * smaller + * - it can pick vnodes based on pages used by the vm object, but filesystems + * like ZFS don't use it making the pick broken + * - since ZFS has its own aging policy it gets partially combated by this one + * - a dedicated method should be provided for filesystems to let them decide + * whether the vnode should be recycled + * * This routine is called when we have too many vnodes. It attempts * to free vnodes and will potentially free vnodes that still * have VM backing store (VM backing store is typically the cause @@ -1071,118 +1085,116 @@ vattr_null(struct vattr *vap) * number of vnodes to reach some minimum value regardless of what * you set kern.maxvnodes to. Do not set kern.maxvnodes too low. * - * @param mp Try to reclaim vnodes from this mountpoint * @param reclaim_nc_src Only reclaim directories with outgoing namecache * entries if this argument is strue * @param trigger Only reclaim vnodes with fewer than this many resident * pages. + * @param target How many vnodes to reclaim. * @return The number of vnodes that were reclaimed. */ static int -vlrureclaim(struct mount *mp, bool reclaim_nc_src, int trigger) +vlrureclaim(bool reclaim_nc_src, int trigger, u_long target) { - struct vnode *vp; - int count, done, target; + struct vnode *vp, *mvp; + struct mount *mp; + u_long done; + bool retried; + mtx_assert(&vnode_list_mtx, MA_OWNED); + + retried = false; done = 0; - vn_start_write(NULL, &mp, V_WAIT); - MNT_ILOCK(mp); - count = mp->mnt_nvnodelistsize; - target = count * (int64_t)gapvnodes / imax(desiredvnodes, 1); - target = target / 10 + 1; - while (count != 0 && done < target) { - vp = TAILQ_FIRST(&mp->mnt_nvnodelist); - while (vp != NULL && vp->v_type == VMARKER) - vp = TAILQ_NEXT(vp, v_nmntvnodes); - if (vp == NULL) + + mvp = vnode_list_reclaim_marker; +restart: + vp = mvp; + while (done < target) { + vp = TAILQ_NEXT(vp, v_vnodelist); + if (__predict_false(vp == NULL)) break; + + if (__predict_false(vp->v_type == VMARKER)) + continue; + /* - * XXX LRU is completely broken for non-free vnodes. First - * by calling here in mountpoint order, then by moving - * unselected vnodes to the end here, and most grossly by - * removing the vlruvp() function that was supposed to - * maintain the order. (This function was born broken - * since syncer problems prevented it doing anything.) The - * order is closer to LRC (C = Created). - * - * LRU reclaiming of vnodes seems to have last worked in - * FreeBSD-3 where LRU wasn't mentioned under any spelling. - * Then there was no hold count, and inactive vnodes were - * simply put on the free list in LRU order. The separate - * lists also break LRU. We prefer to reclaim from the - * free list for technical reasons. This tends to thrash - * the free list to keep very unrecently used held vnodes. - * The problem is mitigated by keeping the free list large. - */ - TAILQ_REMOVE(&mp->mnt_nvnodelist, vp, v_nmntvnodes); - TAILQ_INSERT_TAIL(&mp->mnt_nvnodelist, vp, v_nmntvnodes); - --count; - if (!VI_TRYLOCK(vp)) - goto next_iter; - /* * If it's been deconstructed already, it's still * referenced, or it exceeds the trigger, skip it. * Also skip free vnodes. We are trying to make space * to expand the free list, not reduce it. */ - if (vp->v_usecount || + if (vp->v_usecount > 0 || vp->v_holdcnt == 0 || + (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src))) + goto next_iter; + + if (vp->v_type == VBAD || vp->v_type == VNON) + goto next_iter; + + if (!VI_TRYLOCK(vp)) + goto next_iter; + + if (vp->v_usecount > 0 || vp->v_holdcnt == 0 || (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || - vp->v_holdcnt == 0 || - VN_IS_DOOMED(vp) || (vp->v_object != NULL && + vp->v_type == VBAD || vp->v_type == VNON || + (vp->v_object != NULL && vp->v_object->resident_page_count > trigger)) { VI_UNLOCK(vp); goto next_iter; } - MNT_IUNLOCK(mp); vholdl(vp); - if (VOP_LOCK(vp, LK_INTERLOCK|LK_EXCLUSIVE|LK_NOWAIT)) { + VI_UNLOCK(vp); + TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); + TAILQ_INSERT_AFTER(&vnode_list, vp, mvp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); + + if (vn_start_write(vp, &mp, V_NOWAIT) != 0) { vdrop(vp); - goto next_iter_mntunlocked; + goto next_iter_unlocked; } + if (VOP_LOCK(vp, LK_EXCLUSIVE|LK_NOWAIT) != 0) { + vdrop(vp); + vn_finished_write(mp); + goto next_iter_unlocked; + } + VI_LOCK(vp); - /* - * v_usecount may have been bumped after VOP_LOCK() dropped - * the vnode interlock and before it was locked again. - * - * It is not necessary to recheck VIRF_DOOMED because it can - * only be set by another thread that holds both the vnode - * lock and vnode interlock. If another thread has the - * vnode lock before we get to VOP_LOCK() and obtains the - * vnode interlock after VOP_LOCK() drops the vnode - * interlock, the other thread will be unable to drop the - * vnode lock before our VOP_LOCK() call fails. - */ - if (vp->v_usecount || + if (vp->v_usecount > 0 || (!reclaim_nc_src && !LIST_EMPTY(&vp->v_cache_src)) || (vp->v_object != NULL && vp->v_object->resident_page_count > trigger)) { VOP_UNLOCK(vp); vdropl(vp); - goto next_iter_mntunlocked; + vn_finished_write(mp); + goto next_iter_unlocked; } - KASSERT(!VN_IS_DOOMED(vp), - ("VIRF_DOOMED unexpectedly detected in vlrureclaim()")); counter_u64_add(recycles_count, 1); vgonel(vp); VOP_UNLOCK(vp); vdropl(vp); + vn_finished_write(mp); done++; -next_iter_mntunlocked: - if (!should_yield()) - goto relock_mnt; - goto yield; +next_iter_unlocked: + if (should_yield()) + kern_yield(PRI_USER); + mtx_lock(&vnode_list_mtx); + goto restart; next_iter: + MPASS(vp->v_type != VMARKER); if (!should_yield()) continue; - MNT_IUNLOCK(mp); -yield: + TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); + TAILQ_INSERT_AFTER(&vnode_list, vp, mvp, v_vnodelist); + mtx_unlock(&vnode_list_mtx); kern_yield(PRI_USER); -relock_mnt: - MNT_ILOCK(mp); + mtx_lock(&vnode_list_mtx); + goto restart; } - MNT_IUNLOCK(mp); - vn_finished_write(mp); - return done; + if (done == 0 && !retried) { + TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist); + TAILQ_INSERT_HEAD(&vnode_list, mvp, v_vnodelist); + retried = true; + goto restart; + } + return (done); } static int max_vnlru_free = 10000; /* limit on vnode free requests per call */ @@ -1291,8 +1303,7 @@ static int vnlruproc_sig; static void vnlru_proc(void) { - u_long rnumvnodes, rfreevnodes; - struct mount *mp, *nmp; + u_long rnumvnodes, rfreevnodes, target; unsigned long onumvnodes; int done, force, trigger, usevnodes, vsp; bool reclaim_nc_src; @@ -1331,9 +1342,6 @@ vnlru_proc(void) PVFS|PDROP, "vlruwt", hz); continue; } - mtx_unlock(&vnode_list_mtx); - done = 0; - rnumvnodes = atomic_load_long(&numvnodes); rfreevnodes = atomic_load_long(&freevnodes); onumvnodes = rnumvnodes; @@ -1362,18 +1370,10 @@ vnlru_proc(void) if (force < 2) trigger = vsmalltrigger; reclaim_nc_src = force >= 3; - mtx_lock(&mountlist_mtx); - for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { - if (vfs_busy(mp, MBF_NOWAIT | MBF_MNTLSTLOCK)) { - nmp = TAILQ_NEXT(mp, mnt_list); - continue; - } - done += vlrureclaim(mp, reclaim_nc_src, trigger); - mtx_lock(&mountlist_mtx); - nmp = TAILQ_NEXT(mp, mnt_list); - vfs_unbusy(mp); - } - mtx_unlock(&mountlist_mtx); + target = rnumvnodes * (int64_t)gapvnodes / imax(desiredvnodes, 1); + target = target / 10 + 1; + done = vlrureclaim(reclaim_nc_src, trigger, target); + mtx_unlock(&vnode_list_mtx); if (onumvnodes > desiredvnodes && numvnodes <= desiredvnodes) uma_reclaim(UMA_RECLAIM_DRAIN); if (done == 0) { From owner-svn-src-all@freebsd.org Thu Jan 16 10:51:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A04582328E2; Thu, 16 Jan 2020 10:51:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z1GD3l1Dz3KxJ; Thu, 16 Jan 2020 10:51:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7B7AF1E35A; Thu, 16 Jan 2020 10:51:32 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GApWcu053803; Thu, 16 Jan 2020 10:51:32 GMT (envelope-from kib@FreeBSD.org) Received: (from kib@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GApWrj053801; Thu, 16 Jan 2020 10:51:32 GMT (envelope-from kib@FreeBSD.org) Message-Id: <202001161051.00GApWrj053801@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org using -f From: Konstantin Belousov Date: Thu, 16 Jan 2020 10:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356787 - stable/12/libexec/rtld-elf X-SVN-Group: stable-12 X-SVN-Commit-Author: kib X-SVN-Commit-Paths: stable/12/libexec/rtld-elf X-SVN-Commit-Revision: 356787 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 10:51:32 -0000 Author: kib Date: Thu Jan 16 10:51:32 2020 New Revision: 356787 URL: https://svnweb.freebsd.org/changeset/base/356787 Log: MFC r356548, r356630: Resolve relative argv0 for direct exec mode to absolute path for AT_EXECPATH. Modified: stable/12/libexec/rtld-elf/rtld.c Directory Properties: stable/12/ (props changed) Modified: stable/12/libexec/rtld-elf/rtld.c ============================================================================== --- stable/12/libexec/rtld-elf/rtld.c Thu Jan 16 10:44:02 2020 (r356786) +++ stable/12/libexec/rtld-elf/rtld.c Thu Jan 16 10:51:32 2020 (r356787) @@ -5482,9 +5482,12 @@ static int open_binary_fd(const char *argv0, bool search_in_path, const char **binpath_res) { - char *pathenv, *pe, *binpath; + char *binpath, *pathenv, *pe, *res1; + const char *res; int fd; + binpath = NULL; + res = NULL; if (search_in_path && strchr(argv0, '/') == NULL) { binpath = xmalloc(PATH_MAX); pathenv = getenv("PATH"); @@ -5509,21 +5512,31 @@ open_binary_fd(const char *argv0, bool search_in_path, continue; fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY); if (fd != -1 || errno != ENOENT) { - *binpath_res = binpath; + res = binpath; break; } } free(pathenv); } else { fd = open(argv0, O_RDONLY | O_CLOEXEC | O_VERIFY); - *binpath_res = argv0; + res = argv0; } - /* XXXKIB Use getcwd() to resolve relative binpath to absolute. */ if (fd == -1) { _rtld_error("Cannot open %s: %s", argv0, rtld_strerror(errno)); rtld_die(); } + if (res != NULL && res[0] != '/') { + res1 = xmalloc(PATH_MAX); + if (realpath(res, res1) != NULL) { + if (res != argv0) + free(__DECONST(char *, res)); + res = res1; + } else { + free(res1); + } + } + *binpath_res = res; return (fd); } From owner-svn-src-all@freebsd.org Thu Jan 16 11:33:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 820BA233AE5; Thu, 16 Jan 2020 11:33:16 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z2BN2tbxz3N90; Thu, 16 Jan 2020 11:33:16 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4572E1EC3D; Thu, 16 Jan 2020 11:33:16 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GBXGmu081254; Thu, 16 Jan 2020 11:33:16 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GBXFB4081251; Thu, 16 Jan 2020 11:33:15 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202001161133.00GBXFB4081251@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Thu, 16 Jan 2020 11:33:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356788 - in head: share/man/man4 sys/modules sys/powerpc/conf X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: in head: share/man/man4 sys/modules sys/powerpc/conf X-SVN-Commit-Revision: 356788 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 11:33:16 -0000 Author: luporl Date: Thu Jan 16 11:33:15 2020 New Revision: 356788 URL: https://svnweb.freebsd.org/changeset/base/356788 Log: [PowerPC64] Enable virtio drivers This enables virtio modules on PowerPC* target. On PowerPC64, drivers are also kernel builtin. QEMU currently needs to be patched to in order to work on LE hosts due to known issue affecting pre-1.0 (legacy) virtio drivers. The patch was submitted to QEMU mail list by @afscoelho_gmail.com, available at https://lists.nongnu.org/archive/html/qemu-devel/2020-01/msg01496.html Submitted by: Alfredo Dal'Ava Junior Reviewed by: luporl Differential Revision: https://reviews.freebsd.org/D22833 Modified: head/share/man/man4/Makefile head/sys/modules/Makefile head/sys/powerpc/conf/GENERIC64 Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu Jan 16 10:51:32 2020 (r356787) +++ head/share/man/man4/Makefile Thu Jan 16 11:33:15 2020 (r356788) @@ -868,8 +868,16 @@ _nvram2env.4= nvram2env.4 .endif .if ${MACHINE_CPUARCH} == "powerpc" +_if_vtnet.4= if_vtnet.4 _nvd.4= nvd.4 _nvme.4= nvme.4 +_virtio.4= virtio.4 +_virtio_balloon.4=virtio_balloon.4 +_virtio_blk.4= virtio_blk.4 +_virtio_console.4=virtio_console.4 +_virtio_random.4= virtio_random.4 +_virtio_scsi.4= virtio_scsi.4 +_vtnet.4= vtnet.4 .endif .if empty(MAN_ARCH) Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Thu Jan 16 10:51:32 2020 (r356787) +++ head/sys/modules/Makefile Thu Jan 16 11:33:15 2020 (r356788) @@ -761,6 +761,7 @@ _nvd= nvd _nvme= nvme _pccard= pccard _wi= wi +_virtio= virtio .endif .if ${MACHINE_ARCH} == "powerpc64" Modified: head/sys/powerpc/conf/GENERIC64 ============================================================================== --- head/sys/powerpc/conf/GENERIC64 Thu Jan 16 10:51:32 2020 (r356787) +++ head/sys/powerpc/conf/GENERIC64 Thu Jan 16 11:33:15 2020 (r356788) @@ -256,3 +256,12 @@ device netmap # netmap(4) support options EVDEV_SUPPORT # evdev support in legacy drivers device evdev # input event device support device uinput # install /dev/uinput cdev + +# VirtIO support +device virtio # Generic VirtIO bus (required) +device virtio_pci # VirtIO PCI device +device vtnet # VirtIO Ethernet device +device virtio_blk # VirtIO Block device +device virtio_scsi # VirtIO SCSI device +device virtio_balloon # VirtIO Memory Balloon device + From owner-svn-src-all@freebsd.org Thu Jan 16 14:14:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 154FC1E8B3B; Thu, 16 Jan 2020 14:14:51 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z5mp6qSYz43VJ; Thu, 16 Jan 2020 14:14:50 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E269F20AD4; Thu, 16 Jan 2020 14:14:50 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GEEoNr078528; Thu, 16 Jan 2020 14:14:50 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GEEoeh078526; Thu, 16 Jan 2020 14:14:50 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <202001161414.00GEEoeh078526@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Thu, 16 Jan 2020 14:14:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356789 - in head/contrib/llvm-project/llvm/lib: MC Object Target/Mips X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: in head/contrib/llvm-project/llvm/lib: MC Object Target/Mips X-SVN-Commit-Revision: 356789 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 14:14:51 -0000 Author: arichardson Date: Thu Jan 16 14:14:50 2020 New Revision: 356789 URL: https://svnweb.freebsd.org/changeset/base/356789 Log: Merge commit 894f742acb from llvm git (by me): [MIPS][ELF] Use PC-relative relocations in .eh_frame when possible When compiling position-independent executables, we now use DW_EH_PE_pcrel | DW_EH_PE_sdata4. However, the MIPS ABI does not define a 64-bit PC-relative ELF relocation so we cannot use sdata8 for the large code model case. When using the large code model, we fall back to the previous behaviour of generating absolute relocations. With this change clang-generated .o files can be linked by LLD without having to pass -Wl,-z,notext (which creates text relocations). This is simpler than the approach used by ld.bfd, which rewrites the .eh_frame section to convert absolute relocations into relative references. I saw in D13104 that apparently ld.bfd did not accept pc-relative relocations for MIPS ouput at some point. However, I also checked that recent ld.bfd can process the clang-generated .o files so this no longer seems true. Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D72228 Merge commit 8e8ccf47 from llvm git (by me) [MIPS] Don't emit R_(MICRO)MIPS_JALR relocations against data symbols The R_(MICRO)MIPS_JALR optimization only works when used against functions. Using the relocation against a data symbol (e.g. function pointer) will cause some linkers that don't ignore the hint in this case (e.g. LLD prior to commit 5bab291) to generate a relative branch to the data symbol which crashes at run time. Before this patch, LLVM was erroneously emitting these relocations against local-dynamic TLS function pointers and global function pointers with internal visibility. Reviewers: atanasyan, jrtc27, vstefanovic Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D72571 These two changes should allow using lld for MIPS64 (and maybe also MIPS32) by default. The second commit is not strictly necessary for clang+lld since LLD9 will not perform the R_MIPS_JALR optimization (it was only added for 10) but it is probably required in order to use recent ld.bfd. Reviewed By: dim, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23203 Modified: head/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp head/contrib/llvm-project/llvm/lib/Object/RelocationResolver.cpp head/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp Modified: head/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp ============================================================================== --- head/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp Thu Jan 16 11:33:15 2020 (r356788) +++ head/contrib/llvm-project/llvm/lib/MC/MCObjectFileInfo.cpp Thu Jan 16 14:14:50 2020 (r356789) @@ -303,9 +303,14 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(const T case Triple::mipsel: case Triple::mips64: case Triple::mips64el: - FDECFIEncoding = Ctx->getAsmInfo()->getCodePointerSize() == 4 - ? dwarf::DW_EH_PE_sdata4 - : dwarf::DW_EH_PE_sdata8; + // We cannot use DW_EH_PE_sdata8 for the large PositionIndependent case + // since there is no R_MIPS_PC64 relocation (only a 32-bit version). + if (PositionIndependent && !Large) + FDECFIEncoding = dwarf::DW_EH_PE_pcrel | dwarf::DW_EH_PE_sdata4; + else + FDECFIEncoding = Ctx->getAsmInfo()->getCodePointerSize() == 4 + ? dwarf::DW_EH_PE_sdata4 + : dwarf::DW_EH_PE_sdata8; break; case Triple::ppc64: case Triple::ppc64le: Modified: head/contrib/llvm-project/llvm/lib/Object/RelocationResolver.cpp ============================================================================== --- head/contrib/llvm-project/llvm/lib/Object/RelocationResolver.cpp Thu Jan 16 11:33:15 2020 (r356788) +++ head/contrib/llvm-project/llvm/lib/Object/RelocationResolver.cpp Thu Jan 16 14:14:50 2020 (r356789) @@ -103,6 +103,7 @@ static bool supportsMips64(uint64_t Type) { case ELF::R_MIPS_32: case ELF::R_MIPS_64: case ELF::R_MIPS_TLS_DTPREL64: + case ELF::R_MIPS_PC32: return true; default: return false; @@ -117,6 +118,8 @@ static uint64_t resolveMips64(RelocationRef R, uint64_ return S + getELFAddend(R); case ELF::R_MIPS_TLS_DTPREL64: return S + getELFAddend(R) - 0x8000; + case ELF::R_MIPS_PC32: + return S + getELFAddend(R) - R.getOffset(); default: llvm_unreachable("Invalid relocation type"); } Modified: head/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp ============================================================================== --- head/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp Thu Jan 16 11:33:15 2020 (r356788) +++ head/contrib/llvm-project/llvm/lib/Target/Mips/MipsISelLowering.cpp Thu Jan 16 14:14:50 2020 (r356789) @@ -2995,6 +2995,14 @@ void MipsTargetLowering::AdjustInstrPostInstrSelection StringRef Sym; if (const GlobalAddressSDNode *G = dyn_cast_or_null(TargetAddr)) { + // We must not emit the R_MIPS_JALR relocation against data symbols + // since this will cause run-time crashes if the linker replaces the + // call instruction with a relative branch to the data symbol. + if (!isa(G->getGlobal())) { + LLVM_DEBUG(dbgs() << "Not adding R_MIPS_JALR against data symbol " + << G->getGlobal()->getName() << "\n"); + return; + } Sym = G->getGlobal()->getName(); } else if (const ExternalSymbolSDNode *ES = @@ -3007,6 +3015,7 @@ void MipsTargetLowering::AdjustInstrPostInstrSelection MachineFunction *MF = MI.getParent()->getParent(); MCSymbol *S = MF->getContext().getOrCreateSymbol(Sym); + LLVM_DEBUG(dbgs() << "Adding R_MIPS_JALR against " << Sym << "\n"); MI.addOperand(MachineOperand::CreateMCSymbol(S, MipsII::MO_JALR)); } } From owner-svn-src-all@freebsd.org Thu Jan 16 14:14:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 505C01E8B8D; Thu, 16 Jan 2020 14:14:56 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z5mw0qmlz43bT; Thu, 16 Jan 2020 14:14:56 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CF5FB20AD5; Thu, 16 Jan 2020 14:14:55 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GEEt88078582; Thu, 16 Jan 2020 14:14:55 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GEEtIm078581; Thu, 16 Jan 2020 14:14:55 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <202001161414.00GEEtIm078581@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Thu, 16 Jan 2020 14:14:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356790 - head/usr.bin/mkimg X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: head/usr.bin/mkimg X-SVN-Commit-Revision: 356790 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 14:14:56 -0000 Author: arichardson Date: Thu Jan 16 14:14:55 2020 New Revision: 356790 URL: https://svnweb.freebsd.org/changeset/base/356790 Log: Allow bootstrapping mkimg on macOS/Linux On these systems the (u)int64_t typedefs will not be implicitly defined by the previous includes, so include in the header that uses uint64_t. Reviewed By: brooks Differential Revision: https://reviews.freebsd.org/D23202 Modified: head/usr.bin/mkimg/image.h Modified: head/usr.bin/mkimg/image.h ============================================================================== --- head/usr.bin/mkimg/image.h Thu Jan 16 14:14:50 2020 (r356789) +++ head/usr.bin/mkimg/image.h Thu Jan 16 14:14:55 2020 (r356790) @@ -29,6 +29,8 @@ #ifndef _MKIMG_IMAGE_H_ #define _MKIMG_IMAGE_H_ +#include + typedef int64_t lba_t; int image_copyin(lba_t blk, int fd, uint64_t *sizep); From owner-svn-src-all@freebsd.org Thu Jan 16 14:15:01 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59EFA1E8BDB; Thu, 16 Jan 2020 14:15:01 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z5n10j3Mz43gT; Thu, 16 Jan 2020 14:15:01 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D24020AD6; Thu, 16 Jan 2020 14:15:01 +0000 (UTC) (envelope-from arichardson@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GEF0nb078656; Thu, 16 Jan 2020 14:15:00 GMT (envelope-from arichardson@FreeBSD.org) Received: (from arichardson@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GEF0Qq078653; Thu, 16 Jan 2020 14:15:00 GMT (envelope-from arichardson@FreeBSD.org) Message-Id: <202001161415.00GEF0Qq078653@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: arichardson set sender to arichardson@FreeBSD.org using -f From: Alex Richardson Date: Thu, 16 Jan 2020 14:15:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356791 - head/bin/cat X-SVN-Group: head X-SVN-Commit-Author: arichardson X-SVN-Commit-Paths: head/bin/cat X-SVN-Commit-Revision: 356791 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 14:15:01 -0000 Author: arichardson Date: Thu Jan 16 14:15:00 2020 New Revision: 356791 URL: https://svnweb.freebsd.org/changeset/base/356791 Log: Allow building bin/cat on non-FreeBSD systems `cat -l` is needed during the installworld phase and other system's cat don't support that flag. To avoid portability issues when compiling on Linux/macOS (such as the the direct access to &fp->_mbstate), we disable the entire multibyte support when building as a boostrap tool. Reviewed By: brooks, emaste Differential Revision: https://reviews.freebsd.org/D13939 Modified: head/bin/cat/Makefile head/bin/cat/cat.c Modified: head/bin/cat/Makefile ============================================================================== --- head/bin/cat/Makefile Thu Jan 16 14:14:55 2020 (r356790) +++ head/bin/cat/Makefile Thu Jan 16 14:15:00 2020 (r356791) @@ -6,6 +6,12 @@ PACKAGE=runtime PROG= cat +.ifdef BOOTSTRAPPING +# For the bootstrap cat we disable all wide char support to allow building +# on Linux/macOS +CFLAGS+=-DBOOTSTRAP_CAT +.endif + HAS_TESTS= SUBDIR.${MK_TESTS}+= tests Modified: head/bin/cat/cat.c ============================================================================== --- head/bin/cat/cat.c Thu Jan 16 14:14:55 2020 (r356790) +++ head/bin/cat/cat.c Thu Jan 16 14:15:00 2020 (r356791) @@ -96,6 +96,20 @@ static int udom_open(const char *path, int flags); */ #define BUFSIZE_SMALL (MAXPHYS) + +/* + * For the bootstrapped cat binary (needed for locked appending to METALOG), we + * disable all flags except -l and -u to avoid non-portable function calls. + * In the future we may instead want to write a small portable bootstrap tool + * that locks the output file before writing to it. However, for now + * bootstrapping cat without multibyte support is the simpler solution. + */ +#ifdef BOOTSTRAP_CAT +#define SUPPORTED_FLAGS "lu" +#else +#define SUPPORTED_FLAGS "belnstuv" +#endif + int main(int argc, char *argv[]) { @@ -104,7 +118,7 @@ main(int argc, char *argv[]) setlocale(LC_CTYPE, ""); - while ((ch = getopt(argc, argv, "belnstuv")) != -1) + while ((ch = getopt(argc, argv, SUPPORTED_FLAGS)) != -1) switch (ch) { case 'b': bflag = nflag = 1; /* -b implies -n */ @@ -158,7 +172,7 @@ static void usage(void) { - fprintf(stderr, "usage: cat [-belnstuv] [file ...]\n"); + fprintf(stderr, "usage: cat [-" SUPPORTED_FLAGS "] [file ...]\n"); exit(1); /* NOTREACHED */ } @@ -187,6 +201,7 @@ scanfiles(char *argv[], int cooked) if (fd < 0) { warn("%s", path); rval = 1; +#ifndef BOOTSTRAP_CAT } else if (cooked) { if (fd == STDIN_FILENO) cook_cat(stdin); @@ -195,6 +210,7 @@ scanfiles(char *argv[], int cooked) cook_cat(fp); fclose(fp); } +#endif } else { raw_cat(fd); if (fd != STDIN_FILENO) @@ -206,6 +222,7 @@ scanfiles(char *argv[], int cooked) } } +#ifndef BOOTSTRAP_CAT static void cook_cat(FILE *fp) { @@ -295,6 +312,7 @@ ilseq: if (ferror(stdout)) err(1, "stdout"); } +#endif /* BOOTSTRAP_CAT */ static void raw_cat(int rfd) From owner-svn-src-all@freebsd.org Thu Jan 16 15:07:52 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E8B881EB67D; Thu, 16 Jan 2020 15:07:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z6y05w0wz4824; Thu, 16 Jan 2020 15:07:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id C13C221507; Thu, 16 Jan 2020 15:07:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GF7qvA008871; Thu, 16 Jan 2020 15:07:52 GMT (envelope-from gjb@FreeBSD.org) Received: (from gjb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GF7qTc008870; Thu, 16 Jan 2020 15:07:52 GMT (envelope-from gjb@FreeBSD.org) Message-Id: <202001161507.00GF7qTc008870@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org using -f From: Glen Barber Date: Thu, 16 Jan 2020 15:07:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356792 - head/share/man/man7 X-SVN-Group: head X-SVN-Commit-Author: gjb X-SVN-Commit-Paths: head/share/man/man7 X-SVN-Commit-Revision: 356792 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 15:07:53 -0000 Author: gjb Date: Thu Jan 16 15:07:52 2020 New Revision: 356792 URL: https://svnweb.freebsd.org/changeset/base/356792 Log: Update release(7) to note OSRELEASE is only relevant when the 'install' target is invoked. While here, bump the sample output version name, and explicitly add the 'obj' target to avoid polluting the src checkout. Submitted by: Trond Endrestol PR: 243287 (related) MFC after: 3 days Sponsored by: Rubicon Communications, LLC (netgate.com) Modified: head/share/man/man7/release.7 Modified: head/share/man/man7/release.7 ============================================================================== --- head/share/man/man7/release.7 Thu Jan 16 14:15:00 2020 (r356791) +++ head/share/man/man7/release.7 Thu Jan 16 15:07:52 2020 (r356792) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 28, 2018 +.Dd January 16, 2020 .Dt RELEASE 7 .Os .Sh NAME @@ -570,8 +570,10 @@ target invoked by Optional variables: .Bl -tag -width ".Ev TARGET_ARCH" .It Ev OSRELEASE -Optional base name for generated media images -.Pq e.g., FreeBSD-9.0-RC2-amd64 . +Optional base name for generated media images when invoking the +.Cm install +target +.Pq e.g., FreeBSD-12.1-RELEASE-amd64 . Defaults to the output of .Ic `uname -s`-`uname -r`-`uname -p` within the chroot. @@ -659,6 +661,7 @@ svn co svn://svn.freebsd.org/base/head src cd src make buildworld buildkernel cd release +make obj make release make install DESTDIR=/var/freebsd-snapshot .Ed From owner-svn-src-all@freebsd.org Thu Jan 16 15:33:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2343D1EC827; Thu, 16 Jan 2020 15:33:55 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z7X304R2z4BN1; Thu, 16 Jan 2020 15:33:55 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F15F521AAF; Thu, 16 Jan 2020 15:33:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GFXs2I027435; Thu, 16 Jan 2020 15:33:54 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GFXs3O027434; Thu, 16 Jan 2020 15:33:54 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001161533.00GFXs3O027434@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 16 Jan 2020 15:33:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356793 - stable/12/sys/compat/linuxkpi/common/include/linux X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/compat/linuxkpi/common/include/linux X-SVN-Commit-Revision: 356793 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 15:33:55 -0000 Author: markj Date: Thu Jan 16 15:33:54 2020 New Revision: 356793 URL: https://svnweb.freebsd.org/changeset/base/356793 Log: MFC r356281: Remove set_page_dirty_lock(). Modified: stable/12/sys/compat/linuxkpi/common/include/linux/mm.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linuxkpi/common/include/linux/mm.h ============================================================================== --- stable/12/sys/compat/linuxkpi/common/include/linux/mm.h Thu Jan 16 15:07:52 2020 (r356792) +++ stable/12/sys/compat/linuxkpi/common/include/linux/mm.h Thu Jan 16 15:33:54 2020 (r356793) @@ -211,14 +211,6 @@ set_page_dirty(struct vm_page *page) } static inline void -set_page_dirty_lock(struct vm_page *page) -{ - vm_page_lock(page); - vm_page_dirty(page); - vm_page_unlock(page); -} - -static inline void mark_page_accessed(struct vm_page *page) { vm_page_reference(page); From owner-svn-src-all@freebsd.org Thu Jan 16 16:00:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F38AE1ED4AB; Thu, 16 Jan 2020 16:00:28 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z86h6H4Tz4Cq0; Thu, 16 Jan 2020 16:00:28 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D2A1621E5F; Thu, 16 Jan 2020 16:00:28 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GG0STJ040031; Thu, 16 Jan 2020 16:00:28 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GG0SwB040030; Thu, 16 Jan 2020 16:00:28 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001161600.00GG0SwB040030@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 16 Jan 2020 16:00:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356794 - stable/12/sys/compat/linprocfs X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: stable/12/sys/compat/linprocfs X-SVN-Commit-Revision: 356794 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 16:00:29 -0000 Author: markj Date: Thu Jan 16 16:00:28 2020 New Revision: 356794 URL: https://svnweb.freebsd.org/changeset/base/356794 Log: MFC r356494: PR: 240992 Modified: stable/12/sys/compat/linprocfs/linprocfs.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/compat/linprocfs/linprocfs.c ============================================================================== --- stable/12/sys/compat/linprocfs/linprocfs.c Thu Jan 16 15:33:54 2020 (r356793) +++ stable/12/sys/compat/linprocfs/linprocfs.c Thu Jan 16 16:00:28 2020 (r356794) @@ -1073,7 +1073,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) vm_map_entry_t entry, tmp_entry; vm_object_t obj, tobj, lobj; vm_offset_t e_start, e_end; - vm_ooffset_t off = 0; + vm_ooffset_t off; vm_prot_t e_prot; unsigned int last_timestamp; char *name = "", *freename = NULL; @@ -1083,6 +1083,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) int error; struct vnode *vp; struct vattr vat; + bool private; PROC_LOCK(p); error = p_candebug(td, p); @@ -1114,17 +1115,21 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) e_start = entry->start; e_end = entry->end; obj = entry->object.vm_object; - for (lobj = tobj = obj; tobj; tobj = tobj->backing_object) { + off = entry->offset; + for (lobj = tobj = obj; tobj != NULL; + lobj = tobj, tobj = tobj->backing_object) { VM_OBJECT_RLOCK(tobj); + off += lobj->backing_object_offset; if (lobj != obj) VM_OBJECT_RUNLOCK(lobj); - lobj = tobj; } + private = (entry->eflags & MAP_ENTRY_COW) != 0 || obj == NULL || + ((obj->type == OBJT_DEFAULT || obj->type == OBJT_SWAP) && + (obj->flags & OBJ_NOSPLIT) == 0); last_timestamp = map->timestamp; vm_map_unlock_read(map); ino = 0; if (lobj) { - off = IDX_TO_OFF(lobj->size); vp = vm_object_vnode(lobj); if (vp != NULL) vref(vp); @@ -1161,7 +1166,7 @@ linprocfs_doprocmaps(PFS_FILL_ARGS) (e_prot & VM_PROT_READ)?"r":"-", (e_prot & VM_PROT_WRITE)?"w":"-", (e_prot & VM_PROT_EXECUTE)?"x":"-", - "p", + private ? "p" : "s", (u_long)off, 0, 0, From owner-svn-src-all@freebsd.org Thu Jan 16 16:01:04 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EEE051ED580; Thu, 16 Jan 2020 16:01:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z87N65k1z4D0G; Thu, 16 Jan 2020 16:01:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CCA7621EA0; Thu, 16 Jan 2020 16:01:04 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GG14wM044034; Thu, 16 Jan 2020 16:01:04 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GG14R9044032; Thu, 16 Jan 2020 16:01:04 GMT (envelope-from markj@FreeBSD.org) Message-Id: <202001161601.00GG14R9044032@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Thu, 16 Jan 2020 16:01:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356795 - in stable/12: sbin/ifconfig sys/net X-SVN-Group: stable-12 X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in stable/12: sbin/ifconfig sys/net X-SVN-Commit-Revision: 356795 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 16:01:05 -0000 Author: markj Date: Thu Jan 16 16:01:03 2020 New Revision: 356795 URL: https://svnweb.freebsd.org/changeset/base/356795 Log: MFC r356554: lagg: Further cleanup of the rr_limit option. Modified: stable/12/sbin/ifconfig/iflagg.c stable/12/sys/net/if_lagg.c stable/12/sys/net/if_lagg.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/ifconfig/iflagg.c ============================================================================== --- stable/12/sbin/ifconfig/iflagg.c Thu Jan 16 16:00:28 2020 (r356794) +++ stable/12/sbin/ifconfig/iflagg.c Thu Jan 16 16:01:03 2020 (r356795) @@ -114,10 +114,13 @@ setlaggrr_limit(const char *val, int d, int s, const s bzero(&ro, sizeof(ro)); strlcpy(ro.ro_ifname, name, sizeof(ro.ro_ifname)); - ro.ro_bkt = (int)strtol(val, NULL, 10); + ro.ro_opts = LAGG_OPT_RR_LIMIT; + ro.ro_bkt = (uint32_t)strtoul(val, NULL, 10); + if (ro.ro_bkt == 0) + errx(1, "Invalid round-robin stride: %s", val); if (ioctl(s, SIOCSLAGGOPTS, &ro) != 0) - err(1, "SIOCSLAGG"); + err(1, "SIOCSLAGGOPTS"); } static void Modified: stable/12/sys/net/if_lagg.c ============================================================================== --- stable/12/sys/net/if_lagg.c Thu Jan 16 16:00:28 2020 (r356794) +++ stable/12/sys/net/if_lagg.c Thu Jan 16 16:01:03 2020 (r356795) @@ -1231,21 +1231,18 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data /* * The stride option was added without defining a corresponding - * LAGG_OPT flag, so we must handle it before processing any - * remaining options. + * LAGG_OPT flag, so handle a non-zero value before checking + * anything else to preserve compatibility. */ LAGG_XLOCK(sc); - if (ro->ro_bkt != 0) { + if (ro->ro_opts == 0 && ro->ro_bkt != 0) { if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN) { LAGG_XUNLOCK(sc); error = EINVAL; break; } sc->sc_stride = ro->ro_bkt; - } else { - sc->sc_stride = 0; } - if (ro->ro_opts == 0) { LAGG_XUNLOCK(sc); break; @@ -1261,6 +1258,7 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data case LAGG_OPT_USE_FLOWID: case -LAGG_OPT_USE_FLOWID: case LAGG_OPT_FLOWIDSHIFT: + case LAGG_OPT_RR_LIMIT: valid = 1; lacp = 0; break; @@ -1286,14 +1284,23 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data LAGG_XUNLOCK(sc); break; /* Return from SIOCSLAGGOPTS. */ } + /* * Store new options into sc->sc_opts except for - * FLOWIDSHIFT and LACP options. + * FLOWIDSHIFT, RR and LACP options. */ if (lacp == 0) { if (ro->ro_opts == LAGG_OPT_FLOWIDSHIFT) sc->flowid_shift = ro->ro_flowid_shift; - else if (ro->ro_opts > 0) + else if (ro->ro_opts == LAGG_OPT_RR_LIMIT) { + if (sc->sc_proto != LAGG_PROTO_ROUNDROBIN || + ro->ro_bkt == 0) { + error = EINVAL; + LAGG_XUNLOCK(sc); + break; + } + sc->sc_stride = ro->ro_bkt; + } else if (ro->ro_opts > 0) sc->sc_opts |= ro->ro_opts; else sc->sc_opts &= ~ro->ro_opts; @@ -1915,6 +1922,7 @@ static void lagg_rr_attach(struct lagg_softc *sc) { sc->sc_seq = 0; + sc->sc_stride = 1; } static int @@ -1924,9 +1932,7 @@ lagg_rr_start(struct lagg_softc *sc, struct mbuf *m) uint32_t p; p = atomic_fetchadd_32(&sc->sc_seq, 1); - if (sc->sc_stride > 0) - p /= sc->sc_stride; - + p /= sc->sc_stride; p %= sc->sc_count; lp = CK_SLIST_FIRST(&sc->sc_ports); Modified: stable/12/sys/net/if_lagg.h ============================================================================== --- stable/12/sys/net/if_lagg.h Thu Jan 16 16:00:28 2020 (r356794) +++ stable/12/sys/net/if_lagg.h Thu Jan 16 16:01:03 2020 (r356795) @@ -63,11 +63,11 @@ struct lagg_protos { #define LAGG_PROTO_DEFAULT LAGG_PROTO_FAILOVER #define LAGG_PROTOS { \ - { "failover", LAGG_PROTO_FAILOVER }, \ + { "failover", LAGG_PROTO_FAILOVER }, \ { "lacp", LAGG_PROTO_LACP }, \ { "loadbalance", LAGG_PROTO_LOADBALANCE }, \ - { "roundrobin", LAGG_PROTO_ROUNDROBIN }, \ - { "broadcast", LAGG_PROTO_BROADCAST }, \ + { "roundrobin", LAGG_PROTO_ROUNDROBIN }, \ + { "broadcast", LAGG_PROTO_BROADCAST }, \ { "none", LAGG_PROTO_NONE }, \ { "default", LAGG_PROTO_DEFAULT } \ } @@ -148,6 +148,7 @@ struct lagg_reqopts { #define LAGG_OPT_LACP_TXTEST 0x20 /* LACP debug: txtest */ #define LAGG_OPT_LACP_RXTEST 0x40 /* LACP debug: rxtest */ #define LAGG_OPT_LACP_TIMEOUT 0x80 /* LACP timeout */ +#define LAGG_OPT_RR_LIMIT 0x100 /* RR stride */ u_int ro_count; /* number of ports */ u_int ro_active; /* active port count */ u_int ro_flapping; /* number of flapping */ From owner-svn-src-all@freebsd.org Thu Jan 16 17:15:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C0DE31EF8DB; Thu, 16 Jan 2020 17:15:06 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47z9mp4jndz4JgC; Thu, 16 Jan 2020 17:15:06 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D1C622E44; Thu, 16 Jan 2020 17:15:06 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GHF6YR087547; Thu, 16 Jan 2020 17:15:06 GMT (envelope-from tuexen@FreeBSD.org) Received: (from tuexen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GHF62g087546; Thu, 16 Jan 2020 17:15:06 GMT (envelope-from tuexen@FreeBSD.org) Message-Id: <202001161715.00GHF62g087546@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tuexen set sender to tuexen@FreeBSD.org using -f From: Michael Tuexen Date: Thu, 16 Jan 2020 17:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356796 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: tuexen X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 356796 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 17:15:06 -0000 Author: tuexen Date: Thu Jan 16 17:15:06 2020 New Revision: 356796 URL: https://svnweb.freebsd.org/changeset/base/356796 Log: Remove debug code not needed anymore. Submitted by: Richard Scheffenegger Reviewed by: tuexen@ MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D23208 Modified: head/sys/netinet/tcp_sack.c Modified: head/sys/netinet/tcp_sack.c ============================================================================== --- head/sys/netinet/tcp_sack.c Thu Jan 16 16:01:03 2020 (r356795) +++ head/sys/netinet/tcp_sack.c Thu Jan 16 17:15:06 2020 (r356796) @@ -165,11 +165,6 @@ tcp_update_dsack_list(struct tcpcb *tp, tcp_seq rcv_st KASSERT(SEQ_LT(rcv_start, rcv_end), ("rcv_start < rcv_end")); - if (tp->t_inpcb->inp_socket->so_options & SO_DEBUG) { - log(LOG_DEBUG, "\nDSACK update: %d..%d, rcv_nxt: %u\n", - rcv_start, rcv_end, tp->rcv_nxt); - } - if (SEQ_LT(rcv_end, tp->rcv_nxt) || ((rcv_end == tp->rcv_nxt) && (tp->rcv_numsacks > 0 ) && From owner-svn-src-all@freebsd.org Thu Jan 16 17:27:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 182401EFF3D; Thu, 16 Jan 2020 17:27:09 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zB2h6tRqz4Kgn; Thu, 16 Jan 2020 17:27:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E7654230B3; Thu, 16 Jan 2020 17:27:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GHR8Ls093568; Thu, 16 Jan 2020 17:27:08 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GHR81m093567; Thu, 16 Jan 2020 17:27:08 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001161727.00GHR81m093567@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Thu, 16 Jan 2020 17:27:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356797 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356797 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 17:27:09 -0000 Author: emaste Date: Thu Jan 16 17:27:08 2020 New Revision: 356797 URL: https://svnweb.freebsd.org/changeset/base/356797 Log: pkgbase: move profiling _p.a libs into -development packages Profiling library archives are part of the development environment; they don't need to be in separate -profile packages. (In fact we can probably just eliminate the _p.a archives assuming that profiling will be done using hwpmc etc., but that is a change for later.) Discussed with: bapt, manu Sponsored by: The FreeBSD Foundation Modified: head/share/mk/bsd.lib.mk Modified: head/share/mk/bsd.lib.mk ============================================================================== --- head/share/mk/bsd.lib.mk Thu Jan 16 17:15:06 2020 (r356796) +++ head/share/mk/bsd.lib.mk Thu Jan 16 17:27:08 2020 (r356797) @@ -437,7 +437,7 @@ _libinstall: ${_INSTALLFLAGS} lib${LIB_PRIVATE}${LIB}.a ${DESTDIR}${_LIBDIR}/ .endif .if ${MK_PROFILE} != "no" && defined(LIB) && !empty(LIB) - ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},profile} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},development} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ ${_INSTALLFLAGS} lib${LIB_PRIVATE}${LIB}_p.a ${DESTDIR}${_LIBDIR}/ .endif .if defined(SHLIB_NAME) From owner-svn-src-all@freebsd.org Thu Jan 16 17:27:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0DD631EFFA2; Thu, 16 Jan 2020 17:27:26 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zB316RkWz4Kp6; Thu, 16 Jan 2020 17:27:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-7.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 0F547390F; Thu, 16 Jan 2020 17:27:24 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Gleb Smirnoff , Jeff Roberson Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115223805.GT39529@FreeBSD.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: Date: Thu, 16 Jan 2020 09:27:16 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <20200115223805.GT39529@FreeBSD.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 17:27:26 -0000 On 1/15/20 2:38 PM, Gleb Smirnoff wrote: > On Wed, Jan 15, 2020 at 09:44:53AM -1000, Jeff Roberson wrote: > J> On Wed, 15 Jan 2020, Gleb Smirnoff wrote: > J> > J> > Author: glebius > J> > Date: Wed Jan 15 06:05:20 2020 > J> > New Revision: 356755 > J> > URL: https://svnweb.freebsd.org/changeset/base/356755 > J> > > J> > Log: > J> > Introduce NET_EPOCH_CALL() macro and use it everywhere where we free > J> > data based on the network epoch. The macro reverses the argument > J> > order of epoch_call(9) - first function, then its argument. NFC > J> > J> Is there some practical impact of changing the argument order or does it > J> just seem more natural to you? > > It is just more natural. I'm suggesting to change prototype of epoch_call() > to the same order as well. +1 for fn, arg. -- John Baldwin From owner-svn-src-all@freebsd.org Thu Jan 16 17:34:51 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 719D31F0280; Thu, 16 Jan 2020 17:34:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zBCb2N1jz4LRs; Thu, 16 Jan 2020 17:34:51 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-7.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id D1DFD3A9E; Thu, 16 Jan 2020 17:34:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r356797 - head/share/mk To: Ed Maste , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202001161727.00GHR81m093567@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <6489e1f1-561c-f1e8-babf-ed7900496488@FreeBSD.org> Date: Thu, 16 Jan 2020 09:34:46 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <202001161727.00GHR81m093567@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 17:34:51 -0000 On 1/16/20 9:27 AM, Ed Maste wrote: > Author: emaste > Date: Thu Jan 16 17:27:08 2020 > New Revision: 356797 > URL: https://svnweb.freebsd.org/changeset/base/356797 > > Log: > pkgbase: move profiling _p.a libs into -development packages > > Profiling library archives are part of the development environment; they > don't need to be in separate -profile packages. > > (In fact we can probably just eliminate the _p.a archives assuming that > profiling will be done using hwpmc etc., but that is a change for later.) I would support having MK_PROFILE default to off for 13. WITHOUT_PROFILE=yes is something I've been adding to make.conf (or src.conf) for 2 decades. The mcount-based stuff does not seem compelling compared to sampling via hardware counters. It also requires MD code that doesn't even work on all platforms (e.g. I think the mcount bits for MIPS only work for o32 and are completely broken for n64). Do we know if any other systems still ship -pg libraries as an option? Also, is anyone still using them? -- John Baldwin From owner-svn-src-all@freebsd.org Thu Jan 16 18:44:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C6C2C1F18C6; Thu, 16 Jan 2020 18:44:50 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from shxd.cx (mail.shxd.cx [64.201.244.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zCmL4pR1z4QSj; Thu, 16 Jan 2020 18:44:50 +0000 (UTC) (envelope-from devin@shxd.cx) Received: from [76.77.180.168] (port=59612 helo=devins-mbp.lan) by shxd.cx with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1is8Ey-000O20-CH; Thu, 16 Jan 2020 08:43:28 -0800 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts From: Devin Teske In-Reply-To: <81104b94-8c89-7eec-720f-0aab2201eb3f@FreeBSD.org> Date: Thu, 16 Jan 2020 10:44:47 -0800 Cc: Devin Teske , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Ben Woods Content-Transfer-Encoding: quoted-printable Message-Id: <0516A31C-EDFF-4579-A61D-5F1A7352E1A5@freebsd.org> References: <202001150747.00F7lqiG071097@repo.freebsd.org> <0100016fad773f6c-22812db6-4185-4922-a424-94c4ae083344-000000@email.amazonses.com> <81104b94-8c89-7eec-720f-0aab2201eb3f@FreeBSD.org> To: "koobs@freebsd.org" X-Mailer: Apple Mail (2.3445.104.11) Sender: devin@shxd.cx X-Rspamd-Queue-Id: 47zCmL4pR1z4QSj X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.98 / 15.00]; NEURAL_HAM_MEDIUM(-0.98)[-0.985,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.999,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 18:44:50 -0000 > On Jan 16, 2020, at 01:01, Kubilay Kocak wrote: >=20 > On 16/01/2020 7:27 pm, Colin Percival wrote: >> On 2020-01-15 21:07, Philip Paeps wrote: >>> On 2020-01-16 04:57:28 (+1000), Oliver Pinter wrote: >>>> On Wednesday, January 15, 2020, Ben Woods = wrote: >>>>> bsdinstall: Change "default" (first) Partitioning method to ZFS >>>=20 >>>> Plus I miss from here the relontes tag. >>>=20 >>> I'm not sure if this merits a release notes entry but ... sure. >>>=20 >>> There is not actually a functional change here. It's just a = defaults change. >> I'd say that a change in defaults is far more deserving of being = mentioned >> in the release notes than, say, adding a new feature. Nobody will = trip over >> new features by mistake, but there's probably someone out there who = is used >> to holding down the Enter key in the installer and expects to get = UFS. >=20 > +1 on changing the default. This doesn't preclude UFS systems or = reduce choice (we value choice). >=20 > +0 on tweaking it or setting exceptions if and where necessary, as = long as it doesn't result in more than minimal fragmentation between = versions/archs/install types: this is also a POLA issue. I don't oin its = own consider "4gb systems" as necessary. >=20 > +1 RELNOTES, we value POLA. >=20 -1 on (mentioned somewhere in the thread) dynamic menu items that change = based on hardware. Muscle memory is not bad. =E2=80=94=20 Devin= From owner-svn-src-all@freebsd.org Thu Jan 16 19:18:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 25EEB1F2322; Thu, 16 Jan 2020 19:18:30 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zDWB0B9yz4S9M; Thu, 16 Jan 2020 19:18:29 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-io1-f42.google.com with SMTP id n11so23186002iom.9; Thu, 16 Jan 2020 11:18:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=C6d/ouP7c/as72JAlgdRmtJakwimdQkO94zt2sFNYb4=; b=aVwoDWgZa2misqiRKvXLi7GKWUH4RbwvcA+IfImHVmBIZvigYlRyM2nVKq7RGFOuys aoNgAjNIVSFstF5d3EYRlotAejPZkJ/Fc8X259YkAwe6lYjWC3AhoTaB56Ons/WL652K XTEvy/1O0vKo+LfG1kFtVC0x4XRxBW9BUBOaLcB4Mwctr4tupg7CTFPlAhIxO6dgiSks 7vKoAEDyDUzoK2bKQefgWW7Pt2M8NKaPT4sAqtsRZrcjR+vVkblIW1Zb5V9GBdB4CtST 1N3Xxp9VkpX7RelJ5dMQpSnGbXvu0tmP82C8iWM9HgMmB1ShQfQP+9WKzowuxD0/LQCH iPCw== X-Gm-Message-State: APjAAAWtDxgEHfaI6QgCTAMzKCxVdv+/Vdcs/6ELMXFljnJTZO8moYlR DzXejGmI2p3y7RKnzQP7d1moK5oPsn75QLt4tIrSZQ== X-Google-Smtp-Source: APXvYqz4qApnGziDHQmOKx5kStPd9rJP2gj8DFHDxsS5c4fxlUdDkK8IgYbuHMKch5tbB5AC6O+CpFL+M0Oh08mwjN8= X-Received: by 2002:a5e:aa12:: with SMTP id s18mr26242063ioe.182.1579202308152; Thu, 16 Jan 2020 11:18:28 -0800 (PST) MIME-Version: 1.0 References: <202001161727.00GHR81m093567@repo.freebsd.org> <6489e1f1-561c-f1e8-babf-ed7900496488@FreeBSD.org> In-Reply-To: <6489e1f1-561c-f1e8-babf-ed7900496488@FreeBSD.org> From: Ed Maste Date: Thu, 16 Jan 2020 14:18:14 -0500 Message-ID: Subject: Re: svn commit: r356797 - head/share/mk To: John Baldwin Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47zDWB0B9yz4S9M X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 19:18:30 -0000 On Thu, 16 Jan 2020 at 12:34, John Baldwin wrote: > > I would support having MK_PROFILE default to off for 13. I agree. > Do we know if any other systems still > ship -pg libraries as an option? Also, is anyone still using them? I'll try to check some representative Linux distributions, and later post a question on appropriate mailing lists to see if anyone's using them. From owner-svn-src-all@freebsd.org Thu Jan 16 19:49:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D35C81F3466 for ; Thu, 16 Jan 2020 19:49:39 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qv1-xf30.google.com (mail-qv1-xf30.google.com [IPv6:2607:f8b0:4864:20::f30]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFC63rs6z4V0v for ; Thu, 16 Jan 2020 19:49:38 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qv1-xf30.google.com with SMTP id u1so9644776qvk.13 for ; Thu, 16 Jan 2020 11:49:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nXvUjUHN23ZFZUtBQmLPO13+3vb6yJxN2hTmbUiGKs4=; b=qxBDVBNEAzK6OpYjf1P4VZtrIuE/7ofWl3AY/6sKsxDGyUHeKvEmrpYNCZFgDm0OZQ o15oR1eXvp4/sABI6qRTPk1eHVumSXMYsNsYlx/R01S5yculSFvztqLTt+RFfDt1rM2L tILV2bq2g8EmlR4ImClGNB5AR1QtczkHZxTK6iavCH+3DaI3fbPYcbSbsU7bdZ0pL4XY VkitMXBRg/F6il8XyaMQXtQAkomC9FEfNj3y8u69d6GSHPwqWdI042GLKRA50RrmCbon 1lGNN56H3dtQSrYIntVh83TnrLrPbVxYTyyLuvd+7LThcuP0zcAuirnvzwVJnfLGzMvF fohQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nXvUjUHN23ZFZUtBQmLPO13+3vb6yJxN2hTmbUiGKs4=; b=mSRYW17co9yS1lknEpcPmumzxTGyjfhmh9WJ2hoTBaIripwNZjn+zLtSFXZFpcbnXL cL0kTQDa5pI3vyhgEKJc/rqDaYDCtla8haQkA/iddASXfXME0y0N/LAJ5ox0ZPCgLOR1 sD4C1DUbvtbkZa2g8bMxHc4xau0fBXtrTOcFyOxNhEWAF7g6oJplxusH9YdqSUp4BBkJ A2ICdNbkRu2saOPa8ognVGaEM9tcbPcasWrEatLODr0zSnKq77aT8dlXmmef1nA4LujQ 5xfBSwUso/ricADcqN3wEibw5rdo6BATkG/sYFsOXN+H7ZElLXmgB/OZWzKkz/UaRp27 zS6Q== X-Gm-Message-State: APjAAAVsyw4N/JAjqz7v/1kgCtEX57AchOST2Ud97AzhtKIHXelgQKx2 RICOvy1mgsz0BOe7bjL4xqEsgmTaV56Wth09icYJTilE X-Google-Smtp-Source: APXvYqxDyQIy23nSQA/Lpmz5klPPDVAmptXhQltHkwLyOIcbllnIYUWX3fSdZ/BYA4T+Qvd3ntlIGjuRqBXN1d90xdo= X-Received: by 2002:a05:6214:2a1:: with SMTP id m1mr4295699qvv.125.1579204171677; Thu, 16 Jan 2020 11:49:31 -0800 (PST) MIME-Version: 1.0 References: <202001161727.00GHR81m093567@repo.freebsd.org> <6489e1f1-561c-f1e8-babf-ed7900496488@FreeBSD.org> In-Reply-To: From: Warner Losh Date: Thu, 16 Jan 2020 12:49:19 -0700 Message-ID: Subject: Re: svn commit: r356797 - head/share/mk To: Ed Maste Cc: John Baldwin , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47zFC63rs6z4V0v X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=qxBDVBNE; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::f30) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-2.79 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-0.79)[ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 19:49:39 -0000 On Thu, Jan 16, 2020, 12:18 PM Ed Maste wrote: > On Thu, 16 Jan 2020 at 12:34, John Baldwin wrote: > > > > I would support having MK_PROFILE default to off for 13. > > I agree. > > > Do we know if any other systems still > > ship -pg libraries as an option? Also, is anyone still using them? > > I'll try to check some representative Linux distributions, and later > post a question on appropriate mailing lists to see if anyone's using > them. > I think you'll find they haven't been shipped in over a decade. Maybe two. I'd turn them off by default as they have been overtaken by better, hardware assisted means. I've not used them in at least 15 years. 25-30 years ago I used them all the time. Warner > From owner-svn-src-all@freebsd.org Thu Jan 16 19:57:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 609AC1F3BD7; Thu, 16 Jan 2020 19:57:39 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFNM1wMwz4Vjb; Thu, 16 Jan 2020 19:57:39 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2495B24CBD; Thu, 16 Jan 2020 19:57:39 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GJvcDi083218; Thu, 16 Jan 2020 19:57:38 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GJvcSV083217; Thu, 16 Jan 2020 19:57:38 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001161957.00GJvcSV083217@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 19:57:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356798 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356798 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 19:57:39 -0000 Author: manu Date: Thu Jan 16 19:57:38 2020 New Revision: 356798 URL: https://svnweb.freebsd.org/changeset/base/356798 Log: axp8xx: Add missing voltage regulators offset This lead to writing the desired voltage value to the wrong register. MFC after: 2 weeks Modified: head/sys/arm/allwinner/axp81x.c Modified: head/sys/arm/allwinner/axp81x.c ============================================================================== --- head/sys/arm/allwinner/axp81x.c Thu Jan 16 17:27:08 2020 (r356797) +++ head/sys/arm/allwinner/axp81x.c Thu Jan 16 19:57:38 2020 (r356798) @@ -437,6 +437,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL3, .enable_mask = (uint8_t) AXP_POWERCTL3_ALDO1, .enable_value = AXP_POWERCTL3_ALDO1, + .voltage_reg = AXP_VOLTCTL_ALDO1, .voltage_min = 700, .voltage_max = 3300, .voltage_step1 = 100, @@ -448,6 +449,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL3, .enable_mask = (uint8_t) AXP_POWERCTL3_ALDO2, .enable_value = AXP_POWERCTL3_ALDO2, + .voltage_reg = AXP_VOLTCTL_ALDO2, .voltage_min = 700, .voltage_max = 3300, .voltage_step1 = 100, @@ -459,6 +461,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL3, .enable_mask = (uint8_t) AXP_POWERCTL3_ALDO3, .enable_value = AXP_POWERCTL3_ALDO3, + .voltage_reg = AXP_VOLTCTL_ALDO3, .voltage_min = 700, .voltage_max = 3300, .voltage_step1 = 100, @@ -470,6 +473,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL2, .enable_mask = (uint8_t) AXP_POWERCTL2_ELDO1, .enable_value = AXP_POWERCTL2_ELDO1, + .voltage_reg = AXP_VOLTCTL_ELDO1, .voltage_min = 700, .voltage_max = 1900, .voltage_step1 = 50, @@ -481,6 +485,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL2, .enable_mask = (uint8_t) AXP_POWERCTL2_ELDO2, .enable_value = AXP_POWERCTL2_ELDO2, + .voltage_reg = AXP_VOLTCTL_ELDO2, .voltage_min = 700, .voltage_max = 1900, .voltage_step1 = 50, @@ -492,6 +497,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL2, .enable_mask = (uint8_t) AXP_POWERCTL2_ELDO3, .enable_value = AXP_POWERCTL2_ELDO3, + .voltage_reg = AXP_VOLTCTL_ELDO3, .voltage_min = 700, .voltage_max = 1900, .voltage_step1 = 50, @@ -503,6 +509,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL3, .enable_mask = (uint8_t) AXP_POWERCTL3_FLDO1, .enable_value = AXP_POWERCTL3_FLDO1, + .voltage_reg = AXP_VOLTCTL_FLDO1, .voltage_min = 700, .voltage_max = 1450, .voltage_step1 = 50, @@ -514,6 +521,7 @@ static struct axp8xx_regdef axp8xx_common_regdefs[] = .enable_reg = AXP_POWERCTL3, .enable_mask = (uint8_t) AXP_POWERCTL3_FLDO2, .enable_value = AXP_POWERCTL3_FLDO2, + .voltage_reg = AXP_VOLTCTL_FLDO2, .voltage_min = 700, .voltage_max = 1450, .voltage_step1 = 50, From owner-svn-src-all@freebsd.org Thu Jan 16 19:59:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CAFF41F3D03; Thu, 16 Jan 2020 19:59:00 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFPw55V2z4Vy7; Thu, 16 Jan 2020 19:59:00 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AA1A424CDE; Thu, 16 Jan 2020 19:59:00 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GJx0G6083450; Thu, 16 Jan 2020 19:59:00 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GJx00I083449; Thu, 16 Jan 2020 19:59:00 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001161959.00GJx00I083449@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 19:59:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356799 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356799 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 19:59:00 -0000 Author: manu Date: Thu Jan 16 19:59:00 2020 New Revision: 356799 URL: https://svnweb.freebsd.org/changeset/base/356799 Log: axp8xx: Add a regnode_init method This method will set the desired voltaged based on values in the DTS. It will not enable the regulator, this is the job of either a consumer or regnode_set_constraint SYSINIT if the regulator is boot_on or always_on. MFC after: 2 weeks Modified: head/sys/arm/allwinner/axp81x.c Modified: head/sys/arm/allwinner/axp81x.c ============================================================================== --- head/sys/arm/allwinner/axp81x.c Thu Jan 16 19:57:38 2020 (r356798) +++ head/sys/arm/allwinner/axp81x.c Thu Jan 16 19:59:00 2020 (r356799) @@ -710,6 +710,8 @@ struct axp8xx_softc { #define AXP_LOCK(sc) mtx_lock(&(sc)->mtx) #define AXP_UNLOCK(sc) mtx_unlock(&(sc)->mtx) +static int axp8xx_regnode_set_voltage(struct regnode *regnode, int min_uvolt, + int max_uvolt, int *udelay); static int axp8xx_read(device_t dev, uint8_t reg, uint8_t *data, uint8_t size) @@ -754,6 +756,31 @@ axp8xx_write(device_t dev, uint8_t reg, uint8_t val) } static int +axp8xx_regnode_init(struct regnode *regnode) +{ + struct axp8xx_reg_sc *sc; + struct regnode_std_param *param; + int rv, udelay; + + sc = regnode_get_softc(regnode); + param = regnode_get_stdparam(regnode); + if (param->min_uvolt == 0) + return (0); + + /* + * Set the regulator at the correct voltage + * Do not enable it, this is will be done either by a + * consumer or by regnode_set_constraint if boot_on is true + */ + rv = axp8xx_regnode_set_voltage(regnode, param->min_uvolt, + param->max_uvolt, &udelay); + if (rv != 0) + DELAY(udelay); + + return (rv); +} + +static int axp8xx_regnode_enable(struct regnode *regnode, bool enable, int *udelay) { struct axp8xx_reg_sc *sc; @@ -870,6 +897,7 @@ axp8xx_regnode_get_voltage(struct regnode *regnode, in static regnode_method_t axp8xx_regnode_methods[] = { /* Regulator interface */ + REGNODEMETHOD(regnode_init, axp8xx_regnode_init), REGNODEMETHOD(regnode_enable, axp8xx_regnode_enable), REGNODEMETHOD(regnode_set_voltage, axp8xx_regnode_set_voltage), REGNODEMETHOD(regnode_get_voltage, axp8xx_regnode_get_voltage), From owner-svn-src-all@freebsd.org Thu Jan 16 20:02:41 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8365F1F4088; Thu, 16 Jan 2020 20:02:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFV93hHyz4WQH; Thu, 16 Jan 2020 20:02:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 79C0C24EC4; Thu, 16 Jan 2020 20:02:41 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GK2fp5088969; Thu, 16 Jan 2020 20:02:41 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GK2fwL088968; Thu, 16 Jan 2020 20:02:41 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162002.00GK2fwL088968@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 20:02:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356800 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356800 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:02:41 -0000 Author: manu Date: Thu Jan 16 20:02:41 2020 New Revision: 356800 URL: https://svnweb.freebsd.org/changeset/base/356800 Log: arm: allwinner: Add support for bank supply Each GPIO bank is powered by a different pin and so can be powered at different voltage from different regulators. Add a new config that now hold the pinmux data and the banks available on each SoCs. Since the aw_gpio driver being also the pinmux one it's attached before the PMIC so add a config_intrhook_oneshot function that will enable the needed regulators when the system is fully functional. MFC after: 2 weeks Modified: head/sys/arm/allwinner/aw_gpio.c Modified: head/sys/arm/allwinner/aw_gpio.c ============================================================================== --- head/sys/arm/allwinner/aw_gpio.c Thu Jan 16 19:59:00 2020 (r356799) +++ head/sys/arm/allwinner/aw_gpio.c Thu Jan 16 20:02:41 2020 (r356800) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #if defined(__aarch64__) #include "opt_soc.h" @@ -78,102 +79,167 @@ __FBSDID("$FreeBSD$"); #define AW_PINCTRL 1 #define AW_R_PINCTRL 2 +struct aw_gpio_conf { + struct allwinner_padconf *padconf; + const char *banks; +}; + /* Defined in aw_padconf.c */ #ifdef SOC_ALLWINNER_A10 -extern const struct allwinner_padconf a10_padconf; +extern struct allwinner_padconf a10_padconf; +struct aw_gpio_conf a10_gpio_conf = { + .padconf = &a10_padconf, + .banks = "abcdefghi", +}; #endif /* Defined in a13_padconf.c */ #ifdef SOC_ALLWINNER_A13 -extern const struct allwinner_padconf a13_padconf; +extern struct allwinner_padconf a13_padconf; +struct aw_gpio_conf a13_gpio_conf = { + .padconf = &a13_padconf, + .banks = "bcdefg", +}; #endif /* Defined in a20_padconf.c */ #ifdef SOC_ALLWINNER_A20 -extern const struct allwinner_padconf a20_padconf; +extern struct allwinner_padconf a20_padconf; +struct aw_gpio_conf a20_gpio_conf = { + .padconf = &a20_padconf, + .banks = "abcdefghi", +}; #endif /* Defined in a31_padconf.c */ #ifdef SOC_ALLWINNER_A31 -extern const struct allwinner_padconf a31_padconf; +extern struct allwinner_padconf a31_padconf; +struct aw_gpio_conf a31_gpio_conf = { + .padconf = &a31_padconf, + .banks = "abcdefgh", +}; #endif /* Defined in a31s_padconf.c */ #ifdef SOC_ALLWINNER_A31S -extern const struct allwinner_padconf a31s_padconf; +extern struct allwinner_padconf a31s_padconf; +struct aw_gpio_conf a31s_gpio_conf = { + .padconf = &a31s_padconf, + .banks = "abcdefgh", +}; #endif #if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S) -extern const struct allwinner_padconf a31_r_padconf; +extern struct allwinner_padconf a31_r_padconf; +struct aw_gpio_conf a31_r_gpio_conf = { + .padconf = &a31_r_padconf, + .banks = "lm", +}; #endif /* Defined in a33_padconf.c */ #ifdef SOC_ALLWINNER_A33 -extern const struct allwinner_padconf a33_padconf; +extern struct allwinner_padconf a33_padconf; +struct aw_gpio_conf a33_gpio_conf = { + .padconf = &a33_padconf, + .banks = "bcdefgh", +}; #endif /* Defined in h3_padconf.c */ #if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) -extern const struct allwinner_padconf h3_padconf; -extern const struct allwinner_padconf h3_r_padconf; +extern struct allwinner_padconf h3_padconf; +extern struct allwinner_padconf h3_r_padconf; +struct aw_gpio_conf h3_gpio_conf = { + .padconf = &h3_padconf, + .banks = "acdefg", +}; +struct aw_gpio_conf h3_r_gpio_conf = { + .padconf = &h3_r_padconf, + .banks = "l", +}; #endif /* Defined in a83t_padconf.c */ #ifdef SOC_ALLWINNER_A83T -extern const struct allwinner_padconf a83t_padconf; -extern const struct allwinner_padconf a83t_r_padconf; +extern struct allwinner_padconf a83t_padconf; +extern struct allwinner_padconf a83t_r_padconf; +struct aw_gpio_conf a83t_gpio_conf = { + .padconf = &a83t_padconf, + .banks = "bcdefgh" +}; +struct aw_gpio_conf a83t_r_gpio_conf = { + .padconf = &a83t_r_padconf, + .banks = "l", +}; #endif /* Defined in a64_padconf.c */ #ifdef SOC_ALLWINNER_A64 -extern const struct allwinner_padconf a64_padconf; -extern const struct allwinner_padconf a64_r_padconf; +extern struct allwinner_padconf a64_padconf; +extern struct allwinner_padconf a64_r_padconf; +struct aw_gpio_conf a64_gpio_conf = { + .padconf = &a64_padconf, + .banks = "bcdefgh", +}; +struct aw_gpio_conf a64_r_gpio_conf = { + .padconf = &a64_r_padconf, + .banks = "l", +}; #endif /* Defined in h6_padconf.c */ #ifdef SOC_ALLWINNER_H6 -extern const struct allwinner_padconf h6_padconf; -extern const struct allwinner_padconf h6_r_padconf; +extern struct allwinner_padconf h6_padconf; +extern struct allwinner_padconf h6_r_padconf; +struct aw_gpio_conf h6_gpio_conf = { + .padconf = &h6_padconf, + .banks = "cdfgh", +}; +struct aw_gpio_conf h6_r_gpio_conf = { + .padconf = &h6_r_padconf, + .banks = "lm", +}; #endif static struct ofw_compat_data compat_data[] = { #ifdef SOC_ALLWINNER_A10 - {"allwinner,sun4i-a10-pinctrl", (uintptr_t)&a10_padconf}, + {"allwinner,sun4i-a10-pinctrl", (uintptr_t)&a10_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A13 - {"allwinner,sun5i-a13-pinctrl", (uintptr_t)&a13_padconf}, + {"allwinner,sun5i-a13-pinctrl", (uintptr_t)&a13_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A20 - {"allwinner,sun7i-a20-pinctrl", (uintptr_t)&a20_padconf}, + {"allwinner,sun7i-a20-pinctrl", (uintptr_t)&a20_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A31 - {"allwinner,sun6i-a31-pinctrl", (uintptr_t)&a31_padconf}, + {"allwinner,sun6i-a31-pinctrl", (uintptr_t)&a31_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A31S - {"allwinner,sun6i-a31s-pinctrl", (uintptr_t)&a31s_padconf}, + {"allwinner,sun6i-a31s-pinctrl", (uintptr_t)&a31s_gpio_conf}, #endif #if defined(SOC_ALLWINNER_A31) || defined(SOC_ALLWINNER_A31S) - {"allwinner,sun6i-a31-r-pinctrl", (uintptr_t)&a31_r_padconf}, + {"allwinner,sun6i-a31-r-pinctrl", (uintptr_t)&a31_r_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A33 - {"allwinner,sun6i-a33-pinctrl", (uintptr_t)&a33_padconf}, + {"allwinner,sun6i-a33-pinctrl", (uintptr_t)&a33_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A83T - {"allwinner,sun8i-a83t-pinctrl", (uintptr_t)&a83t_padconf}, - {"allwinner,sun8i-a83t-r-pinctrl", (uintptr_t)&a83t_r_padconf}, + {"allwinner,sun8i-a83t-pinctrl", (uintptr_t)&a83t_gpio_conf}, + {"allwinner,sun8i-a83t-r-pinctrl", (uintptr_t)&a83t_r_gpio_conf}, #endif #if defined(SOC_ALLWINNER_H3) || defined(SOC_ALLWINNER_H5) - {"allwinner,sun8i-h3-pinctrl", (uintptr_t)&h3_padconf}, - {"allwinner,sun50i-h5-pinctrl", (uintptr_t)&h3_padconf}, - {"allwinner,sun8i-h3-r-pinctrl", (uintptr_t)&h3_r_padconf}, + {"allwinner,sun8i-h3-pinctrl", (uintptr_t)&h3_gpio_conf}, + {"allwinner,sun50i-h5-pinctrl", (uintptr_t)&h3_gpio_conf}, + {"allwinner,sun8i-h3-r-pinctrl", (uintptr_t)&h3_r_gpio_conf}, #endif #ifdef SOC_ALLWINNER_A64 - {"allwinner,sun50i-a64-pinctrl", (uintptr_t)&a64_padconf}, - {"allwinner,sun50i-a64-r-pinctrl", (uintptr_t)&a64_r_padconf}, + {"allwinner,sun50i-a64-pinctrl", (uintptr_t)&a64_gpio_conf}, + {"allwinner,sun50i-a64-r-pinctrl", (uintptr_t)&a64_r_gpio_conf}, #endif #ifdef SOC_ALLWINNER_H6 - {"allwinner,sun50i-h6-pinctrl", (uintptr_t)&h6_padconf}, - {"allwinner,sun50i-h6-r-pinctrl", (uintptr_t)&h6_r_padconf}, + {"allwinner,sun50i-h6-pinctrl", (uintptr_t)&h6_gpio_conf}, + {"allwinner,sun50i-h6-r-pinctrl", (uintptr_t)&h6_r_gpio_conf}, #endif {NULL, 0} }; @@ -192,7 +258,7 @@ struct aw_gpio_softc { bus_space_tag_t sc_bst; bus_space_handle_t sc_bsh; void * sc_intrhand; - const struct allwinner_padconf * padconf; + struct aw_gpio_conf *conf; TAILQ_HEAD(, clk_list) clk_list; }; @@ -237,10 +303,10 @@ aw_gpio_get_function(struct aw_gpio_softc *sc, uint32_ /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (0); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x07) << 2); func = AW_GPIO_READ(sc, AW_GPIO_GP_CFG(bank, pin >> 3)); @@ -254,14 +320,14 @@ aw_gpio_set_function(struct aw_gpio_softc *sc, uint32_ uint32_t bank, data, offset; /* Check if the function exists in the padconf data */ - if (sc->padconf->pins[pin].functions[f] == NULL) + if (sc->conf->padconf->pins[pin].functions[f] == NULL) return (EINVAL); /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x07) << 2); data = AW_GPIO_READ(sc, AW_GPIO_GP_CFG(bank, pin >> 3)); @@ -280,8 +346,8 @@ aw_gpio_get_pud(struct aw_gpio_softc *sc, uint32_t pin /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x0f) << 1); val = AW_GPIO_READ(sc, AW_GPIO_GP_PUL(bank, pin >> 4)); @@ -300,8 +366,8 @@ aw_gpio_set_pud(struct aw_gpio_softc *sc, uint32_t pin /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x0f) << 1); val = AW_GPIO_READ(sc, AW_GPIO_GP_PUL(bank, pin >> 4)); @@ -318,8 +384,8 @@ aw_gpio_get_drv(struct aw_gpio_softc *sc, uint32_t pin /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x0f) << 1); val = AW_GPIO_READ(sc, AW_GPIO_GP_DRV(bank, pin >> 4)); @@ -338,8 +404,8 @@ aw_gpio_set_drv(struct aw_gpio_softc *sc, uint32_t pin /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; offset = ((pin & 0x0f) << 1); val = AW_GPIO_READ(sc, AW_GPIO_GP_DRV(bank, pin >> 4)); @@ -357,7 +423,7 @@ aw_gpio_pin_configure(struct aw_gpio_softc *sc, uint32 /* Must be called with lock held. */ AW_GPIO_LOCK_ASSERT(sc); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (EINVAL); /* Manage input/output. */ @@ -412,7 +478,7 @@ aw_gpio_pin_max(device_t dev, int *maxpin) sc = device_get_softc(dev); - *maxpin = sc->padconf->npins - 1; + *maxpin = sc->conf->padconf->npins - 1; return (0); } @@ -422,7 +488,7 @@ aw_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32 struct aw_gpio_softc *sc; sc = device_get_softc(dev); - if (pin >= sc->padconf->npins) + if (pin >= sc->conf->padconf->npins) return (EINVAL); *caps = AW_GPIO_DEFAULT_CAPS; @@ -438,7 +504,7 @@ aw_gpio_pin_getflags(device_t dev, uint32_t pin, uint3 uint32_t pud; sc = device_get_softc(dev); - if (pin >= sc->padconf->npins) + if (pin >= sc->conf->padconf->npins) return (EINVAL); AW_GPIO_LOCK(sc); @@ -478,11 +544,11 @@ aw_gpio_pin_getname(device_t dev, uint32_t pin, char * struct aw_gpio_softc *sc; sc = device_get_softc(dev); - if (pin >= sc->padconf->npins) + if (pin >= sc->conf->padconf->npins) return (EINVAL); snprintf(name, GPIOMAXNAME - 1, "%s", - sc->padconf->pins[pin].name); + sc->conf->padconf->pins[pin].name); name[GPIOMAXNAME - 1] = '\0'; return (0); @@ -495,7 +561,7 @@ aw_gpio_pin_setflags(device_t dev, uint32_t pin, uint3 int err; sc = device_get_softc(dev); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (EINVAL); AW_GPIO_LOCK(sc); @@ -513,11 +579,11 @@ aw_gpio_pin_set_locked(struct aw_gpio_softc *sc, uint3 AW_GPIO_LOCK_ASSERT(sc); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (EINVAL); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; data = AW_GPIO_READ(sc, AW_GPIO_GP_DAT(bank)); if (value) @@ -552,11 +618,11 @@ aw_gpio_pin_get_locked(struct aw_gpio_softc *sc,uint32 AW_GPIO_LOCK_ASSERT(sc); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (EINVAL); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; reg_data = AW_GPIO_READ(sc, AW_GPIO_GP_DAT(bank)); *val = (reg_data & (1 << pin)) ? 1 : 0; @@ -655,11 +721,11 @@ aw_gpio_pin_toggle(device_t dev, uint32_t pin) uint32_t bank, data; sc = device_get_softc(dev); - if (pin > sc->padconf->npins) + if (pin > sc->conf->padconf->npins) return (EINVAL); - bank = sc->padconf->pins[pin].port; - pin = sc->padconf->pins[pin].pin; + bank = sc->conf->padconf->pins[pin].port; + pin = sc->conf->padconf->pins[pin].pin; AW_GPIO_LOCK(sc); data = AW_GPIO_READ(sc, AW_GPIO_GP_DAT(bank)); @@ -681,7 +747,7 @@ aw_gpio_pin_access_32(device_t dev, uint32_t first_pin uint32_t bank, data, pin; sc = device_get_softc(dev); - if (first_pin > sc->padconf->npins) + if (first_pin > sc->conf->padconf->npins) return (EINVAL); /* @@ -690,8 +756,8 @@ aw_gpio_pin_access_32(device_t dev, uint32_t first_pin * change simultaneously (required) with reasonably high performance * (desired); we need to do a read-modify-write on a single register. */ - bank = sc->padconf->pins[first_pin].port; - pin = sc->padconf->pins[first_pin].pin; + bank = sc->conf->padconf->pins[first_pin].port; + pin = sc->conf->padconf->pins[first_pin].pin; if (pin != 0) return (EINVAL); @@ -717,11 +783,11 @@ aw_gpio_pin_config_32(device_t dev, uint32_t first_pin int err; sc = device_get_softc(dev); - if (first_pin > sc->padconf->npins) + if (first_pin > sc->conf->padconf->npins) return (EINVAL); - bank = sc->padconf->pins[first_pin].port; - if (sc->padconf->pins[first_pin].pin != 0) + bank = sc->conf->padconf->pins[first_pin].port; + if (sc->conf->padconf->pins[first_pin].pin != 0) return (EINVAL); /* @@ -745,8 +811,8 @@ aw_find_pinnum_by_name(struct aw_gpio_softc *sc, const { int i; - for (i = 0; i < sc->padconf->npins; i++) - if (!strcmp(pinname, sc->padconf->pins[i].name)) + for (i = 0; i < sc->conf->padconf->npins; i++) + if (!strcmp(pinname, sc->conf->padconf->pins[i].name)) return i; return (-1); @@ -758,8 +824,8 @@ aw_find_pin_func(struct aw_gpio_softc *sc, int pin, co int i; for (i = 0; i < AW_MAX_FUNC_BY_PIN; i++) - if (sc->padconf->pins[pin].functions[i] && - !strcmp(func, sc->padconf->pins[pin].functions[i])) + if (sc->conf->padconf->pins[pin].functions[i] && + !strcmp(func, sc->conf->padconf->pins[pin].functions[i])) return (i); return (-1); @@ -828,6 +894,33 @@ aw_fdt_configure_pins(device_t dev, phandle_t cfgxref) return (ret); } +static void +aw_gpio_enable_bank_supply(void *arg) +{ + struct aw_gpio_softc *sc = arg; + regulator_t vcc_supply; + char bank_reg_name[16]; + int i, nbanks; + + nbanks = strlen(sc->conf->banks); + for (i = 0; i < nbanks; i++) { + snprintf(bank_reg_name, sizeof(bank_reg_name), "vcc-p%c-supply", + sc->conf->banks[i]); + + if (regulator_get_by_ofw_property(sc->sc_dev, 0, bank_reg_name, &vcc_supply) == 0) { + if (bootverbose) + device_printf(sc->sc_dev, + "Enabling regulator for gpio bank %c\n", + sc->conf->banks[i]); + if (regulator_enable(vcc_supply) != 0) { + device_printf(sc->sc_dev, + "Cannot enable regulator for bank %c\n", + sc->conf->banks[i]); + } + } + } +} + static int aw_gpio_probe(device_t dev) { @@ -884,7 +977,7 @@ aw_gpio_attach(device_t dev) goto fail; /* Use the right pin data for the current SoC */ - sc->padconf = (struct allwinner_padconf *)ofw_bus_search_compatible(dev, + sc->conf = (struct aw_gpio_conf *)ofw_bus_search_compatible(dev, compat_data)->ocd_data; if (hwreset_get_by_ofw_idx(dev, 0, 0, &rst) == 0) { @@ -928,6 +1021,8 @@ aw_gpio_attach(device_t dev) fdt_pinctrl_register(dev, "allwinner,pins"); fdt_pinctrl_configure_tree(dev); + config_intrhook_oneshot(aw_gpio_enable_bank_supply, sc); + return (0); fail: @@ -985,9 +1080,9 @@ aw_gpio_map_gpios(device_t bus, phandle_t dev, phandle sc = device_get_softc(bus); /* The GPIO pins are mapped as: . */ - for (i = 0; i < sc->padconf->npins; i++) - if (sc->padconf->pins[i].port == gpios[0] && - sc->padconf->pins[i].pin == gpios[1]) { + for (i = 0; i < sc->conf->padconf->npins; i++) + if (sc->conf->padconf->pins[i].port == gpios[0] && + sc->conf->padconf->pins[i].pin == gpios[1]) { *pin = i; break; } From owner-svn-src-all@freebsd.org Thu Jan 16 20:06:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 94C481F41C2; Thu, 16 Jan 2020 20:06:48 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFZw0yT9z4WcC; Thu, 16 Jan 2020 20:06:47 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from spqr.komquats.com ([70.67.125.17]) by shaw.ca with ESMTPA id sBPfigXhWRnrKsBPgi80au; Thu, 16 Jan 2020 13:06:46 -0700 X-Authority-Analysis: v=2.3 cv=L7FjvNb8 c=1 sm=1 tr=0 a=VFtTW3WuZNDh6VkGe7fA3g==:117 a=VFtTW3WuZNDh6VkGe7fA3g==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=Jdjhy38mL1oA:10 a=6I5d2MoRAAAA:8 a=YxBL1-UpAAAA:8 a=wpXjUU3CAYg2pNmZypsA:9 a=QEXdDO2ut3YA:10 a=IjZwj45LgO3ly-622nXo:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from Resas-iPad.esitwifi.local (S0106788a207e2972.gv.shawcable.net [70.66.154.233]) by spqr.komquats.com (Postfix) with ESMTPSA id 0B6E0965; Thu, 16 Jan 2020 12:06:41 -0800 (PST) Date: Thu, 16 Jan 2020 12:06:17 -0800 User-Agent: K-9 Mail for Android In-Reply-To: <20200115223805.GT39529@FreeBSD.org> References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115223805.GT39529@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys To: Gleb Smirnoff , Jeff Roberson CC: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org From: Cy Schubert Message-ID: <3AB19154-C8EF-4372-B196-70917DCEFE31@cschubert.com> X-CMAE-Envelope: MS4wfDpmuk8FggLquniq+DoxW8BysWLDpspwAMI6gLephp1VoVGfO+kcXkHkl1roGzzwmjJYykiphAEQjnaIKHr800eISXb0pQb0FLjHkgCKWOHLCcDsN1M+ /Tpg9fO0AQufH5yWU1RH9vhSj1fVqtmjI7Qvpnl9n48v59g50GgukiSkg/n/2md/rs+k1oAGi6cL7f/bLnSARou3zT9a24sh0EHYeHApXXpN/qwVhgx4kscq eY8uxuEakHh9IqUerX8GLt7frkZ2Yl20T59EBty9nCvQJtYSZvxh4sK2G0cSE2pPXOS/wTXgPfHbexS4kTIJsKTI9BkshXT7Nk9n8Vr8TmE= X-Rspamd-Queue-Id: 47zFZw0yT9z4WcC X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-0.99)[-0.992,0]; NEURAL_HAM_LONG(-1.00)[-0.999,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:06:48 -0000 On January 15, 2020 2:38:05 PM PST, Gleb Smirnoff w= rote: >On Wed, Jan 15, 2020 at 09:44:53AM -1000, Jeff Roberson wrote: >J> On Wed, 15 Jan 2020, Gleb Smirnoff wrote: >J>=20 >J> > Author: glebius >J> > Date: Wed Jan 15 06:05:20 2020 >J> > New Revision: 356755 >J> > URL: https://svnweb=2Efreebsd=2Eorg/changeset/base/356755 >J> > >J> > Log: >J> > Introduce NET_EPOCH_CALL() macro and use it everywhere where we >free >J> > data based on the network epoch=2E The macro reverses the >argument >J> > order of epoch_call(9) - first function, then its argument=2E NFC >J>=20 >J> Is there some practical impact of changing the argument order or >does it=20 >J> just seem more natural to you? > >It is just more natural=2E I'm suggesting to change prototype of >epoch_call() >to the same order as well=2E Yes=2E Are there any ports that might be affected, such as kms-drm or virtualbox= -ose-kmod? --=20 Pardon the typos and autocorrect, small keyboard in use=2E=20 Cy Schubert FreeBSD UNIX: Web: https://www=2EFreeBSD=2Eorg The need of the many outweighs the greed of the few=2E Sent from my Android device with K-9 Mail=2E Please excuse my brevity=2E From owner-svn-src-all@freebsd.org Thu Jan 16 20:12:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 463DE1F4516; Thu, 16 Jan 2020 20:12:16 +0000 (UTC) (envelope-from krion@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFjC6x19z4Wwt; Thu, 16 Jan 2020 20:12:15 +0000 (UTC) (envelope-from krion@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E7FD725084; Thu, 16 Jan 2020 20:12:15 +0000 (UTC) (envelope-from krion@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GKCFD6092528; Thu, 16 Jan 2020 20:12:15 GMT (envelope-from krion@FreeBSD.org) Received: (from krion@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GKCFWK092527; Thu, 16 Jan 2020 20:12:15 GMT (envelope-from krion@FreeBSD.org) Message-Id: <202001162012.00GKCFWK092527@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: krion set sender to krion@FreeBSD.org using -f From: Kirill Ponomarev Date: Thu, 16 Jan 2020 20:12:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356801 - head/sys/netgraph X-SVN-Group: head X-SVN-Commit-Author: krion X-SVN-Commit-Paths: head/sys/netgraph X-SVN-Commit-Revision: 356801 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:12:16 -0000 Author: krion (ports committer) Date: Thu Jan 16 20:12:15 2020 New Revision: 356801 URL: https://svnweb.freebsd.org/changeset/base/356801 Log: Generate MAC address from the FreeBSD OUI range. Submitted by: aleksandr.fedorov_vstack_com Approved by: kevans Differential Revision: https://reviews.freebsd.org/D23168 Modified: head/sys/netgraph/ng_eiface.c Modified: head/sys/netgraph/ng_eiface.c ============================================================================== --- head/sys/netgraph/ng_eiface.c Thu Jan 16 20:02:41 2020 (r356800) +++ head/sys/netgraph/ng_eiface.c Thu Jan 16 20:12:15 2020 (r356801) @@ -385,7 +385,7 @@ ng_eiface_constructor(node_p node) { struct ifnet *ifp; priv_p priv; - u_char eaddr[6] = {0,0,0,0,0,0}; + struct ether_addr eaddr; /* Allocate node and interface private structures */ priv = malloc(sizeof(*priv), M_NETGRAPH, M_WAITOK | M_ZERO); @@ -435,7 +435,8 @@ ng_eiface_constructor(node_p node) ifp->if_xname); /* Attach the interface */ - ether_ifattach(ifp, eaddr); + ether_gen_addr(ifp, &eaddr); + ether_ifattach(ifp, eaddr.octet); ifp->if_baudrate = ifmedia_baudrate(IFM_ETHER | IFM_1000_T); /* Done */ From owner-svn-src-all@freebsd.org Thu Jan 16 20:16:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 21A881F469B; Thu, 16 Jan 2020 20:16:55 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFpb06hMz4XGk; Thu, 16 Jan 2020 20:16:55 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) (Authenticated sender: kevans) by smtp.freebsd.org (Postfix) with ESMTPSA id E66C04D89; Thu, 16 Jan 2020 20:16:54 +0000 (UTC) (envelope-from kevans@freebsd.org) Received: by mail-qt1-f176.google.com with SMTP id i13so20008164qtr.3; Thu, 16 Jan 2020 12:16:54 -0800 (PST) X-Gm-Message-State: APjAAAV/GUrx7lmfOVFo59NTcBOXMw0kTMJ83g9kGXmgtr9GHUBpPyWj CGCP0HVD7luFteeJ1q2c8JEmRchU4ZDXl+p3Ang= X-Google-Smtp-Source: APXvYqyoqCMoPJGQgscSrh5ymDASQJd/O5HB2Mm7tOkuAtssL/JdnSEpyb1hpD2zTwq1I5B9kA4CfsAIGwjko+HBJ7s= X-Received: by 2002:aed:2fa1:: with SMTP id m30mr4016464qtd.211.1579205814504; Thu, 16 Jan 2020 12:16:54 -0800 (PST) MIME-Version: 1.0 References: <202001162012.00GKCFWK092527@repo.freebsd.org> In-Reply-To: <202001162012.00GKCFWK092527@repo.freebsd.org> From: Kyle Evans Date: Thu, 16 Jan 2020 14:16:42 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: svn commit: r356801 - head/sys/netgraph To: Kirill Ponomarev , Julian Elischer Cc: src-committers , svn-src-all , svn-src-head Content-Type: text/plain; charset="UTF-8" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:16:55 -0000 On Thu, Jan 16, 2020 at 2:12 PM Kirill Ponomarev wrote: > > Author: krion (ports committer) > Date: Thu Jan 16 20:12:15 2020 > New Revision: 356801 > URL: https://svnweb.freebsd.org/changeset/base/356801 > > Log: > Generate MAC address from the FreeBSD OUI range. > > Submitted by: aleksandr.fedorov_vstack_com > Approved by: kevans > Differential Revision: https://reviews.freebsd.org/D23168 > Err, I was kinda wanting to get a sanity check from Julian before proceeding on this... I've CC'd him here, patch included below since it's minimal. Thanks, Kyle Evans > Modified: > head/sys/netgraph/ng_eiface.c > > Modified: head/sys/netgraph/ng_eiface.c > ============================================================================== > --- head/sys/netgraph/ng_eiface.c Thu Jan 16 20:02:41 2020 (r356800) > +++ head/sys/netgraph/ng_eiface.c Thu Jan 16 20:12:15 2020 (r356801) > @@ -385,7 +385,7 @@ ng_eiface_constructor(node_p node) > { > struct ifnet *ifp; > priv_p priv; > - u_char eaddr[6] = {0,0,0,0,0,0}; > + struct ether_addr eaddr; > > /* Allocate node and interface private structures */ > priv = malloc(sizeof(*priv), M_NETGRAPH, M_WAITOK | M_ZERO); > @@ -435,7 +435,8 @@ ng_eiface_constructor(node_p node) > ifp->if_xname); > > /* Attach the interface */ > - ether_ifattach(ifp, eaddr); > + ether_gen_addr(ifp, &eaddr); > + ether_ifattach(ifp, eaddr.octet); > ifp->if_baudrate = ifmedia_baudrate(IFM_ETHER | IFM_1000_T); > > /* Done */ > _______________________________________________ > 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-unsubscribe@freebsd.org" From owner-svn-src-all@freebsd.org Thu Jan 16 20:19:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 96FC51F47C0; Thu, 16 Jan 2020 20:19:20 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zFsN3WW7z4XSR; Thu, 16 Jan 2020 20:19:20 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 740D8250D6; Thu, 16 Jan 2020 20:19:20 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GKJKnx095198; Thu, 16 Jan 2020 20:19:20 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GKJKMN095197; Thu, 16 Jan 2020 20:19:20 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162019.00GKJKMN095197@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 20:19:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356802 - head/sys/arm/allwinner X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm/allwinner X-SVN-Commit-Revision: 356802 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:19:20 -0000 Author: manu Date: Thu Jan 16 20:19:20 2020 New Revision: 356802 URL: https://svnweb.freebsd.org/changeset/base/356802 Log: arm: allwinner: ahci: target-supply is optional The target-supply regulator is optional so don't fail if it's not present. While here disable the clock on detach. MFC after: 2 weeks X-MFC-With: 356600 Modified: head/sys/arm/allwinner/a10_ahci.c Modified: head/sys/arm/allwinner/a10_ahci.c ============================================================================== --- head/sys/arm/allwinner/a10_ahci.c Thu Jan 16 20:12:15 2020 (r356801) +++ head/sys/arm/allwinner/a10_ahci.c Thu Jan 16 20:19:20 2020 (r356802) @@ -122,6 +122,8 @@ __FBSDID("$FreeBSD$"); struct ahci_a10_softc { struct ahci_controller ahci_ctlr; regulator_t ahci_reg; + clk_t clk_pll; + clk_t clk_gate; }; static void inline @@ -303,11 +305,9 @@ ahci_a10_attach(device_t dev) int error; struct ahci_a10_softc *sc; struct ahci_controller *ctlr; - clk_t clk_pll, clk_gate; sc = device_get_softc(dev); ctlr = &sc->ahci_ctlr; - clk_pll = clk_gate = NULL; ctlr->quirks = AHCI_Q_NOPMP; ctlr->vendorid = 0; @@ -319,41 +319,38 @@ ahci_a10_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return (ENXIO); - /* Enable the regulator */ - error = regulator_get_by_ofw_property(dev, 0, "target-supply", - &sc->ahci_reg); - if (error != 0) { - device_printf(dev, "Cannot get regulator\n"); - goto fail; + /* Enable the (optional) regulator */ + if (regulator_get_by_ofw_property(dev, 0, "target-supply", + &sc->ahci_reg) == 0) { + error = regulator_enable(sc->ahci_reg); + if (error != 0) { + device_printf(dev, "Could not enable regulator\n"); + goto fail; + } } - error = regulator_enable(sc->ahci_reg); - if (error != 0) { - device_printf(dev, "Could not enable regulator\n"); - goto fail; - } /* Enable clocks */ - error = clk_get_by_ofw_index(dev, 0, 0, &clk_gate); + error = clk_get_by_ofw_index(dev, 0, 0, &sc->clk_gate); if (error != 0) { device_printf(dev, "Cannot get gate clock\n"); goto fail; } - error = clk_get_by_ofw_index(dev, 0, 1, &clk_pll); + error = clk_get_by_ofw_index(dev, 0, 1, &sc->clk_pll); if (error != 0) { device_printf(dev, "Cannot get PLL clock\n"); goto fail; } - error = clk_set_freq(clk_pll, PLL_FREQ, CLK_SET_ROUND_DOWN); + error = clk_set_freq(sc->clk_pll, PLL_FREQ, CLK_SET_ROUND_DOWN); if (error != 0) { device_printf(dev, "Cannot set PLL frequency\n"); goto fail; } - error = clk_enable(clk_pll); + error = clk_enable(sc->clk_pll); if (error != 0) { device_printf(dev, "Cannot enable PLL\n"); goto fail; } - error = clk_enable(clk_gate); + error = clk_enable(sc->clk_gate); if (error != 0) { device_printf(dev, "Cannot enable clk gate\n"); goto fail; @@ -378,12 +375,12 @@ ahci_a10_attach(device_t dev) return (ahci_attach(dev)); fail: - if (sc->ahci_reg != 0) + if (sc->ahci_reg != NULL) regulator_disable(sc->ahci_reg); - if (clk_gate != NULL) - clk_release(clk_gate); - if (clk_pll != NULL) - clk_release(clk_pll); + if (sc->clk_gate != NULL) + clk_release(sc->clk_gate); + if (sc->clk_pll != NULL) + clk_release(sc->clk_pll); bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); return (error); } @@ -391,7 +388,19 @@ fail: static int ahci_a10_detach(device_t dev) { + struct ahci_a10_softc *sc; + struct ahci_controller *ctlr; + sc = device_get_softc(dev); + ctlr = &sc->ahci_ctlr; + + if (sc->ahci_reg != NULL) + regulator_disable(sc->ahci_reg); + if (sc->clk_gate != NULL) + clk_release(sc->clk_gate); + if (sc->clk_pll != NULL) + clk_release(sc->clk_pll); + bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); return (ahci_detach(dev)); } From owner-svn-src-all@freebsd.org Thu Jan 16 20:40:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 47D7E1F53C4; Thu, 16 Jan 2020 20:40:16 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (glebi.us [162.251.186.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "cell.glebi.us", Issuer "cell.glebi.us" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zGKW5YM2z4Yjm; Thu, 16 Jan 2020 20:40:15 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from cell.glebi.us (localhost [127.0.0.1]) by cell.glebi.us (8.15.2/8.15.2) with ESMTPS id 00GKe5eU001318 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Thu, 16 Jan 2020 12:40:05 -0800 (PST) (envelope-from glebius@freebsd.org) Received: (from glebius@localhost) by cell.glebi.us (8.15.2/8.15.2/Submit) id 00GKe5bW001317; Thu, 16 Jan 2020 12:40:05 -0800 (PST) (envelope-from glebius@freebsd.org) X-Authentication-Warning: cell.glebi.us: glebius set sender to glebius@freebsd.org using -f Date: Thu, 16 Jan 2020 12:40:05 -0800 From: Gleb Smirnoff To: Cy Schubert Cc: Jeff Roberson , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r356755 - in head/sys: net netinet netinet6 netpfil/ipfw/nat64 sys Message-ID: <20200116204005.GV39529@FreeBSD.org> References: <202001150605.00F65Kc8011526@repo.freebsd.org> <20200115223805.GT39529@FreeBSD.org> <3AB19154-C8EF-4372-B196-70917DCEFE31@cschubert.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3AB19154-C8EF-4372-B196-70917DCEFE31@cschubert.com> User-Agent: Mutt/1.12.2 (2019-09-21) X-Rspamd-Queue-Id: 47zGKW5YM2z4Yjm X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-1.55 / 15.00]; local_wl_from(0.00)[freebsd.org]; NEURAL_HAM_MEDIUM(-0.66)[-0.656,0]; NEURAL_HAM_LONG(-0.89)[-0.894,0]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:40:16 -0000 On Thu, Jan 16, 2020 at 12:06:17PM -0800, Cy Schubert wrote: C> On January 15, 2020 2:38:05 PM PST, Gleb Smirnoff wrote: C> >On Wed, Jan 15, 2020 at 09:44:53AM -1000, Jeff Roberson wrote: C> >J> On Wed, 15 Jan 2020, Gleb Smirnoff wrote: C> >J> C> >J> > Author: glebius C> >J> > Date: Wed Jan 15 06:05:20 2020 C> >J> > New Revision: 356755 C> >J> > URL: https://svnweb.freebsd.org/changeset/base/356755 C> >J> > C> >J> > Log: C> >J> > Introduce NET_EPOCH_CALL() macro and use it everywhere where we C> >free C> >J> > data based on the network epoch. The macro reverses the C> >argument C> >J> > order of epoch_call(9) - first function, then its argument. NFC C> >J> C> >J> Is there some practical impact of changing the argument order or C> >does it C> >J> just seem more natural to you? C> > C> >It is just more natural. I'm suggesting to change prototype of C> >epoch_call() C> >to the same order as well. C> C> Yes. C> C> Are there any ports that might be affected, such as kms-drm or virtualbox-ose-kmod? I'm not aware of any software outside /usr/src/sys that uses epoch. -- Gleb Smirnoff From owner-svn-src-all@freebsd.org Thu Jan 16 20:52:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D90131F5A05; Thu, 16 Jan 2020 20:52:26 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zGbZ5TWRz4ZXT; Thu, 16 Jan 2020 20:52:26 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B777125875; Thu, 16 Jan 2020 20:52:26 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GKqQgr018562; Thu, 16 Jan 2020 20:52:26 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GKqQYb018561; Thu, 16 Jan 2020 20:52:26 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162052.00GKqQYb018561@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 20:52:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356803 - head/sys/dev/extres/regulator X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/extres/regulator X-SVN-Commit-Revision: 356803 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:52:26 -0000 Author: manu Date: Thu Jan 16 20:52:26 2020 New Revision: 356803 URL: https://svnweb.freebsd.org/changeset/base/356803 Log: regulator_fixed: Add a get_voltage method Some consumer cannot know the voltage of the regulator without it. While here, refuse to attach is min_voltage != max_voltage, it shouldn't happens anyway. Reviewed by: mmel MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D23003 Modified: head/sys/dev/extres/regulator/regulator_fixed.c Modified: head/sys/dev/extres/regulator/regulator_fixed.c ============================================================================== --- head/sys/dev/extres/regulator/regulator_fixed.c Thu Jan 16 20:19:20 2020 (r356802) +++ head/sys/dev/extres/regulator/regulator_fixed.c Thu Jan 16 20:52:26 2020 (r356803) @@ -73,6 +73,7 @@ static int regnode_fixed_enable(struct regnode *regnod int *udelay); static int regnode_fixed_status(struct regnode *regnode, int *status); static int regnode_fixed_stop(struct regnode *regnode, int *udelay); +static int regnode_fixed_get_voltage(struct regnode *regnode, int *uvolt); static regnode_method_t regnode_fixed_methods[] = { /* Regulator interface */ @@ -80,6 +81,7 @@ static regnode_method_t regnode_fixed_methods[] = { REGNODEMETHOD(regnode_enable, regnode_fixed_enable), REGNODEMETHOD(regnode_status, regnode_fixed_status), REGNODEMETHOD(regnode_stop, regnode_fixed_stop), + REGNODEMETHOD(regnode_get_voltage, regnode_fixed_get_voltage), REGNODEMETHOD(regnode_check_voltage, regnode_method_check_voltage), REGNODEMETHOD_END }; @@ -280,6 +282,16 @@ regnode_fixed_status(struct regnode *regnode, int *sta return (rv); } +static int +regnode_fixed_get_voltage(struct regnode *regnode, int *uvolt) +{ + struct regnode_fixed_sc *sc; + + sc = regnode_get_softc(regnode); + *uvolt = sc->param->min_uvolt; + return (0); +} + int regnode_fixed_register(device_t dev, struct regnode_fixed_init_def *init_def) { @@ -382,6 +394,10 @@ regfix_parse_fdt(struct regfix_softc * sc) return(rv); } + if (init_def->std_param.min_uvolt != init_def->std_param.max_uvolt) { + device_printf(sc->dev, "min_uvolt != max_uvolt\n"); + return (ENXIO); + } /* Fixed regulator uses 'startup-delay-us' property for enable_delay */ rv = OF_getencprop(node, "startup-delay-us", &init_def->std_param.enable_delay, From owner-svn-src-all@freebsd.org Thu Jan 16 20:55:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 11B5A1F5B74; Thu, 16 Jan 2020 20:55:16 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zGfq6ZKqz4ZlD; Thu, 16 Jan 2020 20:55:15 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id DCBF52588C; Thu, 16 Jan 2020 20:55:15 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GKtFWQ018805; Thu, 16 Jan 2020 20:55:15 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GKtFMO018802; Thu, 16 Jan 2020 20:55:15 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202001162055.00GKtFMO018802@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Thu, 16 Jan 2020 20:55:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356804 - in stable/12/sys: dev/netmap net X-SVN-Group: stable-12 X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: in stable/12/sys: dev/netmap net X-SVN-Commit-Revision: 356804 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:55:16 -0000 Author: vmaffione Date: Thu Jan 16 20:55:15 2020 New Revision: 356804 URL: https://svnweb.freebsd.org/changeset/base/356804 Log: MFC r356704 netmap: disable passthrough with no hypervisor support The netmap passthrough subsystem requires proper support in the hypervisor. In particular, two PCI device ids (from the Red Hat PCI vendor id 0x1b36) need to be assigned to the two netmap virtual devices. We then disable these devices until the ids have not been assigned, in order to avoid conflicts with other virtual devices emulated by upstream QEMU. PR: 241774 Modified: stable/12/sys/dev/netmap/if_ptnet.c stable/12/sys/dev/netmap/netmap_kern.h stable/12/sys/net/netmap_virt.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/netmap/if_ptnet.c ============================================================================== --- stable/12/sys/dev/netmap/if_ptnet.c Thu Jan 16 20:52:26 2020 (r356803) +++ stable/12/sys/dev/netmap/if_ptnet.c Thu Jan 16 20:55:15 2020 (r356804) @@ -87,6 +87,8 @@ #include #include +#ifdef WITH_PTNETMAP + #ifndef INET #error "INET not defined, cannot support offloadings" #endif @@ -2291,3 +2293,4 @@ ptnet_poll(if_t ifp, enum poll_cmd cmd, int budget) return count; } #endif /* DEVICE_POLLING */ +#endif /* WITH_PTNETMAP */ Modified: stable/12/sys/dev/netmap/netmap_kern.h ============================================================================== --- stable/12/sys/dev/netmap/netmap_kern.h Thu Jan 16 20:52:26 2020 (r356803) +++ stable/12/sys/dev/netmap/netmap_kern.h Thu Jan 16 20:55:15 2020 (r356804) @@ -76,7 +76,6 @@ #define WITH_PIPES #define WITH_MONITOR #define WITH_GENERIC -#define WITH_PTNETMAP /* ptnetmap guest support */ #define WITH_EXTMEM #define WITH_NMNULL #endif Modified: stable/12/sys/net/netmap_virt.h ============================================================================== --- stable/12/sys/net/netmap_virt.h Thu Jan 16 20:52:26 2020 (r356803) +++ stable/12/sys/net/netmap_virt.h Thu Jan 16 20:55:15 2020 (r356804) @@ -44,8 +44,8 @@ /* PCI identifiers and PCI BARs for ptnetmap-memdev and ptnet. */ #define PTNETMAP_MEMDEV_NAME "ptnetmap-memdev" #define PTNETMAP_PCI_VENDOR_ID 0x1b36 /* QEMU virtual devices */ -#define PTNETMAP_PCI_DEVICE_ID 0x000c /* memory device */ -#define PTNETMAP_PCI_NETIF_ID 0x000d /* ptnet network interface */ +#define PTNETMAP_PCI_DEVICE_ID 0xcccc /* memory device */ +#define PTNETMAP_PCI_NETIF_ID 0xcccd /* ptnet network interface */ #define PTNETMAP_IO_PCI_BAR 0 #define PTNETMAP_MEM_PCI_BAR 1 #define PTNETMAP_MSIX_PCI_BAR 2 From owner-svn-src-all@freebsd.org Thu Jan 16 20:57:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 273671F5C6E; Thu, 16 Jan 2020 20:57:30 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zGjQ0CYXz4Zx5; Thu, 16 Jan 2020 20:57:30 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0282C258D8; Thu, 16 Jan 2020 20:57:30 +0000 (UTC) (envelope-from vmaffione@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GKvT9h018956; Thu, 16 Jan 2020 20:57:29 GMT (envelope-from vmaffione@FreeBSD.org) Received: (from vmaffione@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GKvT6M018954; Thu, 16 Jan 2020 20:57:29 GMT (envelope-from vmaffione@FreeBSD.org) Message-Id: <202001162057.00GKvT6M018954@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: vmaffione set sender to vmaffione@FreeBSD.org using -f From: Vincenzo Maffione Date: Thu, 16 Jan 2020 20:57:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356805 - in stable/11/sys: dev/netmap net X-SVN-Group: stable-11 X-SVN-Commit-Author: vmaffione X-SVN-Commit-Paths: in stable/11/sys: dev/netmap net X-SVN-Commit-Revision: 356805 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 20:57:30 -0000 Author: vmaffione Date: Thu Jan 16 20:57:29 2020 New Revision: 356805 URL: https://svnweb.freebsd.org/changeset/base/356805 Log: MFC r356704 netmap: disable passthrough with no hypervisor support The netmap passthrough subsystem requires proper support in the hypervisor. In particular, two PCI device ids (from the Red Hat PCI vendor id 0x1b36) need to be assigned to the two netmap virtual devices. We then disable these devices until the ids have not been assigned, in order to avoid conflicts with other virtual devices emulated by upstream QEMU. PR: 241774 Modified: stable/11/sys/dev/netmap/netmap_kern.h stable/11/sys/net/netmap_virt.h Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/netmap/netmap_kern.h ============================================================================== --- stable/11/sys/dev/netmap/netmap_kern.h Thu Jan 16 20:55:15 2020 (r356804) +++ stable/11/sys/dev/netmap/netmap_kern.h Thu Jan 16 20:57:29 2020 (r356805) @@ -74,7 +74,6 @@ #define WITH_PIPES #define WITH_MONITOR #define WITH_GENERIC -#define WITH_PTNETMAP /* ptnetmap guest support */ #define WITH_EXTMEM #define WITH_NMNULL #endif Modified: stable/11/sys/net/netmap_virt.h ============================================================================== --- stable/11/sys/net/netmap_virt.h Thu Jan 16 20:55:15 2020 (r356804) +++ stable/11/sys/net/netmap_virt.h Thu Jan 16 20:57:29 2020 (r356805) @@ -44,8 +44,8 @@ /* PCI identifiers and PCI BARs for ptnetmap-memdev and ptnet. */ #define PTNETMAP_MEMDEV_NAME "ptnetmap-memdev" #define PTNETMAP_PCI_VENDOR_ID 0x1b36 /* QEMU virtual devices */ -#define PTNETMAP_PCI_DEVICE_ID 0x000c /* memory device */ -#define PTNETMAP_PCI_NETIF_ID 0x000d /* ptnet network interface */ +#define PTNETMAP_PCI_DEVICE_ID 0xcccc /* memory device */ +#define PTNETMAP_PCI_NETIF_ID 0xcccd /* ptnet network interface */ #define PTNETMAP_IO_PCI_BAR 0 #define PTNETMAP_MEM_PCI_BAR 1 #define PTNETMAP_MSIX_PCI_BAR 2 From owner-svn-src-all@freebsd.org Thu Jan 16 21:19:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E52051F64DD; Thu, 16 Jan 2020 21:19:27 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHBl5ltTz4c9s; Thu, 16 Jan 2020 21:19:27 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A6D1E25CE4; Thu, 16 Jan 2020 21:19:27 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLJRG7039364; Thu, 16 Jan 2020 21:19:27 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLJR56039362; Thu, 16 Jan 2020 21:19:27 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162119.00GLJR56039362@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 21:19:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356806 - in head: share/man/man9 sys/dev/fdt X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head: share/man/man9 sys/dev/fdt X-SVN-Commit-Revision: 356806 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:19:28 -0000 Author: manu Date: Thu Jan 16 21:19:27 2020 New Revision: 356806 URL: https://svnweb.freebsd.org/changeset/base/356806 Log: fdt_pinctrl: Add new methods for gpios Most of the gpio controller cannot configure or get the configuration of the pin muxing as it's usually handled in the pinctrl driver. But they can know what is the pinmuxing driver either because they are child of it or via the gpio-range property. Add some new methods to fdt_pinctrl that a pin controller can implement. Some methods are : fdt_pinctrl_is_gpio: Use to know if the pin in the gpio mode fdt_pinctrl_set_flags: Set the flags of the pin (pullup/pulldown etc ...) fdt_pinctrl_get_flags: Get the flags of the pin (pullup/pulldown etc ...) The defaults method returns EOPNOTSUPP. Reviewed by: ian, bcr (manpages) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D23093 Modified: head/share/man/man9/fdt_pinctrl.9 head/sys/dev/fdt/fdt_pinctrl_if.m Modified: head/share/man/man9/fdt_pinctrl.9 ============================================================================== --- head/share/man/man9/fdt_pinctrl.9 Thu Jan 16 20:57:29 2020 (r356805) +++ head/share/man/man9/fdt_pinctrl.9 Thu Jan 16 21:19:27 2020 (r356806) @@ -125,6 +125,36 @@ foo_configure_pins(device_t dev, phandle_t cfgxref) } static int +foo_is_gpio(device_t dev, device_t gpiodev, bool *is_gpio) +{ + return (foo_is_pin_func_gpio(is_gpio)); +} + +static int +foo_set_flags(device_t dev, device_t gpiodev, uint32_t pin, uint32_t flags) +{ + int rv; + + rv = foo_is_pin_func_gpio(is_gpio); + if (rv != 0) + return (rv); + foo_set_flags(pin, flags); + return (0); +} + +static int +foo_get_flags(device_t dev, device_t gpiodev, uint32_t pin, uint32_t *flags) +{ + int rv; + + rv = foo_is_pin_func_gpio(is_gpio); + if (rv != 0) + return (rv); + foo_get_flags(pin, flags); + return (0); +} + +static int foo_attach(device_t dev) { ... @@ -144,6 +174,9 @@ static device_method_t foo_methods[] = { /* fdt_pinctrl interface */ DEVMETHOD(fdt_pinctrl_configure, foo_configure_pins), + DEVMETHOD(fdt_pinctrl_is_gpio, foo_is_gpio), + DEVMETHOD(fdt_pinctrl_set_flags, foo_set_flags), + DEVMETHOD(fdt_pinctrl_get_flags, foo_get_flags), /* Terminate method list */ DEVMETHOD_END Modified: head/sys/dev/fdt/fdt_pinctrl_if.m ============================================================================== --- head/sys/dev/fdt/fdt_pinctrl_if.m Thu Jan 16 20:57:29 2020 (r356805) +++ head/sys/dev/fdt/fdt_pinctrl_if.m Thu Jan 16 21:19:27 2020 (r356806) @@ -36,6 +36,31 @@ INTERFACE fdt_pinctrl; +CODE { + static int + fdt_pinctrl_default_is_gpio(device_t pinctrl, device_t gpio, bool *is_gpio) + { + + return (EOPNOTSUPP); + } + + static int + fdt_pinctrl_default_set_flags(device_t pinctrl, device_t gpio, uint32_t pin, + uint32_t flags) + { + + return (EOPNOTSUPP); + } + + static int + fdt_pinctrl_default_get_flags(device_t pinctrl, device_t gpio, uint32_t pin, + uint32_t *flags) + { + + return (EOPNOTSUPP); + } +}; + # Needed for timestamping device probe/attach calls HEADER { #include @@ -57,3 +82,36 @@ METHOD int configure { phandle_t cfgxref; }; + +# +# Test if the pin is in gpio mode +# Called from a gpio device +# +METHOD int is_gpio { + device_t pinctrl; + device_t gpio; + uint32_t pin; + bool *is_gpio; +} DEFAULT fdt_pinctrl_default_is_gpio; + +# +# Set the flags of a pin +# Called from a gpio device +# +METHOD int set_flags { + device_t pinctrl; + device_t gpio; + uint32_t pin; + uint32_t flags; +} DEFAULT fdt_pinctrl_default_set_flags; + +# +# Get the flags of a pin +# Called from a gpio device +# +METHOD int get_flags { + device_t pinctrl; + device_t gpio; + uint32_t pin; + uint32_t *flags; +} DEFAULT fdt_pinctrl_default_get_flags; From owner-svn-src-all@freebsd.org Thu Jan 16 21:21:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 266B21F65A0; Thu, 16 Jan 2020 21:21:21 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHDx0F5Gz4cVX; Thu, 16 Jan 2020 21:21:21 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0379725D51; Thu, 16 Jan 2020 21:21:21 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLLKN0040174; Thu, 16 Jan 2020 21:21:20 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLLKqj040172; Thu, 16 Jan 2020 21:21:20 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162121.00GLLKqj040172@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 21:21:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356807 - head/sys/arm64/rockchip X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/arm64/rockchip X-SVN-Commit-Revision: 356807 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:21:21 -0000 Author: manu Date: Thu Jan 16 21:21:20 2020 New Revision: 356807 URL: https://svnweb.freebsd.org/changeset/base/356807 Log: arm64: rockchip: Add new interface for rk_pinctrl The gpio controller in rockchips SoC in a child of the pinctrl driver and cannot control pullups and pulldowns. Use the new fdt_pinctrl interface for accessing pin capabilities and setting them. We can now report that every pins is capable of being IN or OUT function and PULLUP PULLDOWN. If the pin isn't in gpio mode no changes will be allowed. Reviewed by: ganbold (previous version) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D22849 Modified: head/sys/arm64/rockchip/rk_gpio.c head/sys/arm64/rockchip/rk_pinctrl.c Modified: head/sys/arm64/rockchip/rk_gpio.c ============================================================================== --- head/sys/arm64/rockchip/rk_gpio.c Thu Jan 16 21:19:27 2020 (r356806) +++ head/sys/arm64/rockchip/rk_gpio.c Thu Jan 16 21:21:20 2020 (r356807) @@ -51,6 +51,8 @@ __FBSDID("$FreeBSD$"); #include "gpio_if.h" +#include "fdt_pinctrl_if.h" + #define RK_GPIO_SWPORTA_DR 0x00 /* Data register */ #define RK_GPIO_SWPORTA_DDR 0x04 /* Data direction register */ @@ -68,6 +70,9 @@ __FBSDID("$FreeBSD$"); #define RK_GPIO_LS_SYNC 0x60 /* Level sensitive syncronization enable register */ +#define RK_GPIO_DEFAULT_CAPS (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT | \ + GPIO_PIN_PULLUP | GPIO_PIN_PULLDOWN) + struct rk_gpio_softc { device_t sc_dev; device_t sc_busdev; @@ -76,6 +81,7 @@ struct rk_gpio_softc { bus_space_tag_t sc_bst; bus_space_handle_t sc_bsh; clk_t clk; + device_t pinctrl; }; static struct ofw_compat_data compat_data[] = { @@ -123,6 +129,7 @@ rk_gpio_attach(device_t dev) sc = device_get_softc(dev); sc->sc_dev = dev; + sc->pinctrl = device_get_parent(dev); node = ofw_bus_get_node(sc->sc_dev); if (!OF_hasprop(node, "gpio-controller")) @@ -220,18 +227,30 @@ rk_gpio_pin_getflags(device_t dev, uint32_t pin, uint3 { struct rk_gpio_softc *sc; uint32_t reg; + int rv; + bool is_gpio; sc = device_get_softc(dev); - /* XXX Combine this with parent (pinctrl) */ + rv = FDT_PINCTRL_IS_GPIO(sc->pinctrl, dev, pin, &is_gpio); + if (rv != 0) + return (rv); + if (!is_gpio) + return (EINVAL); + + *flags = 0; + rv = FDT_PINCTRL_GET_FLAGS(sc->pinctrl, dev, pin, flags); + if (rv != 0) + return (rv); + RK_GPIO_LOCK(sc); reg = RK_GPIO_READ(sc, RK_GPIO_SWPORTA_DDR); RK_GPIO_UNLOCK(sc); if (reg & (1 << pin)) - *flags = GPIO_PIN_OUTPUT; + *flags |= GPIO_PIN_OUTPUT; else - *flags = GPIO_PIN_INPUT; + *flags |= GPIO_PIN_INPUT; return (0); } @@ -240,9 +259,7 @@ static int rk_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) { - /* Caps are managed by the pinctrl device */ - /* XXX Pass this to parent (pinctrl) */ - *caps = 0; + *caps = RK_GPIO_DEFAULT_CAPS; return (0); } @@ -251,10 +268,21 @@ rk_gpio_pin_setflags(device_t dev, uint32_t pin, uint3 { struct rk_gpio_softc *sc; uint32_t reg; + int rv; + bool is_gpio; sc = device_get_softc(dev); - /* XXX Combine this with parent (pinctrl) */ + rv = FDT_PINCTRL_IS_GPIO(sc->pinctrl, dev, pin, &is_gpio); + if (rv != 0) + return (rv); + if (!is_gpio) + return (EINVAL); + + rv = FDT_PINCTRL_SET_FLAGS(sc->pinctrl, dev, pin, flags); + if (rv != 0) + return (rv); + RK_GPIO_LOCK(sc); reg = RK_GPIO_READ(sc, RK_GPIO_SWPORTA_DDR); Modified: head/sys/arm64/rockchip/rk_pinctrl.c ============================================================================== --- head/sys/arm64/rockchip/rk_pinctrl.c Thu Jan 16 21:19:27 2020 (r356806) +++ head/sys/arm64/rockchip/rk_pinctrl.c Thu Jan 16 21:21:20 2020 (r356807) @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include "gpio_if.h" #include "syscon_if.h" +#include "fdt_pinctrl_if.h" struct rk_pinctrl_pin_drive { uint32_t bank; @@ -101,6 +102,8 @@ struct rk_pinctrl_conf { uint32_t (*get_pd_offset)(struct rk_pinctrl_softc *, uint32_t); struct syscon *(*get_syscon)(struct rk_pinctrl_softc *, uint32_t); int (*parse_bias)(phandle_t, int); + int (*resolv_bias_value)(int, int); + int (*get_bias_value)(int, int); }; struct rk_pinctrl_softc { @@ -109,8 +112,13 @@ struct rk_pinctrl_softc { struct syscon *grf; struct syscon *pmu; struct rk_pinctrl_conf *conf; + struct mtx mtx; }; +#define RK_PINCTRL_LOCK(_sc) mtx_lock_spin(&(_sc)->mtx) +#define RK_PINCTRL_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->mtx) +#define RK_PINCTRL_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->mtx, MA_OWNED) + #define RK_IOMUX(_bank, _subbank, _offset, _nbits) \ { \ .bank = _bank, \ @@ -384,6 +392,32 @@ rk3288_parse_bias(phandle_t node, int bank) return (-1); } +static int +rk3288_resolv_bias_value(int bank, int bias) +{ + int rv = 0; + + if (bias == 1) + rv = GPIO_PIN_PULLUP; + else if (bias == 2) + rv = GPIO_PIN_PULLDOWN; + + return (rv); +} + +static int +rk3288_get_bias_value(int bank, int bias) +{ + int rv = 0; + + if (bias & GPIO_PIN_PULLUP) + rv = 1; + else if (bias & GPIO_PIN_PULLDOWN) + rv = 2; + + return (rv); +} + struct rk_pinctrl_conf rk3288_conf = { .iomux_conf = rk3288_iomux_bank, .iomux_nbanks = nitems(rk3288_iomux_bank), @@ -396,6 +430,8 @@ struct rk_pinctrl_conf rk3288_conf = { .get_pd_offset = rk3288_get_pd_offset, .get_syscon = rk3288_get_syscon, .parse_bias = rk3288_parse_bias, + .resolv_bias_value = rk3288_resolv_bias_value, + .get_bias_value = rk3288_get_bias_value, }; static struct rk_pinctrl_gpio rk3328_gpio_bank[] = { @@ -540,6 +576,8 @@ struct rk_pinctrl_conf rk3328_conf = { .get_pd_offset = rk3328_get_pd_offset, .get_syscon = rk3328_get_syscon, .parse_bias = rk3288_parse_bias, + .resolv_bias_value = rk3288_resolv_bias_value, + .get_bias_value = rk3288_get_bias_value, }; static struct rk_pinctrl_gpio rk3399_gpio_bank[] = { @@ -663,6 +701,58 @@ rk3399_parse_bias(phandle_t node, int bank) return (-1); } +static int +rk3399_resolv_bias_value(int bank, int bias) +{ + int rv = 0; + + switch (bank) { + case 0: + case 2: + if (bias == 3) + rv = GPIO_PIN_PULLUP; + else if (bias == 1) + rv = GPIO_PIN_PULLDOWN; + break; + case 1: + case 3: + case 4: + if (bias == 1) + rv = GPIO_PIN_PULLUP; + else if (bias == 2) + rv = GPIO_PIN_PULLDOWN; + break; + } + + return (rv); +} + +static int +rk3399_get_bias_value(int bank, int bias) +{ + int rv = 0; + + switch (bank) { + case 0: + case 2: + if (bias & GPIO_PIN_PULLUP) + rv = 3; + else if (bias & GPIO_PIN_PULLDOWN) + rv = 1; + break; + case 1: + case 3: + case 4: + if (bias & GPIO_PIN_PULLUP) + rv = 1; + else if (bias & GPIO_PIN_PULLDOWN) + rv = 2; + break; + } + + return (rv); +} + struct rk_pinctrl_conf rk3399_conf = { .iomux_conf = rk3399_iomux_bank, .iomux_nbanks = nitems(rk3399_iomux_bank), @@ -675,6 +765,8 @@ struct rk_pinctrl_conf rk3399_conf = { .get_pd_offset = rk3399_get_pd_offset, .get_syscon = rk3399_get_syscon, .parse_bias = rk3399_parse_bias, + .resolv_bias_value = rk3399_resolv_bias_value, + .get_bias_value = rk3399_get_bias_value, }; static struct ofw_compat_data compat_data[] = { @@ -920,8 +1012,189 @@ rk_pinctrl_configure_pins(device_t dev, phandle_t cfgx return (0); } +static int +rk_pinctrl_is_gpio_locked(struct rk_pinctrl_softc *sc, struct syscon *syscon, + int bank, uint32_t pin, bool *is_gpio) +{ + uint32_t subbank, bit, mask, reg; + uint32_t pinfunc; + int i; + RK_PINCTRL_LOCK_ASSERT(sc); + + subbank = pin / 8; + *is_gpio = false; + + for (i = 0; i < sc->conf->iomux_nbanks; i++) + if (sc->conf->iomux_conf[i].bank == bank && + sc->conf->iomux_conf[i].subbank == subbank) + break; + + if (i == sc->conf->iomux_nbanks) { + device_printf(sc->dev, "Unknown pin %d in bank %d\n", pin, + bank); + return (EINVAL); + } + + syscon = sc->conf->get_syscon(sc, bank); + + /* Parse pin function */ + reg = sc->conf->iomux_conf[i].offset; + switch (sc->conf->iomux_conf[i].nbits) { + case 4: + if ((pin % 8) >= 4) + reg += 0x4; + bit = (pin % 4) * 4; + mask = (0xF << bit); + break; + case 3: + if ((pin % 8) >= 5) + reg += 4; + bit = (pin % 8 % 5) * 3; + mask = (0x7 << bit); + break; + case 2: + bit = (pin % 8) * 2; + mask = (0x3 << bit); + break; + default: + device_printf(sc->dev, + "Unknown pin stride width %d in bank %d\n", + sc->conf->iomux_conf[i].nbits, bank); + return (EINVAL); + } + rk_pinctrl_get_fixup(sc, bank, pin, ®, &mask, &bit); + + reg = SYSCON_READ_4(syscon, reg); + pinfunc = (reg & mask) >> bit; + + /* Test if the pin is in gpio mode */ + if (pinfunc == 0) + *is_gpio = true; + + return (0); +} + static int +rk_pinctrl_get_bank(struct rk_pinctrl_softc *sc, device_t gpio, int *bank) +{ + int i; + + for (i = 0; i < sc->conf->ngpio_bank; i++) { + if (sc->conf->gpio_bank[i].gpio_dev == gpio) + break; + } + if (i == sc->conf->ngpio_bank) + return (EINVAL); + + *bank = i; + return (0); +} + +static int +rk_pinctrl_is_gpio(device_t pinctrl, device_t gpio, uint32_t pin, bool *is_gpio) +{ + struct rk_pinctrl_softc *sc; + struct syscon *syscon; + int bank; + int rv; + + sc = device_get_softc(pinctrl); + RK_PINCTRL_LOCK(sc); + + rv = rk_pinctrl_get_bank(sc, gpio, &bank); + if (rv != 0) + goto done; + syscon = sc->conf->get_syscon(sc, bank); + rv = rk_pinctrl_is_gpio_locked(sc, syscon, bank, pin, is_gpio); + +done: + RK_PINCTRL_UNLOCK(sc); + + return (rv); +} + +static int +rk_pinctrl_get_flags(device_t pinctrl, device_t gpio, uint32_t pin, + uint32_t *flags) +{ + struct rk_pinctrl_softc *sc; + struct syscon *syscon; + uint32_t reg, mask, bit; + uint32_t bias; + int bank; + int rv = 0; + bool is_gpio; + + sc = device_get_softc(pinctrl); + RK_PINCTRL_LOCK(sc); + + rv = rk_pinctrl_get_bank(sc, gpio, &bank); + if (rv != 0) + goto done; + syscon = sc->conf->get_syscon(sc, bank); + rv = rk_pinctrl_is_gpio_locked(sc, syscon, bank, pin, &is_gpio); + if (rv != 0) + goto done; + if (!is_gpio) { + rv = EINVAL; + goto done; + } + /* Get the pullup/pulldown configuration */ + reg = sc->conf->get_pd_offset(sc, bank); + reg += bank * 0x10 + ((pin / 8) * 0x4); + bit = (pin % 8) * 2; + mask = (0x3 << bit) << 16; + reg = SYSCON_READ_4(syscon, reg); + reg = (reg >> bit) & 0x3; + bias = sc->conf->resolv_bias_value(bank, reg); + *flags = bias; + +done: + RK_PINCTRL_UNLOCK(sc); + return (rv); +} + +static int +rk_pinctrl_set_flags(device_t pinctrl, device_t gpio, uint32_t pin, + uint32_t flags) +{ + struct rk_pinctrl_softc *sc; + struct syscon *syscon; + uint32_t bit, mask, reg; + uint32_t bias; + int bank; + int rv = 0; + bool is_gpio; + + sc = device_get_softc(pinctrl); + RK_PINCTRL_LOCK(sc); + + rv = rk_pinctrl_get_bank(sc, gpio, &bank); + if (rv != 0) + goto done; + syscon = sc->conf->get_syscon(sc, bank); + rv = rk_pinctrl_is_gpio_locked(sc, syscon, bank, pin, &is_gpio); + if (rv != 0) + goto done; + if (!is_gpio) { + rv = EINVAL; + goto done; + } + /* Get the pullup/pulldown configuration */ + reg = sc->conf->get_pd_offset(sc, bank); + reg += bank * 0x10 + ((pin / 8) * 0x4); + bit = (pin % 8) * 2; + mask = (0x3 << bit); + bias = sc->conf->get_bias_value(bank, flags); + SYSCON_MODIFY_4(syscon, reg, mask, bias << bit | (mask << 16)); + +done: + RK_PINCTRL_UNLOCK(sc); + return (rv); +} + +static int rk_pinctrl_register_gpio(struct rk_pinctrl_softc *sc, char *gpio_name, device_t gpio_dev) { @@ -982,6 +1255,8 @@ rk_pinctrl_attach(device_t dev) } } + mtx_init(&sc->mtx, "rk pinctrl", "pinctrl", MTX_SPIN); + sc->conf = (struct rk_pinctrl_conf *)ofw_bus_search_compatible(dev, compat_data)->ocd_data; @@ -1059,6 +1334,9 @@ static device_method_t rk_pinctrl_methods[] = { /* fdt_pinctrl interface */ DEVMETHOD(fdt_pinctrl_configure, rk_pinctrl_configure_pins), + DEVMETHOD(fdt_pinctrl_is_gpio, rk_pinctrl_is_gpio), + DEVMETHOD(fdt_pinctrl_get_flags, rk_pinctrl_get_flags), + DEVMETHOD(fdt_pinctrl_set_flags, rk_pinctrl_set_flags), DEVMETHOD_END }; From owner-svn-src-all@freebsd.org Thu Jan 16 21:25:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B55B91F6837; Thu, 16 Jan 2020 21:25:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHKQ4Njlz4cl5; Thu, 16 Jan 2020 21:25:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77DC825EE5; Thu, 16 Jan 2020 21:25:14 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLPEue045081; Thu, 16 Jan 2020 21:25:14 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLPDrQ045078; Thu, 16 Jan 2020 21:25:13 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162125.00GLPDrQ045078@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 21:25:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356808 - in head/sys: arm64/conf arm64/rockchip arm64/rockchip/clk conf X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: in head/sys: arm64/conf arm64/rockchip arm64/rockchip/clk conf X-SVN-Commit-Revision: 356808 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:25:14 -0000 Author: manu Date: Thu Jan 16 21:25:13 2020 New Revision: 356808 URL: https://svnweb.freebsd.org/changeset/base/356808 Log: arm64: rockchip: Add RK3399 PWM driver Add a driver for the pwm controller in the RK3399 SoC Submitted by: bdragon (original version) Reviewed by: ganbold (previous version) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D19046 Added: head/sys/arm64/rockchip/rk_pwm.c (contents, props changed) Modified: head/sys/arm64/conf/GENERIC head/sys/arm64/rockchip/clk/rk3399_pmucru.c head/sys/conf/files.arm64 Modified: head/sys/arm64/conf/GENERIC ============================================================================== --- head/sys/arm64/conf/GENERIC Thu Jan 16 21:21:20 2020 (r356807) +++ head/sys/arm64/conf/GENERIC Thu Jan 16 21:25:13 2020 (r356808) @@ -297,6 +297,7 @@ device rk_spi # RockChip SPI controller # PWM device pwm device aw_pwm +device rk_pwm # Console device vt Modified: head/sys/arm64/rockchip/clk/rk3399_pmucru.c ============================================================================== --- head/sys/arm64/rockchip/clk/rk3399_pmucru.c Thu Jan 16 21:21:20 2020 (r356807) +++ head/sys/arm64/rockchip/clk/rk3399_pmucru.c Thu Jan 16 21:25:13 2020 (r356808) @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD$"); #define PCLK_I2C0_PMU 27 #define PCLK_I2C4_PMU 28 #define PCLK_I2C8_PMU 29 +#define PCLK_RKPWM_PMU 30 static struct rk_cru_gate rk3399_pmu_gates[] = { /* PMUCRU_CLKGATE_CON1 */ @@ -67,8 +68,8 @@ static struct rk_cru_gate rk3399_pmu_gates[] = { CRU_GATE(PCLK_I2C0_PMU, "pclk_i2c0_pmu", "pclk_pmu_src", 0x104, 7) CRU_GATE(PCLK_I2C4_PMU, "pclk_i2c4_pmu", "pclk_pmu_src", 0x104, 8) CRU_GATE(PCLK_I2C8_PMU, "pclk_i2c8_pmu", "pclk_pmu_src", 0x104, 9) + CRU_GATE(PCLK_RKPWM_PMU, "pclk_rkpwm_pmu", "pclk_pmu_src", 0x104, 10) }; - /* * PLLs Added: head/sys/arm64/rockchip/rk_pwm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm64/rockchip/rk_pwm.c Thu Jan 16 21:25:13 2020 (r356808) @@ -0,0 +1,403 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2018 Emmanuel Vadot + * Copyright (c) 2019 Brandon Bergren + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include "pwmbus_if.h" + +/* Register offsets. */ +#define RK_PWM_COUNTER 0x00 +#define RK_PWM_PERIOD 0x04 +#define RK_PWM_DUTY 0x08 +#define RK_PWM_CTRL 0x0c + +#define SET(reg,mask,val) reg = ((reg & ~mask) | val) + +#define RK_PWM_CTRL_ENABLE_MASK (1 << 0) +#define RK_PWM_CTRL_ENABLED (1 << 0) +#define RK_PWM_CTRL_DISABLED (0) + +#define RK_PWM_CTRL_MODE_MASK (3 << 1) +#define RK_PWM_CTRL_MODE_ONESHOT (0) +#define RK_PWM_CTRL_MODE_CONTINUOUS (1 << 1) +#define RK_PWM_CTRL_MODE_CAPTURE (1 << 2) + +#define RK_PWM_CTRL_DUTY_MASK (1 << 3) +#define RK_PWM_CTRL_DUTY_POSITIVE (1 << 3) +#define RK_PWM_CTRL_DUTY_NEGATIVE (0) + +#define RK_PWM_CTRL_INACTIVE_MASK (1 << 4) +#define RK_PWM_CTRL_INACTIVE_POSITIVE (1 << 4) +#define RK_PWM_CTRL_INACTIVE_NEGATIVE (0) + +/* PWM Output Alignment */ +#define RK_PWM_CTRL_ALIGN_MASK (1 << 5) +#define RK_PWM_CTRL_ALIGN_CENTER (1 << 5) +#define RK_PWM_CTRL_ALIGN_LEFT (0) + +/* Low power mode: disable prescaler when inactive */ +#define RK_PWM_CTRL_LP_MASK (1 << 8) +#define RK_PWM_CTRL_LP_ENABLE (1 << 8) +#define RK_PWM_CTRL_LP_DISABLE (0) + +/* Clock source: bypass the scaler or not */ +#define RK_PWM_CTRL_CLOCKSRC_MASK (1 << 9) +#define RK_PWM_CTRL_CLOCKSRC_NONSCALED (0) +#define RK_PWM_CTRL_CLOCKSRC_SCALED (1 << 9) + +#define RK_PWM_CTRL_PRESCALE_MASK (7 << 12) +#define RK_PWM_CTRL_PRESCALE_SHIFT 12 + +#define RK_PWM_CTRL_SCALE_MASK (0xFF << 16) +#define RK_PWM_CTRL_SCALE_SHIFT 16 + +#define RK_PWM_CTRL_REPEAT_MASK (0xFF << 24) +#define RK_PWM_CTRL_REPEAT_SHIFT 24 + +#define NS_PER_SEC 1000000000 + +static struct ofw_compat_data compat_data[] = { + { "rockchip,rk3399-pwm", 1 }, + { NULL, 0 } +}; + +static struct resource_spec rk_pwm_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { -1, 0 } +}; + +struct rk_pwm_softc { + device_t dev; + device_t busdev; + clk_t clk; + struct resource *res; + + uint64_t clk_freq; + unsigned int period; + unsigned int duty; + uint32_t flags; + uint8_t prescaler; + uint8_t scaler; + bool using_scaler; + bool enabled; +}; + +#define RK_PWM_READ(sc, reg) bus_read_4((sc)->res, (reg)) +#define RK_PWM_WRITE(sc, reg, val) bus_write_4((sc)->res, (reg), (val)) + +static int rk_pwm_probe(device_t dev); +static int rk_pwm_attach(device_t dev); +static int rk_pwm_detach(device_t dev); + +static int +rk_pwm_probe(device_t dev) +{ + if (!ofw_bus_status_okay(dev)) + return (ENXIO); + + if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) + return (ENXIO); + + device_set_desc(dev, "Rockchip PWM"); + return (BUS_PROBE_DEFAULT); +} + +static int +rk_pwm_attach(device_t dev) +{ + struct rk_pwm_softc *sc; + phandle_t node; + uint64_t clk_freq; + uint32_t reg; + int error; + + sc = device_get_softc(dev); + sc->dev = dev; + + error = clk_get_by_ofw_index(dev, 0, 0, &sc->clk); + if (error != 0) { + device_printf(dev, "cannot get clock\n"); + goto fail; + } + error = clk_enable(sc->clk); + if (error != 0) { + device_printf(dev, "cannot enable clock\n"); + goto fail; + } + error = clk_get_freq(sc->clk, &sc->clk_freq); + if (error != 0) { + device_printf(dev, "cannot get base frequency\n"); + goto fail; + } + + if (bus_alloc_resources(dev, rk_pwm_spec, &sc->res) != 0) { + device_printf(dev, "cannot allocate resources for device\n"); + error = ENXIO; + goto fail; + } + + /* Read the configuration left by U-Boot */ + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + if ((reg & RK_PWM_CTRL_ENABLE_MASK) == RK_PWM_CTRL_ENABLED) + sc->enabled = true; + + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + reg &= RK_PWM_CTRL_PRESCALE_MASK; + sc->prescaler = reg >> RK_PWM_CTRL_PRESCALE_SHIFT; + + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + reg &= RK_PWM_CTRL_SCALE_MASK; + sc->scaler = reg >> RK_PWM_CTRL_SCALE_SHIFT; + + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + if ((reg & RK_PWM_CTRL_CLOCKSRC_MASK) == RK_PWM_CTRL_CLOCKSRC_SCALED) + sc->using_scaler = true; + else + sc->using_scaler = false; + + clk_freq = sc->clk_freq / (2 ^ sc->prescaler); + + if (sc->using_scaler) { + if (sc->scaler == 0) + clk_freq /= 512; + else + clk_freq /= (sc->scaler * 2); + } + + reg = RK_PWM_READ(sc, RK_PWM_PERIOD); + sc->period = NS_PER_SEC / + (clk_freq / reg); + reg = RK_PWM_READ(sc, RK_PWM_DUTY); + sc->duty = NS_PER_SEC / + (clk_freq / reg); + + node = ofw_bus_get_node(dev); + OF_device_register_xref(OF_xref_from_node(node), dev); + + sc->busdev = device_add_child(dev, "pwmbus", -1); + + return (bus_generic_attach(dev)); + +fail: + rk_pwm_detach(dev); + return (error); +} + +static int +rk_pwm_detach(device_t dev) +{ + struct rk_pwm_softc *sc; + + sc = device_get_softc(dev); + + bus_generic_detach(sc->dev); + + bus_release_resources(dev, rk_pwm_spec, &sc->res); + + return (0); +} + +static phandle_t +aw_pwm_get_node(device_t bus, device_t dev) +{ + + /* + * Share our controller node with our pwmbus child; it instantiates + * devices by walking the children contained within our node. + */ + return ofw_bus_get_node(bus); +} + +static int +rk_pwm_channel_count(device_t dev, u_int *nchannel) +{ + /* The device supports 4 channels, but attaches multiple times in the + * device tree. This interferes with advanced usage though, as + * the interrupt capability and channel 3 FIFO register offsets + * don't work right in this situation. + * But since we don't support those yet, pretend we are singlechannel. + */ + *nchannel = 1; + + return (0); +} + +static int +rk_pwm_channel_config(device_t dev, u_int channel, u_int period, u_int duty) +{ + struct rk_pwm_softc *sc; + uint64_t period_freq, duty_freq; + uint32_t reg; + uint32_t period_out; + uint32_t duty_out; + uint8_t prescaler; + uint8_t scaler; + bool using_scaler; + + sc = device_get_softc(dev); + + period_freq = NS_PER_SEC / period; + /* Datasheet doesn't define, so use Nyquist frequency. */ + if (period_freq > (sc->clk_freq / 2)) + return (EINVAL); + duty_freq = NS_PER_SEC / duty; + if (duty_freq < period_freq) { + device_printf(sc->dev, "duty < period\n"); + return (EINVAL); + } + + /* Assuming 24 MHz reference, we should never actually have + to use the divider due to pwm API limitations. */ + prescaler = 0; + scaler = 0; + using_scaler = false; + + /* XXX Expand API to allow for 64 bit period/duty. */ + period_out = (sc->clk_freq * period) / NS_PER_SEC; + duty_out = (sc->clk_freq * duty) / NS_PER_SEC; + + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + + if ((reg & RK_PWM_CTRL_MODE_MASK) != RK_PWM_CTRL_MODE_CONTINUOUS) { + /* Switching modes, disable just in case. */ + SET(reg, RK_PWM_CTRL_ENABLE_MASK, RK_PWM_CTRL_DISABLED); + RK_PWM_WRITE(sc, RK_PWM_CTRL, reg); + } + + RK_PWM_WRITE(sc, RK_PWM_PERIOD, period_out); + RK_PWM_WRITE(sc, RK_PWM_DUTY, duty_out); + + SET(reg, RK_PWM_CTRL_ENABLE_MASK, RK_PWM_CTRL_ENABLED); + SET(reg, RK_PWM_CTRL_MODE_MASK, RK_PWM_CTRL_MODE_CONTINUOUS); + SET(reg, RK_PWM_CTRL_ALIGN_MASK, RK_PWM_CTRL_ALIGN_LEFT); + SET(reg, RK_PWM_CTRL_CLOCKSRC_MASK, using_scaler); + SET(reg, RK_PWM_CTRL_PRESCALE_MASK, + prescaler << RK_PWM_CTRL_PRESCALE_SHIFT); + SET(reg, RK_PWM_CTRL_SCALE_MASK, + scaler << RK_PWM_CTRL_SCALE_SHIFT); + + RK_PWM_WRITE(sc, RK_PWM_CTRL, reg); + + sc->period = period; + sc->duty = duty; + + return (0); +} + +static int +rk_pwm_channel_get_config(device_t dev, u_int channel, u_int *period, u_int *duty) +{ + struct rk_pwm_softc *sc; + + sc = device_get_softc(dev); + + *period = sc->period; + *duty = sc->duty; + + return (0); +} + +static int +rk_pwm_channel_enable(device_t dev, u_int channel, bool enable) +{ + struct rk_pwm_softc *sc; + uint32_t reg; + + sc = device_get_softc(dev); + + if (enable && sc->enabled) + return (0); + + reg = RK_PWM_READ(sc, RK_PWM_CTRL); + SET(reg, RK_PWM_CTRL_ENABLE_MASK, enable); + + RK_PWM_WRITE(sc, RK_PWM_CTRL, reg); + + sc->enabled = enable; + + return (0); +} + +static int +rk_pwm_channel_is_enabled(device_t dev, u_int channel, bool *enabled) +{ + struct rk_pwm_softc *sc; + + sc = device_get_softc(dev); + + *enabled = sc->enabled; + + return (0); +} + +static device_method_t rk_pwm_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, rk_pwm_probe), + DEVMETHOD(device_attach, rk_pwm_attach), + DEVMETHOD(device_detach, rk_pwm_detach), + + /* ofw_bus interface */ + DEVMETHOD(ofw_bus_get_node, aw_pwm_get_node), + + /* pwm interface */ + DEVMETHOD(pwmbus_channel_count, rk_pwm_channel_count), + DEVMETHOD(pwmbus_channel_config, rk_pwm_channel_config), + DEVMETHOD(pwmbus_channel_get_config, rk_pwm_channel_get_config), + DEVMETHOD(pwmbus_channel_enable, rk_pwm_channel_enable), + DEVMETHOD(pwmbus_channel_is_enabled, rk_pwm_channel_is_enabled), + + DEVMETHOD_END +}; + +static driver_t rk_pwm_driver = { + "pwm", + rk_pwm_methods, + sizeof(struct rk_pwm_softc), +}; + +static devclass_t rk_pwm_devclass; + +DRIVER_MODULE(rk_pwm, simplebus, rk_pwm_driver, rk_pwm_devclass, 0, 0); +SIMPLEBUS_PNP_INFO(compat_data); Modified: head/sys/conf/files.arm64 ============================================================================== --- head/sys/conf/files.arm64 Thu Jan 16 21:21:20 2020 (r356807) +++ head/sys/conf/files.arm64 Thu Jan 16 21:25:13 2020 (r356808) @@ -312,6 +312,7 @@ arm64/rockchip/rk_typec_phy.c optional fdt rk_typec_p arm64/rockchip/if_dwc_rk.c optional fdt dwc_rk soc_rockchip_rk3328 | fdt dwc_rk soc_rockchip_rk3399 arm64/rockchip/rk_tsadc_if.m optional fdt soc_rockchip_rk3399 arm64/rockchip/rk_tsadc.c optional fdt soc_rockchip_rk3399 +arm64/rockchip/rk_pwm.c optional fdt rk_pwm arm64/rockchip/rk_pcie.c optional fdt pci soc_rockchip_rk3399 arm64/rockchip/rk_pcie_phy.c optional fdt pci soc_rockchip_rk3399 dev/dwc/if_dwc.c optional fdt dwc_rk soc_rockchip_rk3328 | fdt dwc_rk soc_rockchip_rk3399 From owner-svn-src-all@freebsd.org Thu Jan 16 21:31:56 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C6D0E1F6CD4; Thu, 16 Jan 2020 21:31:56 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHT84rmRz4dG5; Thu, 16 Jan 2020 21:31:56 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A1A7F25FD5; Thu, 16 Jan 2020 21:31:56 +0000 (UTC) (envelope-from asomers@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLVuOP050682; Thu, 16 Jan 2020 21:31:56 GMT (envelope-from asomers@FreeBSD.org) Received: (from asomers@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLVuvg050681; Thu, 16 Jan 2020 21:31:56 GMT (envelope-from asomers@FreeBSD.org) Message-Id: <202001162131.00GLVuvg050681@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: asomers set sender to asomers@FreeBSD.org using -f From: Alan Somers Date: Thu, 16 Jan 2020 21:31:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356809 - head/usr.sbin/extattr X-SVN-Group: head X-SVN-Commit-Author: asomers X-SVN-Commit-Paths: head/usr.sbin/extattr X-SVN-Commit-Revision: 356809 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:31:56 -0000 Author: asomers Date: Thu Jan 16 21:31:56 2020 New Revision: 356809 URL: https://svnweb.freebsd.org/changeset/base/356809 Log: setextattr: Increase stdin buffer size to 4096 Extended attribute values can potentially be quite large. One test for ZFS is supposed to set a 200MB xattr. However, the buffer size for reading values from stdin with setextattr -i is so small that the test times out waiting for tiny chunks of data to be buffered and appended to an sbuf. Increasing the buffer size should help alleviate some of the burden of reallocating larger sbufs when writing large extended attributes. Submitted by: Ryan Moeller MFC after: 2 weeks Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D23211 Modified: head/usr.sbin/extattr/rmextattr.c Modified: head/usr.sbin/extattr/rmextattr.c ============================================================================== --- head/usr.sbin/extattr/rmextattr.c Thu Jan 16 21:25:13 2020 (r356808) +++ head/usr.sbin/extattr/rmextattr.c Thu Jan 16 21:31:56 2020 (r356809) @@ -104,7 +104,7 @@ mkbuf(char **buf, int *oldlen, int newlen) int main(int argc, char *argv[]) { -#define STDIN_BUF_SZ 1024 +#define STDIN_BUF_SZ 4096 char stdin_data[STDIN_BUF_SZ]; char *p; From owner-svn-src-all@freebsd.org Thu Jan 16 21:38:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B939F1F6FA4; Thu, 16 Jan 2020 21:38:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHd0432sz4dlr; Thu, 16 Jan 2020 21:38:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8646026144; Thu, 16 Jan 2020 21:38:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLcijC051083; Thu, 16 Jan 2020 21:38:44 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLciwT051082; Thu, 16 Jan 2020 21:38:44 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202001162138.00GLciwT051082@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Thu, 16 Jan 2020 21:38:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356810 - head/usr.bin/random X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/usr.bin/random X-SVN-Commit-Revision: 356810 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:38:44 -0000 Author: cem Date: Thu Jan 16 21:38:44 2020 New Revision: 356810 URL: https://svnweb.freebsd.org/changeset/base/356810 Log: random(6): Fix off-by-one After r355693, random(6) -f sometimes fail to output all the lines of the input file. This is because the range from which random indices are chosen is too big, so occasionally the random selection doesn't correspond to any line and nothing gets printed. (Ed. note: Mea culpa. Working on r355693, I was confused by the sometime use of 1-indexing, sometimes 0-indexing in randomize_fd().) Submitted by: Ryan Moeller X-MFC-With: r355693 Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D23199 Modified: head/usr.bin/random/randomize_fd.c Modified: head/usr.bin/random/randomize_fd.c ============================================================================== --- head/usr.bin/random/randomize_fd.c Thu Jan 16 21:31:56 2020 (r356809) +++ head/usr.bin/random/randomize_fd.c Thu Jan 16 21:38:44 2020 (r356810) @@ -211,7 +211,7 @@ make_token: free(buf); for (i = numnode; i > 0; i--) { - selected = arc4random_uniform(numnode + 1); + selected = arc4random_uniform(numnode); for (j = 0, prev = n = rand_root; n != NULL; j++, prev = n, n = n->next) { if (j == selected) { From owner-svn-src-all@freebsd.org Thu Jan 16 21:43:13 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A63EA1F725A; Thu, 16 Jan 2020 21:43:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHk941lGz4fBj; Thu, 16 Jan 2020 21:43:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8553626338; Thu, 16 Jan 2020 21:43:13 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLhDFV057197; Thu, 16 Jan 2020 21:43:13 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLhDW4057196; Thu, 16 Jan 2020 21:43:13 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001162143.00GLhDW4057196@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jan 2020 21:43:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356811 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356811 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:43:13 -0000 Author: mjg Date: Thu Jan 16 21:43:13 2020 New Revision: 356811 URL: https://svnweb.freebsd.org/changeset/base/356811 Log: vfs: refcator vnode allocation Semantics are almost identical. Some code is deduplicated and there are fewer memory accesses. Reviewed by: kib, jeff Differential Revision: https://reviews.freebsd.org/D23158 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Thu Jan 16 21:38:44 2020 (r356810) +++ head/sys/kern/vfs_subr.c Thu Jan 16 21:43:13 2020 (r356811) @@ -1275,23 +1275,6 @@ vnlru_recalc(void) vlowat = vhiwat / 2; } -/* XXX some names and initialization are bad for limits and watermarks. */ -static int -vspace(void) -{ - u_long rnumvnodes, rfreevnodes; - int space; - - rnumvnodes = atomic_load_long(&numvnodes); - rfreevnodes = atomic_load_long(&freevnodes); - if (rnumvnodes > desiredvnodes) - return (0); - space = desiredvnodes - rnumvnodes; - if (freevnodes > wantfreevnodes) - space += rfreevnodes - wantfreevnodes; - return (space); -} - /* * Attempt to recycle vnodes in a context that is always safe to block. * Calling vlrurecycle() from the bowels of filesystem code has some @@ -1300,12 +1283,40 @@ vspace(void) static struct proc *vnlruproc; static int vnlruproc_sig; +static bool +vnlru_under(u_long rnumvnodes, u_long limit) +{ + u_long rfreevnodes, space; + + if (__predict_false(rnumvnodes > desiredvnodes)) + return (true); + + space = desiredvnodes - rnumvnodes; + if (space < limit) { + rfreevnodes = atomic_load_long(&freevnodes); + if (rfreevnodes > wantfreevnodes) + space += rfreevnodes - wantfreevnodes; + } + return (space < limit); +} + static void +vnlru_kick(void) +{ + + mtx_assert(&vnode_list_mtx, MA_OWNED); + if (vnlruproc_sig == 0) { + vnlruproc_sig = 1; + wakeup(vnlruproc); + } +} + +static void vnlru_proc(void) { u_long rnumvnodes, rfreevnodes, target; unsigned long onumvnodes; - int done, force, trigger, usevnodes, vsp; + int done, force, trigger, usevnodes; bool reclaim_nc_src; EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, vnlruproc, @@ -1321,8 +1332,10 @@ vnlru_proc(void) * adjusted using its sysctl, or emergency growth), first * try to reduce it by discarding from the free list. */ - if (rnumvnodes > desiredvnodes) + if (rnumvnodes > desiredvnodes) { vnlru_free_locked(rnumvnodes - desiredvnodes, NULL); + rnumvnodes = atomic_load_long(&numvnodes); + } /* * Sleep if the vnode cache is in a good state. This is * when it is not over-full and has space for about a 4% @@ -1334,8 +1347,7 @@ vnlru_proc(void) force = 1; vstir = 0; } - vsp = vspace(); - if (vsp >= vlowat && force == 0) { + if (force == 0 && !vnlru_under(rnumvnodes, vlowat)) { vnlruproc_sig = 0; wakeup(&vnlruproc_sig); msleep(vnlruproc, &vnode_list_mtx, @@ -1394,8 +1406,7 @@ vnlru_proc(void) * After becoming active to expand above low water, keep * active until above high water. */ - vsp = vspace(); - force = vsp < vhiwat; + force = vnlru_under(numvnodes, vhiwat) ? 1 : 0; } } @@ -1471,58 +1482,35 @@ vtryrecycle(struct vnode *vp) return (0); } -static void -vcheckspace(void) -{ - int vsp; - - vsp = vspace(); - if (vsp < vlowat && vnlruproc_sig == 0) { - vnlruproc_sig = 1; - wakeup(vnlruproc); - } -} - /* - * Wait if necessary for space for a new vnode. + * Allocate a new vnode. + * + * The operation never returns an error. Returning an error was disabled + * in r145385 (dated 2005) with the following comment: + * + * XXX Not all VFS_VGET/ffs_vget callers check returns. + * + * Given the age of this commit (almost 15 years at the time of writing this + * comment) restoring the ability to fail requires a significant audit of + * all codepaths. + * + * The routine can try to free a vnode or stall for up to 1 second waiting for + * vnlru to clear things up, but ultimately always performs a M_WAITOK allocation. */ -static int -vn_alloc_wait(int suspended) -{ - - mtx_assert(&vnode_list_mtx, MA_OWNED); - if (numvnodes >= desiredvnodes) { - if (suspended) { - /* - * The file system is being suspended. We cannot - * risk a deadlock here, so allow allocation of - * another vnode even if this would give too many. - */ - return (0); - } - if (vnlruproc_sig == 0) { - vnlruproc_sig = 1; /* avoid unnecessary wakeups */ - wakeup(vnlruproc); - } - msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, - "vlruwk", hz); - } - /* Post-adjust like the pre-adjust in getnewvnode(). */ - if (numvnodes + 1 > desiredvnodes && freevnodes > 1) - vnlru_free_locked(1, NULL); - return (numvnodes >= desiredvnodes ? ENFILE : 0); -} - static struct vnode * vn_alloc(struct mount *mp) { - static int cyclecount; - int error __unused; + u_long rnumvnodes, rfreevnodes; + static u_long cyclecount; mtx_lock(&vnode_list_mtx); - if (numvnodes < desiredvnodes) + rnumvnodes = atomic_load_long(&numvnodes); + if (rnumvnodes + 1 < desiredvnodes) { cyclecount = 0; - else if (cyclecount++ >= freevnodes) { + goto alloc; + } + rfreevnodes = atomic_load_long(&freevnodes); + if (cyclecount++ >= rfreevnodes) { cyclecount = 0; vstir = 1; } @@ -1536,22 +1524,24 @@ vn_alloc(struct mount *mp) * should be chosen so that we never wait or even reclaim from * the free list to below its target minimum. */ - if (numvnodes + 1 <= desiredvnodes) - ; - else if (freevnodes > 0) + if (rfreevnodes > 0) { vnlru_free_locked(1, NULL); - else { - error = vn_alloc_wait(mp != NULL && (mp->mnt_kern_flag & - MNTK_SUSPEND)); -#if 0 /* XXX Not all VFS_VGET/ffs_vget callers check returns. */ - if (error != 0) { - mtx_unlock(&vnode_list_mtx); - return (error); - } -#endif + goto alloc; } - vcheckspace(); - atomic_add_long(&numvnodes, 1); + if (mp == NULL || (mp->mnt_kern_flag & MNTK_SUSPEND) == 0) { + /* + * Wait for space for a new vnode. + */ + vnlru_kick(); + msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, "vlruwk", hz); + if (atomic_load_long(&numvnodes) + 1 > desiredvnodes && + atomic_load_long(&freevnodes) > 1) + vnlru_free_locked(1, NULL); + } +alloc: + rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; + if (vnlru_under(rnumvnodes, vlowat)) + vnlru_kick(); mtx_unlock(&vnode_list_mtx); return (uma_zalloc(vnode_zone, M_WAITOK)); } From owner-svn-src-all@freebsd.org Thu Jan 16 21:45:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A133C1F730C; Thu, 16 Jan 2020 21:45:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHmd3lm6z4fKX; Thu, 16 Jan 2020 21:45:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7BDA82633E; Thu, 16 Jan 2020 21:45:21 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLjLwI057375; Thu, 16 Jan 2020 21:45:21 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLjLtN057374; Thu, 16 Jan 2020 21:45:21 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001162145.00GLjLtN057374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jan 2020 21:45:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356812 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356812 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:45:21 -0000 Author: mjg Date: Thu Jan 16 21:45:21 2020 New Revision: 356812 URL: https://svnweb.freebsd.org/changeset/base/356812 Log: vfs: increment numvnodes without the vnode list lock unless under pressure The vnode list lock is only needed to reclaim free vnodes or kick the vnlru thread (or to block and not miss a wake up (but note the sleep has a timeout so this would not be a correctness issue)). Try to get away without the lock by just doing an atomic increment. The lock is contended e.g., during poudriere -j 104 where about half of all acquires come from vnode allocation code. Note the entire scheme needs a rewrite, the above just reduces it's SMP impact. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D23140 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Thu Jan 16 21:43:13 2020 (r356811) +++ head/sys/kern/vfs_subr.c Thu Jan 16 21:45:21 2020 (r356812) @@ -1497,21 +1497,22 @@ vtryrecycle(struct vnode *vp) * The routine can try to free a vnode or stall for up to 1 second waiting for * vnlru to clear things up, but ultimately always performs a M_WAITOK allocation. */ -static struct vnode * -vn_alloc(struct mount *mp) +static u_long vn_alloc_cyclecount; + +static struct vnode * __noinline +vn_alloc_hard(struct mount *mp) { u_long rnumvnodes, rfreevnodes; - static u_long cyclecount; mtx_lock(&vnode_list_mtx); rnumvnodes = atomic_load_long(&numvnodes); if (rnumvnodes + 1 < desiredvnodes) { - cyclecount = 0; + vn_alloc_cyclecount = 0; goto alloc; } rfreevnodes = atomic_load_long(&freevnodes); - if (cyclecount++ >= rfreevnodes) { - cyclecount = 0; + if (vn_alloc_cyclecount++ >= rfreevnodes) { + vn_alloc_cyclecount = 0; vstir = 1; } /* @@ -1543,6 +1544,22 @@ alloc: if (vnlru_under(rnumvnodes, vlowat)) vnlru_kick(); mtx_unlock(&vnode_list_mtx); + return (uma_zalloc(vnode_zone, M_WAITOK)); +} + +static struct vnode * +vn_alloc(struct mount *mp) +{ + u_long rnumvnodes; + + if (__predict_false(vn_alloc_cyclecount != 0)) + return (vn_alloc_hard(mp)); + rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; + if (__predict_false(vnlru_under(rnumvnodes, vlowat))) { + atomic_subtract_long(&numvnodes, 1); + return (vn_alloc_hard(mp)); + } + return (uma_zalloc(vnode_zone, M_WAITOK)); } From owner-svn-src-all@freebsd.org Thu Jan 16 21:50:54 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 99C3F1F748F; Thu, 16 Jan 2020 21:50:54 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHv23dF8z4fZr; Thu, 16 Jan 2020 21:50:54 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 77BFD2636A; Thu, 16 Jan 2020 21:50:54 +0000 (UTC) (envelope-from manu@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLosBK057690; Thu, 16 Jan 2020 21:50:54 GMT (envelope-from manu@FreeBSD.org) Received: (from manu@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLosHj057687; Thu, 16 Jan 2020 21:50:54 GMT (envelope-from manu@FreeBSD.org) Message-Id: <202001162150.00GLosHj057687@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: manu set sender to manu@FreeBSD.org using -f From: Emmanuel Vadot Date: Thu, 16 Jan 2020 21:50:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356813 - head/sys/dev/mmc/host X-SVN-Group: head X-SVN-Commit-Author: manu X-SVN-Commit-Paths: head/sys/dev/mmc/host X-SVN-Commit-Revision: 356813 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:50:54 -0000 Author: manu Date: Thu Jan 16 21:50:53 2020 New Revision: 356813 URL: https://svnweb.freebsd.org/changeset/base/356813 Log: dwmmc: Remove max_hz from the softc We never use it so directly set the value to the mmc host structure. Modified: head/sys/dev/mmc/host/dwmmc.c head/sys/dev/mmc/host/dwmmc_var.h Modified: head/sys/dev/mmc/host/dwmmc.c ============================================================================== --- head/sys/dev/mmc/host/dwmmc.c Thu Jan 16 21:45:21 2020 (r356812) +++ head/sys/dev/mmc/host/dwmmc.c Thu Jan 16 21:50:53 2020 (r356813) @@ -484,8 +484,8 @@ parse_fdt(struct dwmmc_softc *sc) sc->host.caps |= MMC_CAP_8_BIT_DATA; /* max-frequency */ - if (OF_getencprop(node, "max-frequency", &sc->max_hz, sizeof(uint32_t)) <= 0) - sc->max_hz = 200000000; + if (OF_getencprop(node, "max-frequency", &sc->host.f_max, sizeof(uint32_t)) <= 0) + sc->host.f_max = 200000000; /* fifo-depth */ if ((len = OF_getproplen(node, "fifo-depth")) > 0) { @@ -726,7 +726,6 @@ dwmmc_attach(device_t dev) WRITE4(sc, SDMMC_CTRL, SDMMC_CTRL_INT_ENABLE); sc->host.f_min = 400000; - sc->host.f_max = sc->max_hz; sc->host.host_ocr = MMC_OCR_320_330 | MMC_OCR_330_340; sc->host.caps |= MMC_CAP_HSPEED; sc->host.caps |= MMC_CAP_SIGNALING_330; Modified: head/sys/dev/mmc/host/dwmmc_var.h ============================================================================== --- head/sys/dev/mmc/host/dwmmc_var.h Thu Jan 16 21:45:21 2020 (r356812) +++ head/sys/dev/mmc/host/dwmmc_var.h Thu Jan 16 21:50:53 2020 (r356813) @@ -79,7 +79,6 @@ struct dwmmc_softc { uint32_t acd_rcvd; uint32_t cmd_done; uint64_t bus_hz; - uint32_t max_hz; uint32_t fifo_depth; uint32_t num_slots; uint32_t sdr_timing; From owner-svn-src-all@freebsd.org Thu Jan 16 21:53:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E0B0E1F769D; Thu, 16 Jan 2020 21:53:36 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHy85fyrz4fwk; Thu, 16 Jan 2020 21:53:36 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCE612650C; Thu, 16 Jan 2020 21:53:36 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLramH063209; Thu, 16 Jan 2020 21:53:36 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLraO4063207; Thu, 16 Jan 2020 21:53:36 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001162153.00GLraO4063207@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 16 Jan 2020 21:53:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356814 - stable/12/contrib/tcpdump X-SVN-Group: stable-12 X-SVN-Commit-Author: kp X-SVN-Commit-Paths: stable/12/contrib/tcpdump X-SVN-Commit-Revision: 356814 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:53:36 -0000 Author: kp Date: Thu Jan 16 21:53:36 2020 New Revision: 356814 URL: https://svnweb.freebsd.org/changeset/base/356814 Log: MFC r339557: tcpdump: Log uid on pflog interfaces If pf logs the user id ('pass out log (user)') have tcpdump also print this. Example output: 00:00:00.000000 rule 0/0(match) [uid 1001]: pass out on vtnet0: (tos 0x0, ttl 64, id 57539, offset 0, flags [none], proto UDP (17), length 55) 172.16.2.2.18337 > 172.16.2.1.53: [bad udp cksum 0x5c58 -> 0x16e4!] 40222+ A? google.be. (27) PR: 122773 Modified: stable/12/contrib/tcpdump/print-pflog.c Directory Properties: stable/12/ (props changed) Modified: stable/12/contrib/tcpdump/print-pflog.c ============================================================================== --- stable/12/contrib/tcpdump/print-pflog.c Thu Jan 16 21:50:53 2020 (r356813) +++ stable/12/contrib/tcpdump/print-pflog.c Thu Jan 16 21:53:36 2020 (r356814) @@ -97,8 +97,12 @@ pflog_print(netdissect_options *ndo, const struct pflo else ND_PRINT((ndo, "rule %u.%s.%u/", rulenr, hdr->ruleset, subrulenr)); - ND_PRINT((ndo, "%s: %s %s on %s: ", - tok2str(pf_reasons, "unkn(%u)", hdr->reason), + ND_PRINT((ndo, "%s", tok2str(pf_reasons, "unkn(%u)", hdr->reason))); + + if (hdr->uid != UID_MAX) + ND_PRINT((ndo, " [uid %u]", (unsigned)hdr->uid)); + + ND_PRINT((ndo, ": %s %s on %s: ", tok2str(pf_actions, "unkn(%u)", hdr->action), tok2str(pf_directions, "unkn(%u)", hdr->dir), hdr->ifname)); From owner-svn-src-all@freebsd.org Thu Jan 16 21:53:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4418F1F76AD; Thu, 16 Jan 2020 21:53:38 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zHyB16mzz4fwn; Thu, 16 Jan 2020 21:53:38 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 21BFC2650E; Thu, 16 Jan 2020 21:53:38 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GLrcV9063266; Thu, 16 Jan 2020 21:53:38 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GLrc7W063265; Thu, 16 Jan 2020 21:53:38 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001162153.00GLrc7W063265@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 16 Jan 2020 21:53:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356815 - stable/11/contrib/tcpdump X-SVN-Group: stable-11 X-SVN-Commit-Author: kp X-SVN-Commit-Paths: stable/11/contrib/tcpdump X-SVN-Commit-Revision: 356815 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 21:53:38 -0000 Author: kp Date: Thu Jan 16 21:53:37 2020 New Revision: 356815 URL: https://svnweb.freebsd.org/changeset/base/356815 Log: MFC r339557: tcpdump: Log uid on pflog interfaces If pf logs the user id ('pass out log (user)') have tcpdump also print this. Example output: 00:00:00.000000 rule 0/0(match) [uid 1001]: pass out on vtnet0: (tos 0x0, ttl 64, id 57539, offset 0, flags [none], proto UDP (17), length 55) 172.16.2.2.18337 > 172.16.2.1.53: [bad udp cksum 0x5c58 -> 0x16e4!] 40222+ A? google.be. (27) PR: 122773 Modified: stable/11/contrib/tcpdump/print-pflog.c Directory Properties: stable/11/ (props changed) Modified: stable/11/contrib/tcpdump/print-pflog.c ============================================================================== --- stable/11/contrib/tcpdump/print-pflog.c Thu Jan 16 21:53:36 2020 (r356814) +++ stable/11/contrib/tcpdump/print-pflog.c Thu Jan 16 21:53:37 2020 (r356815) @@ -97,8 +97,12 @@ pflog_print(netdissect_options *ndo, const struct pflo else ND_PRINT((ndo, "rule %u.%s.%u/", rulenr, hdr->ruleset, subrulenr)); - ND_PRINT((ndo, "%s: %s %s on %s: ", - tok2str(pf_reasons, "unkn(%u)", hdr->reason), + ND_PRINT((ndo, "%s", tok2str(pf_reasons, "unkn(%u)", hdr->reason))); + + if (hdr->uid != UID_MAX) + ND_PRINT((ndo, " [uid %u]", (unsigned)hdr->uid)); + + ND_PRINT((ndo, ": %s %s on %s: ", tok2str(pf_actions, "unkn(%u)", hdr->action), tok2str(pf_directions, "unkn(%u)", hdr->dir), hdr->ifname)); From owner-svn-src-all@freebsd.org Thu Jan 16 22:08:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CC4F51F7CD0; Thu, 16 Jan 2020 22:08:05 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zJGs546xz3CKh; Thu, 16 Jan 2020 22:08:05 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A8186266FA; Thu, 16 Jan 2020 22:08:05 +0000 (UTC) (envelope-from kp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GM85dJ069644; Thu, 16 Jan 2020 22:08:05 GMT (envelope-from kp@FreeBSD.org) Received: (from kp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GM85Mj069643; Thu, 16 Jan 2020 22:08:05 GMT (envelope-from kp@FreeBSD.org) Message-Id: <202001162208.00GM85Mj069643@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kp set sender to kp@FreeBSD.org using -f From: Kristof Provost Date: Thu, 16 Jan 2020 22:08:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356816 - head/usr.sbin/periodic/etc/security X-SVN-Group: head X-SVN-Commit-Author: kp X-SVN-Commit-Paths: head/usr.sbin/periodic/etc/security X-SVN-Commit-Revision: 356816 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 22:08:05 -0000 Author: kp Date: Thu Jan 16 22:08:05 2020 New Revision: 356816 URL: https://svnweb.freebsd.org/changeset/base/356816 Log: Fix pfdenied not returning any results When _a is empty we end up with an invalid invocation of pfctl, and no output. We must add quotes to make it clear to pfctl that we're passing an empty anchor name. PR: 224415 Submitted by: sigsys AT gmail.com MFC after: 2 weeks Modified: head/usr.sbin/periodic/etc/security/520.pfdenied Modified: head/usr.sbin/periodic/etc/security/520.pfdenied ============================================================================== --- head/usr.sbin/periodic/etc/security/520.pfdenied Thu Jan 16 21:53:37 2020 (r356815) +++ head/usr.sbin/periodic/etc/security/520.pfdenied Thu Jan 16 22:08:05 2020 (r356816) @@ -46,7 +46,7 @@ then TMP=`mktemp -t security` for _a in "" $(pfctl -a "blacklistd" -sA 2>/dev/null) do - pfctl -a ${_a} -sr -v -z 2>/dev/null | \ + pfctl -a "${_a}" -sr -v -z 2>/dev/null | \ nawk '{if (/^block/) {buf=$0; getline; gsub(" +"," ",$0); if ($5 > 0) print buf$0;} }' >> ${TMP} done if [ -s ${TMP} ]; then From owner-svn-src-all@freebsd.org Thu Jan 16 22:45:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E2A41F8927; Thu, 16 Jan 2020 22:45:09 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zK5d2nczz3FFh; Thu, 16 Jan 2020 22:45:09 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5B17C26EDE; Thu, 16 Jan 2020 22:45:09 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00GMj9Wk093123; Thu, 16 Jan 2020 22:45:09 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00GMj9x8093122; Thu, 16 Jan 2020 22:45:09 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001162245.00GMj9x8093122@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Thu, 16 Jan 2020 22:45:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356817 - head/sys/fs/unionfs X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/fs/unionfs X-SVN-Commit-Revision: 356817 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Thu, 16 Jan 2020 22:45:09 -0000 Author: mjg Date: Thu Jan 16 22:45:08 2020 New Revision: 356817 URL: https://svnweb.freebsd.org/changeset/base/356817 Log: unionfs: use MNTK_NOMSYNC Modified: head/sys/fs/unionfs/union_vfsops.c Modified: head/sys/fs/unionfs/union_vfsops.c ============================================================================== --- head/sys/fs/unionfs/union_vfsops.c Thu Jan 16 22:08:05 2020 (r356816) +++ head/sys/fs/unionfs/union_vfsops.c Thu Jan 16 22:45:08 2020 (r356817) @@ -296,6 +296,7 @@ unionfs_domount(struct mount *mp) if ((ump->um_lowervp->v_mount->mnt_flag & MNT_LOCAL) && (ump->um_uppervp->v_mount->mnt_flag & MNT_LOCAL)) mp->mnt_flag |= MNT_LOCAL; + mp->mnt_kern_flag |= MNTK_NOMSYNC; MNT_IUNLOCK(mp); /* From owner-svn-src-all@freebsd.org Fri Jan 17 00:03:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C67351FA7E4; Fri, 17 Jan 2020 00:03:44 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zLrH5yYHz3K3T; Fri, 17 Jan 2020 00:03:43 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1isF6s-000OGr-8T; Fri, 17 Jan 2020 03:03:34 +0300 Date: Fri, 17 Jan 2020 03:03:34 +0300 From: Slawa Olhovchenkov To: Eugene Grosbein Cc: Ed Maste , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , Oliver Pinter , Nathan Whitehorn , Ben Woods , "svn-src-head@freebsd.org" , Warner Losh Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20200117000333.GI38096@zxy.spb.ru> References: <202001150747.00F7lqiG071097@repo.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Rspamd-Queue-Id: 47zLrH5yYHz3K3T X-Spamd-Bar: ++++ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of slw@zxy.spb.ru has no SPF policy when checking 195.70.199.98) smtp.mailfrom=slw@zxy.spb.ru X-Spamd-Result: default: False [4.17 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_TLS_LAST(0.00)[]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[zxy.spb.ru]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.70)[0.695,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; IP_SCORE(0.09)[asn: 5495(0.42), country: RU(0.01)]; NEURAL_SPAM_LONG(0.99)[0.986,0]; RCPT_COUNT_SEVEN(0.00)[9]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:5495, ipnet:195.70.192.0/19, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; SUSPICIOUS_RECIPS(1.50)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 00:03:44 -0000 On Thu, Jan 16, 2020 at 02:43:37PM +0700, Eugene Grosbein wrote: > 16.01.2020 4:41, Ed Maste wrote: > > > On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: > >> > >> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests > >> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests > >> that need lots of memory and should not fight with ZFS for RAM etc. > > > > That may well be the case, but our defaults should represent the > > configuration that's desirable to the largest set of users, and IMO > > that's ZFS in most cases today. > > > > It might be that we should default to UFS on i386 and ZFS on amd64? > > UFS may be better for any virtual guest having RAM less or equal to 4GB. Why? From owner-svn-src-all@freebsd.org Fri Jan 17 01:15:59 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D37061FC0B4; Fri, 17 Jan 2020 01:15:59 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zNRg61V4z3NJm; Fri, 17 Jan 2020 01:15:59 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABD27ADF; Fri, 17 Jan 2020 01:15:59 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H1FxEL082395; Fri, 17 Jan 2020 01:15:59 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H1FtSu082373; Fri, 17 Jan 2020 01:15:55 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001170115.00H1FtSu082373@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 17 Jan 2020 01:15:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356818 - in head/sys/geom: . concat eli gate journal linux_lvm mirror nop part raid raid3 shsec stripe X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys/geom: . concat eli gate journal linux_lvm mirror nop part raid raid3 shsec stripe X-SVN-Commit-Revision: 356818 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 01:15:59 -0000 Author: imp Date: Fri Jan 17 01:15:55 2020 New Revision: 356818 URL: https://svnweb.freebsd.org/changeset/base/356818 Log: Pass BIO_SPEEDUP through all the geom layers While some geom layers pass unknown commands down, not all do. For the ones that don't, pass BIO_SPEEDUP down to the providers that constittue the geom, as applicable. No changes to vinum or virstor because I was unsure how to add this support, and I'm also unsure how to test these. gvinum doesn't implement BIO_FLUSH either, so it may just be poorly maintained. gvirstor is for testing and not supportig BIO_SPEEDUP is fine. Reviewed by: chs Differential Revision: https://reviews.freebsd.org/D23183 Modified: head/sys/geom/concat/g_concat.c head/sys/geom/eli/g_eli.c head/sys/geom/gate/g_gate.c head/sys/geom/geom_disk.c head/sys/geom/geom_io.c head/sys/geom/geom_slice.c head/sys/geom/journal/g_journal.c head/sys/geom/linux_lvm/g_linux_lvm.c head/sys/geom/mirror/g_mirror.c head/sys/geom/nop/g_nop.c head/sys/geom/nop/g_nop.h head/sys/geom/part/g_part.c head/sys/geom/raid/g_raid.c head/sys/geom/raid/tr_concat.c head/sys/geom/raid/tr_raid0.c head/sys/geom/raid/tr_raid1.c head/sys/geom/raid/tr_raid1e.c head/sys/geom/raid/tr_raid5.c head/sys/geom/raid3/g_raid3.c head/sys/geom/shsec/g_shsec.c head/sys/geom/stripe/g_stripe.c Modified: head/sys/geom/concat/g_concat.c ============================================================================== --- head/sys/geom/concat/g_concat.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/concat/g_concat.c Fri Jan 17 01:15:55 2020 (r356818) @@ -279,8 +279,11 @@ g_concat_done(struct bio *bp) g_destroy_bio(bp); } +/* + * Called for both BIO_FLUSH and BIO_SPEEDUP. Just pass the call down + */ static void -g_concat_flush(struct g_concat_softc *sc, struct bio *bp) +g_concat_passdown(struct g_concat_softc *sc, struct bio *bp) { struct bio_queue_head queue; struct g_consumer *cp; @@ -340,8 +343,9 @@ g_concat_start(struct bio *bp) case BIO_WRITE: case BIO_DELETE: break; + case BIO_SPEEDUP: case BIO_FLUSH: - g_concat_flush(sc, bp); + g_concat_passdown(sc, bp); return; case BIO_GETATTR: if (strcmp("GEOM::kerneldump", bp->bio_attribute) == 0) { Modified: head/sys/geom/eli/g_eli.c ============================================================================== --- head/sys/geom/eli/g_eli.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/eli/g_eli.c Fri Jan 17 01:15:55 2020 (r356818) @@ -429,6 +429,7 @@ g_eli_start(struct bio *bp) case BIO_GETATTR: case BIO_FLUSH: case BIO_ZONE: + case BIO_SPEEDUP: break; case BIO_DELETE: /* @@ -468,6 +469,7 @@ g_eli_start(struct bio *bp) case BIO_GETATTR: case BIO_FLUSH: case BIO_DELETE: + case BIO_SPEEDUP: case BIO_ZONE: if (bp->bio_cmd == BIO_GETATTR) cbp->bio_done = g_eli_getattr_done; Modified: head/sys/geom/gate/g_gate.c ============================================================================== --- head/sys/geom/gate/g_gate.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/gate/g_gate.c Fri Jan 17 01:15:55 2020 (r356818) @@ -285,6 +285,7 @@ g_gate_start(struct bio *pbp) case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: + case BIO_SPEEDUP: /* XXX: Hack to allow read-only mounts. */ if ((sc->sc_flags & G_GATE_FLAG_READONLY) != 0) { g_io_deliver(pbp, EPERM); @@ -871,6 +872,7 @@ g_gate_ioctl(struct cdev *dev, u_long cmd, caddr_t add case BIO_READ: case BIO_DELETE: case BIO_FLUSH: + case BIO_SPEEDUP: break; case BIO_WRITE: error = copyout(bp->bio_data, ggio->gctl_data, @@ -935,6 +937,7 @@ start_end: case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: + case BIO_SPEEDUP: break; } } Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/geom_disk.c Fri Jan 17 01:15:55 2020 (r356818) @@ -560,6 +560,17 @@ g_disk_start(struct bio *bp) devstat_start_transaction_bio(dp->d_devstat, bp2); dp->d_strategy(bp2); break; + case BIO_SPEEDUP: + bp2 = g_clone_bio(bp); + if (bp2 == NULL) { + g_io_deliver(bp, ENOMEM); + return; + } + bp2->bio_done = g_disk_done; + bp2->bio_caller1 = sc; + bp2->bio_disk = dp; + dp->d_strategy(bp2); + break; default: error = EOPNOTSUPP; break; Modified: head/sys/geom/geom_io.c ============================================================================== --- head/sys/geom/geom_io.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/geom_io.c Fri Jan 17 01:15:55 2020 (r356818) @@ -407,6 +407,7 @@ g_io_check(struct bio *bp) break; case BIO_WRITE: case BIO_DELETE: + case BIO_SPEEDUP: case BIO_FLUSH: if (cp->acw == 0) return (EPERM); Modified: head/sys/geom/geom_slice.c ============================================================================== --- head/sys/geom/geom_slice.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/geom_slice.c Fri Jan 17 01:15:55 2020 (r356818) @@ -312,6 +312,7 @@ g_slice_start(struct bio *bp) /* now, pass it on downwards... */ } /* FALLTHROUGH */ + case BIO_SPEEDUP: case BIO_FLUSH: bp2 = g_clone_bio(bp); if (bp2 == NULL) { Modified: head/sys/geom/journal/g_journal.c ============================================================================== --- head/sys/geom/journal/g_journal.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/journal/g_journal.c Fri Jan 17 01:15:55 2020 (r356818) @@ -746,6 +746,7 @@ g_journal_start(struct bio *bp) return; } /* FALLTHROUGH */ + case BIO_SPEEDUP: case BIO_DELETE: default: g_io_deliver(bp, EOPNOTSUPP); Modified: head/sys/geom/linux_lvm/g_linux_lvm.c ============================================================================== --- head/sys/geom/linux_lvm/g_linux_lvm.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/linux_lvm/g_linux_lvm.c Fri Jan 17 01:15:55 2020 (r356818) @@ -215,6 +215,10 @@ g_llvm_start(struct bio *bp) /* XXX BIO_GETATTR allowed? */ break; default: + /* + * BIO_SPEEDUP and BIO_FLUSH should pass through to all sg + * elements, but aren't. + */ g_io_deliver(bp, EOPNOTSUPP); return; } Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/mirror/g_mirror.c Fri Jan 17 01:15:55 2020 (r356818) @@ -925,7 +925,8 @@ g_mirror_regular_request_error(struct g_mirror_softc * struct g_mirror_disk *disk, struct bio *bp) { - if (bp->bio_cmd == BIO_FLUSH && bp->bio_error == EOPNOTSUPP) + if ((bp->bio_cmd == BIO_FLUSH || bp->bio_cmd == BIO_SPEEDUP) && + bp->bio_error == EOPNOTSUPP) return; if ((disk->d_flags & G_MIRROR_DISK_FLAG_BROKEN) == 0) { @@ -988,6 +989,10 @@ g_mirror_regular_request(struct g_mirror_softc *sc, st KFAIL_POINT_ERROR(DEBUG_FP, g_mirror_regular_request_flush, bp->bio_error); break; + case BIO_SPEEDUP: + KFAIL_POINT_ERROR(DEBUG_FP, g_mirror_regular_request_speedup, + bp->bio_error); + break; } pbp->bio_inbed++; @@ -1018,6 +1023,7 @@ g_mirror_regular_request(struct g_mirror_softc *sc, st case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: + case BIO_SPEEDUP: pbp->bio_inbed--; pbp->bio_children--; break; @@ -1043,6 +1049,7 @@ g_mirror_regular_request(struct g_mirror_softc *sc, st case BIO_DELETE: case BIO_WRITE: case BIO_FLUSH: + case BIO_SPEEDUP: if (pbp->bio_children == 0) { /* * All requests failed. @@ -1149,6 +1156,7 @@ g_mirror_start(struct bio *bp) case BIO_READ: case BIO_WRITE: case BIO_DELETE: + case BIO_SPEEDUP: case BIO_FLUSH: break; case BIO_GETATTR: @@ -1783,6 +1791,7 @@ g_mirror_register_request(struct g_mirror_softc *sc, s */ TAILQ_INSERT_TAIL(&sc->sc_inflight, bp, bio_queue); return; + case BIO_SPEEDUP: case BIO_FLUSH: TAILQ_INIT(&queue); LIST_FOREACH(disk, &sc->sc_disks, d_next) { Modified: head/sys/geom/nop/g_nop.c ============================================================================== --- head/sys/geom/nop/g_nop.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/nop/g_nop.c Fri Jan 17 01:15:55 2020 (r356818) @@ -255,6 +255,9 @@ g_nop_start(struct bio *bp) case BIO_FLUSH: sc->sc_flushes++; break; + case BIO_SPEEDUP: + sc->sc_speedups++; + break; case BIO_CMD0: sc->sc_cmd0s++; break; @@ -438,6 +441,7 @@ g_nop_create(struct gctl_req *req, struct g_class *mp, sc->sc_deletes = 0; sc->sc_getattrs = 0; sc->sc_flushes = 0; + sc->sc_speedups = 0; sc->sc_cmd0s = 0; sc->sc_cmd1s = 0; sc->sc_cmd2s = 0; @@ -908,6 +912,7 @@ g_nop_ctl_reset(struct gctl_req *req, struct g_class * sc->sc_deletes = 0; sc->sc_getattrs = 0; sc->sc_flushes = 0; + sc->sc_speedups = 0; sc->sc_cmd0s = 0; sc->sc_cmd1s = 0; sc->sc_cmd2s = 0; @@ -978,6 +983,7 @@ g_nop_dumpconf(struct sbuf *sb, const char *indent, st sbuf_printf(sb, "%s%ju\n", indent, sc->sc_deletes); sbuf_printf(sb, "%s%ju\n", indent, sc->sc_getattrs); sbuf_printf(sb, "%s%ju\n", indent, sc->sc_flushes); + sbuf_printf(sb, "%s%ju\n", indent, sc->sc_speedups); sbuf_printf(sb, "%s%ju\n", indent, sc->sc_cmd0s); sbuf_printf(sb, "%s%ju\n", indent, sc->sc_cmd1s); sbuf_printf(sb, "%s%ju\n", indent, sc->sc_cmd2s); Modified: head/sys/geom/nop/g_nop.h ============================================================================== --- head/sys/geom/nop/g_nop.h Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/nop/g_nop.h Fri Jan 17 01:15:55 2020 (r356818) @@ -71,6 +71,7 @@ struct g_nop_softc { uintmax_t sc_cmd0s; uintmax_t sc_cmd1s; uintmax_t sc_cmd2s; + uintmax_t sc_speedups; uintmax_t sc_readbytes; uintmax_t sc_wrotebytes; char *sc_physpath; Modified: head/sys/geom/part/g_part.c ============================================================================== --- head/sys/geom/part/g_part.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/part/g_part.c Fri Jan 17 01:15:55 2020 (r356818) @@ -2272,6 +2272,7 @@ g_part_start(struct bio *bp) bp2->bio_offset += entry->gpe_offset; g_io_request(bp2, cp); return; + case BIO_SPEEDUP: case BIO_FLUSH: break; case BIO_GETATTR: Modified: head/sys/geom/raid/g_raid.c ============================================================================== --- head/sys/geom/raid/g_raid.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/g_raid.c Fri Jan 17 01:15:55 2020 (r356818) @@ -1111,6 +1111,7 @@ g_raid_start(struct bio *bp) case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: + case BIO_SPEEDUP: break; case BIO_GETATTR: if (!strcmp(bp->bio_attribute, "GEOM::candelete")) Modified: head/sys/geom/raid/tr_concat.c ============================================================================== --- head/sys/geom/raid/tr_concat.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/tr_concat.c Fri Jan 17 01:15:55 2020 (r356818) @@ -224,7 +224,7 @@ g_raid_tr_iostart_concat(struct g_raid_tr_object *tr, g_raid_iodone(bp, EIO); return; } - if (bp->bio_cmd == BIO_FLUSH) { + if (bp->bio_cmd == BIO_FLUSH || bp->bio_cmd == BIO_SPEEDUP) { g_raid_tr_flush_common(tr, bp); return; } Modified: head/sys/geom/raid/tr_raid0.c ============================================================================== --- head/sys/geom/raid/tr_raid0.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/tr_raid0.c Fri Jan 17 01:15:55 2020 (r356818) @@ -204,7 +204,7 @@ g_raid_tr_iostart_raid0(struct g_raid_tr_object *tr, s g_raid_iodone(bp, EIO); return; } - if (bp->bio_cmd == BIO_FLUSH) { + if (bp->bio_cmd == BIO_FLUSH || bp->bio_cmd == BIO_SPEEDUP) { g_raid_tr_flush_common(tr, bp); return; } Modified: head/sys/geom/raid/tr_raid1.c ============================================================================== --- head/sys/geom/raid/tr_raid1.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/tr_raid1.c Fri Jan 17 01:15:55 2020 (r356818) @@ -641,6 +641,7 @@ g_raid_tr_iostart_raid1(struct g_raid_tr_object *tr, s case BIO_DELETE: g_raid_tr_iostart_raid1_write(tr, bp); break; + case BIO_SPEEDUP: case BIO_FLUSH: g_raid_tr_flush_common(tr, bp); break; Modified: head/sys/geom/raid/tr_raid1e.c ============================================================================== --- head/sys/geom/raid/tr_raid1e.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/tr_raid1e.c Fri Jan 17 01:15:55 2020 (r356818) @@ -869,6 +869,7 @@ g_raid_tr_iostart_raid1e(struct g_raid_tr_object *tr, case BIO_DELETE: g_raid_tr_iostart_raid1e_write(tr, bp); break; + case BIO_SPEEDUP: case BIO_FLUSH: g_raid_tr_flush_common(tr, bp); break; Modified: head/sys/geom/raid/tr_raid5.c ============================================================================== --- head/sys/geom/raid/tr_raid5.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid/tr_raid5.c Fri Jan 17 01:15:55 2020 (r356818) @@ -357,6 +357,7 @@ g_raid_tr_iostart_raid5(struct g_raid_tr_object *tr, s case BIO_WRITE: case BIO_DELETE: case BIO_FLUSH: + case BIO_SPEEDUP: g_raid_iodone(bp, ENODEV); break; default: Modified: head/sys/geom/raid3/g_raid3.c ============================================================================== --- head/sys/geom/raid3/g_raid3.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/raid3/g_raid3.c Fri Jan 17 01:15:55 2020 (r356818) @@ -1446,6 +1446,7 @@ g_raid3_start(struct bio *bp) case BIO_WRITE: case BIO_DELETE: break; + case BIO_SPEEDUP: case BIO_FLUSH: g_raid3_flush(sc, bp); return; Modified: head/sys/geom/shsec/g_shsec.c ============================================================================== --- head/sys/geom/shsec/g_shsec.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/shsec/g_shsec.c Fri Jan 17 01:15:55 2020 (r356818) @@ -316,6 +316,7 @@ g_shsec_start(struct bio *bp) case BIO_READ: case BIO_WRITE: case BIO_FLUSH: + case BIO_SPEEDUP: /* * Only those requests are supported. */ Modified: head/sys/geom/stripe/g_stripe.c ============================================================================== --- head/sys/geom/stripe/g_stripe.c Thu Jan 16 22:45:08 2020 (r356817) +++ head/sys/geom/stripe/g_stripe.c Fri Jan 17 01:15:55 2020 (r356818) @@ -535,7 +535,7 @@ failure: } static void -g_stripe_flush(struct g_stripe_softc *sc, struct bio *bp) +g_stripe_pushdown(struct g_stripe_softc *sc, struct bio *bp) { struct bio_queue_head queue; struct g_consumer *cp; @@ -594,8 +594,9 @@ g_stripe_start(struct bio *bp) case BIO_WRITE: case BIO_DELETE: break; + case BIO_SPEEDUP: case BIO_FLUSH: - g_stripe_flush(sc, bp); + g_stripe_pushdown(sc, bp); return; case BIO_GETATTR: /* To which provider it should be delivered? */ From owner-svn-src-all@freebsd.org Fri Jan 17 01:16:20 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 086A51FC117; Fri, 17 Jan 2020 01:16:20 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zNS36T09z3NR4; Fri, 17 Jan 2020 01:16:19 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D9427AE0; Fri, 17 Jan 2020 01:16:19 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H1GJ4C082460; Fri, 17 Jan 2020 01:16:19 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H1GJ8F082458; Fri, 17 Jan 2020 01:16:19 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001170116.00H1GJ8F082458@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 17 Jan 2020 01:16:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356819 - in head/sys: geom ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sys: geom ufs/ffs X-SVN-Commit-Revision: 356819 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 01:16:20 -0000 Author: imp Date: Fri Jan 17 01:16:19 2020 New Revision: 356819 URL: https://svnweb.freebsd.org/changeset/base/356819 Log: Use buf to send speedup It turns out there's a problem with using g_io to send the speedup. It leads to a race when there's a resource shortage when a disk fails. Instead, send BIO_SPEEDUP via struct buf. This is pretty straight forward, except we need to transfer the bio_flags from b_ioflags for BIO_SPEEDUP commands in g_vfs_strategy. Reviewed by: kirk, chs Differential Revision: https://reviews.freebsd.org/D23117 Modified: head/sys/geom/geom_vfs.c head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/geom/geom_vfs.c ============================================================================== --- head/sys/geom/geom_vfs.c Fri Jan 17 01:15:55 2020 (r356818) +++ head/sys/geom/geom_vfs.c Fri Jan 17 01:16:19 2020 (r356819) @@ -191,6 +191,8 @@ g_vfs_strategy(struct bufobj *bo, struct buf *bp) bip->bio_flags |= BIO_ORDERED; bp->b_flags &= ~B_BARRIER; } + if (bp->b_iocmd == BIO_SPEEDUP) + bip->bio_flags |= bp->b_ioflags; bip->bio_done = g_vfs_done; bip->bio_caller2 = bp; #if defined(BUF_TRACKING) || defined(FULL_BUF_TRACKING) Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Fri Jan 17 01:15:55 2020 (r356818) +++ head/sys/ufs/ffs/ffs_softdep.c Fri Jan 17 01:16:19 2020 (r356819) @@ -87,6 +87,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include @@ -1452,6 +1453,20 @@ worklist_speedup(mp) wakeup(&ump->softdep_flushtd); } +static void +softdep_send_speedup(struct ufsmount *ump, size_t shortage, u_int flags) +{ + struct buf *bp; + + bp = malloc(sizeof(*bp), M_TRIM, M_WAITOK | M_ZERO); + bp->b_iocmd = BIO_SPEEDUP; + bp->b_ioflags = flags; + bp->b_bcount = shortage; + g_vfs_strategy(ump->um_bo, bp); + bufwait(bp); + free(bp, M_TRIM); +} + static int softdep_speedup(ump) struct ufsmount *ump; @@ -13364,7 +13379,6 @@ softdep_request_cleanup(fs, vp, cred, resource) struct ufsmount *ump; struct mount *mp; long starttime; - size_t resid; ufs2_daddr_t needed; int error, failed_vnode; @@ -13442,8 +13456,8 @@ softdep_request_cleanup(fs, vp, cred, resource) retry: if (resource == FLUSH_BLOCKS_WAIT && fs->fs_cstotal.cs_nbfree <= needed) - g_io_speedup(needed * fs->fs_bsize, BIO_SPEEDUP_TRIM, &resid, - ump->um_cp); + softdep_send_speedup(ump, needed * fs->fs_bsize, + BIO_SPEEDUP_TRIM); if ((resource == FLUSH_BLOCKS_WAIT && ump->softdep_on_worklist > 0 && fs->fs_cstotal.cs_nbfree <= needed) || (resource == FLUSH_INODES_WAIT && fs->fs_pendinginodes > 0 && @@ -13757,7 +13771,6 @@ check_clear_deps(mp) struct mount *mp; { struct ufsmount *ump; - size_t resid; /* * Tell the lower layers that any TRIM or WRITE transactions @@ -13766,7 +13779,7 @@ check_clear_deps(mp) */ ump = VFSTOUFS(mp); FREE_LOCK(ump); - g_io_speedup(0, BIO_SPEEDUP_TRIM | BIO_SPEEDUP_WRITE, &resid, ump->um_cp); + softdep_send_speedup(ump, 0, BIO_SPEEDUP_TRIM | BIO_SPEEDUP_WRITE); ACQUIRE_LOCK(ump); From owner-svn-src-all@freebsd.org Fri Jan 17 01:16:24 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A353E1FC153; Fri, 17 Jan 2020 01:16:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zNS83BmBz3NVQ; Fri, 17 Jan 2020 01:16:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 60C29AE4; Fri, 17 Jan 2020 01:16:24 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H1GOBB082512; Fri, 17 Jan 2020 01:16:24 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H1GOOt082510; Fri, 17 Jan 2020 01:16:24 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001170116.00H1GOOt082510@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 17 Jan 2020 01:16:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356820 - head/sys/ufs/ffs X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: head/sys/ufs/ffs X-SVN-Commit-Revision: 356820 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 01:16:24 -0000 Author: imp Date: Fri Jan 17 01:16:23 2020 New Revision: 356820 URL: https://svnweb.freebsd.org/changeset/base/356820 Log: We only want to send the speedup to the lower layers when there's a shortage. Only send a speedup when there's a shortage. While this is a little racy, lost races aren't a big deal for this function. If there's a shorage just popping up after we check these values, then we'll catch it next time. If there's a shortage that's just clearing up, we may do some work at the lower layers a little sooner than we otherwise would have. Sicne shortages are relatively rare events, both races are acceptable. Reviewed by: chs Differential Revision: https://reviews.freebsd.org/D23182 Modified: head/sys/ufs/ffs/ffs_softdep.c Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Fri Jan 17 01:16:19 2020 (r356819) +++ head/sys/ufs/ffs/ffs_softdep.c Fri Jan 17 01:16:23 2020 (r356820) @@ -13771,23 +13771,28 @@ check_clear_deps(mp) struct mount *mp; { struct ufsmount *ump; + bool suj_susp; /* - * Tell the lower layers that any TRIM or WRITE transactions - * that have been delayed for performance reasons should - * proceed to help alleviate the shortage faster. + * Tell the lower layers that any TRIM or WRITE transactions that have + * been delayed for performance reasons should proceed to help alleviate + * the shortage faster. The race between checking req_* and the softdep + * mutex (lk) is fine since this is an advisory operation that at most + * causes deferred work to be done sooner. */ ump = VFSTOUFS(mp); - FREE_LOCK(ump); - softdep_send_speedup(ump, 0, BIO_SPEEDUP_TRIM | BIO_SPEEDUP_WRITE); - ACQUIRE_LOCK(ump); + suj_susp = MOUNTEDSUJ(mp) && ump->softdep_jblocks->jb_suspended; + if (req_clear_remove || req_clear_inodedeps || suj_susp) { + FREE_LOCK(ump); + softdep_send_speedup(ump, 0, BIO_SPEEDUP_TRIM | BIO_SPEEDUP_WRITE); + ACQUIRE_LOCK(ump); + } - /* * If we are suspended, it may be because of our using * too many inodedeps, so help clear them out. */ - if (MOUNTEDSUJ(mp) && VFSTOUFS(mp)->softdep_jblocks->jb_suspended) + if (suj_susp) clear_inodedeps(mp); /* From owner-svn-src-all@freebsd.org Fri Jan 17 01:20:48 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DF7171FC450; Fri, 17 Jan 2020 01:20:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zNYD5Pblz3Nvf; Fri, 17 Jan 2020 01:20:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B4C3EB09; Fri, 17 Jan 2020 01:20:48 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H1KmIg083494; Fri, 17 Jan 2020 01:20:48 GMT (envelope-from imp@FreeBSD.org) Received: (from imp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H1Kmeh083492; Fri, 17 Jan 2020 01:20:48 GMT (envelope-from imp@FreeBSD.org) Message-Id: <202001170120.00H1Kmeh083492@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: imp set sender to imp@FreeBSD.org using -f From: Warner Losh Date: Fri, 17 Jan 2020 01:20:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356821 - in head/sbin: init shutdown X-SVN-Group: head X-SVN-Commit-Author: imp X-SVN-Commit-Paths: in head/sbin: init shutdown X-SVN-Commit-Revision: 356821 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 01:20:48 -0000 Author: imp Date: Fri Jan 17 01:20:48 2020 New Revision: 356821 URL: https://svnweb.freebsd.org/changeset/base/356821 Log: Small tweak to the default behavior of shutdown -c 'shutdown -c' is supposed to power cycle the system rather than doing a normal reboot. However, when that fails, it halts the system. This is not quite right since the intent isn't to halt the system but to restart. Make the default init behavior be to restart the system. The halt(8) interface can be used if you'd like to powercycle or halt. MFC After: 1 week Differential Revision: https://reviews.freebsd.org/D23129 Modified: head/sbin/init/init.c head/sbin/shutdown/shutdown.8 Modified: head/sbin/init/init.c ============================================================================== --- head/sbin/init/init.c Fri Jan 17 01:16:23 2020 (r356820) +++ head/sbin/init/init.c Fri Jan 17 01:20:48 2020 (r356821) @@ -1629,12 +1629,14 @@ transition_handler(int sig) current_state == clean_ttys || current_state == catatonia) requested_transition = clean_ttys; break; - case SIGWINCH: case SIGUSR2: - howto = sig == SIGUSR2 ? RB_POWEROFF : RB_POWERCYCLE; + howto = RB_POWEROFF; case SIGUSR1: howto |= RB_HALT; + case SIGWINCH: case SIGINT: + if (sig == SIGWINCH) + howto |= RB_POWERCYCLE; Reboot = TRUE; case SIGTERM: if (current_state == read_ttys || current_state == multi_user || Modified: head/sbin/shutdown/shutdown.8 ============================================================================== --- head/sbin/shutdown/shutdown.8 Fri Jan 17 01:16:23 2020 (r356820) +++ head/sbin/shutdown/shutdown.8 Fri Jan 17 01:20:48 2020 (r356821) @@ -28,7 +28,7 @@ .\" @(#)shutdown.8 8.2 (Berkeley) 4/27/95 .\" $FreeBSD$ .\" -.Dd January 1, 2018 +.Dd January 11, 2020 .Dt SHUTDOWN 8 .Os .Sh NAME @@ -63,7 +63,7 @@ The following options are available: The system is power cycled (power turned off and then back on) at the specified time. If the hardware doesn't support power cycle, the system will be -halted. +rebooted. At the present time, only systems with BMC supported by the .Xr ipmi 4 driver that implement this functionality support this flag. From owner-svn-src-all@freebsd.org Fri Jan 17 03:44:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5D17D1FF404; Fri, 17 Jan 2020 03:44:05 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zRkY1YDBz40NC; Fri, 17 Jan 2020 03:44:05 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 306EE273E; Fri, 17 Jan 2020 03:44:05 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H3i5js072273; Fri, 17 Jan 2020 03:44:05 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H3i4ZG072271; Fri, 17 Jan 2020 03:44:04 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <202001170344.00H3i4ZG072271@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Fri, 17 Jan 2020 03:44:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356822 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356822 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 03:44:05 -0000 Author: jeff Date: Fri Jan 17 03:44:04 2020 New Revision: 356822 URL: https://svnweb.freebsd.org/changeset/base/356822 Log: Fix a long standing bug that was made worse in r355765. When we are cowing a page that was previously mapped read-only it exists in pmap until pmap_enter() returns. However, we held no reference to the original page after the copy was complete. This allowed vm_object_scan_all_shadowed() to collapse an object that still had pages mapped. To resolve this, add another page pointer to the faultstate so we can keep the page xbusy until we're done with pmap_enter(). Handle busy pages in scan_all_shadowed. This is already done in vm_object_collapse_scan(). Reviewed by: kib, markj Differential Revision: https://reviews.freebsd.org/D23155 Modified: head/sys/vm/vm_fault.c head/sys/vm/vm_object.c Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Fri Jan 17 01:20:48 2020 (r356821) +++ head/sys/vm/vm_fault.c Fri Jan 17 03:44:04 2020 (r356822) @@ -121,6 +121,7 @@ __FBSDID("$FreeBSD$"); struct faultstate { vm_page_t m; + vm_page_t m_cow; vm_object_t object; vm_pindex_t pindex; vm_page_t first_m; @@ -208,6 +209,7 @@ static void fault_deallocate(struct faultstate *fs) { + fault_page_release(&fs->m_cow); fault_page_release(&fs->m); vm_object_pip_wakeup(fs->object); if (fs->object != fs->first_object) { @@ -818,7 +820,7 @@ RetryFault_oom: fs.lookup_still_valid = true; - fs.m = fs.first_m = NULL; + fs.m_cow = fs.m = fs.first_m = NULL; /* * Search for the page at object/offset. @@ -1254,9 +1256,11 @@ readrest: vm_page_unwire(fs.m, PQ_INACTIVE); } /* - * We no longer need the old page or object. + * Save the cow page to be released after + * pmap_enter is complete. */ - fault_page_release(&fs.m); + fs.m_cow = fs.m; + fs.m = NULL; } /* * fs.object != fs.first_object due to above Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Fri Jan 17 01:20:48 2020 (r356821) +++ head/sys/vm/vm_object.c Fri Jan 17 03:44:04 2020 (r356822) @@ -1605,6 +1605,14 @@ vm_object_scan_all_shadowed(vm_object_t object) break; /* + * If the backing object page is busy a grandparent or older + * page may still be undergoing CoW. It is not safe to + * collapse the backing object until it is quiesced. + */ + if (p != NULL && vm_page_busied(p)) + return (false); + + /* * See if the parent has the page or if the parent's object * pager has the page. If the parent has the page but the page * is not valid, the parent's object pager must have the page. @@ -1907,8 +1915,7 @@ vm_object_collapse(vm_object_t object) * If we do not entirely shadow the backing object, * there is nothing we can do so we give up. */ - if (object->resident_page_count != object->size && - !vm_object_scan_all_shadowed(object)) { + if (!vm_object_scan_all_shadowed(object)) { VM_OBJECT_WUNLOCK(backing_object); break; } From owner-svn-src-all@freebsd.org Fri Jan 17 04:11:18 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 02E051FFA98; Fri, 17 Jan 2020 04:11:18 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zSKx6HKYz41N1; Fri, 17 Jan 2020 04:11:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D25BB2B37; Fri, 17 Jan 2020 04:11:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H4BHuk088282; Fri, 17 Jan 2020 04:11:17 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H4BHZ0088281; Fri, 17 Jan 2020 04:11:17 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001170411.00H4BHZ0088281@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 17 Jan 2020 04:11:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356823 - stable/12/sys/dev/md X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sys/dev/md X-SVN-Commit-Revision: 356823 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 04:11:18 -0000 Author: mav Date: Fri Jan 17 04:11:17 2020 New Revision: 356823 URL: https://svnweb.freebsd.org/changeset/base/356823 Log: MFC r356315: Avoid duplicate I/O statistics accounting. Alike to geom_disk free the provider statistics structure and point GEOM toward local statistics. It allows to save some CPU time. Modified: stable/12/sys/dev/md/md.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/md/md.c ============================================================================== --- stable/12/sys/dev/md/md.c Fri Jan 17 03:44:04 2020 (r356822) +++ stable/12/sys/dev/md/md.c Fri Jan 17 04:11:17 2020 (r356823) @@ -1310,6 +1310,8 @@ mdinit(struct md_s *sc) gp = g_new_geomf(&g_md_class, "md%d", sc->unit); gp->softc = sc; pp = g_new_providerf(gp, "md%d", sc->unit); + devstat_remove_entry(pp->stat); + pp->stat = NULL; pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; pp->mediasize = sc->mediasize; pp->sectorsize = sc->sectorsize; @@ -1325,10 +1327,11 @@ mdinit(struct md_s *sc) } sc->gp = gp; sc->pp = pp; - g_error_provider(pp, 0); - g_topology_unlock(); sc->devstat = devstat_new_entry("md", sc->unit, sc->sectorsize, DEVSTAT_ALL_SUPPORTED, DEVSTAT_TYPE_DIRECT, DEVSTAT_PRIORITY_MAX); + sc->devstat->id = pp; + g_error_provider(pp, 0); + g_topology_unlock(); } static int From owner-svn-src-all@freebsd.org Fri Jan 17 04:12:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C2EB01FFD6B; Fri, 17 Jan 2020 04:12:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zSLq4qz8z41ZC; Fri, 17 Jan 2020 04:12:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A14FD2B78; Fri, 17 Jan 2020 04:12:03 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H4C3P4088369; Fri, 17 Jan 2020 04:12:03 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H4C3N3088368; Fri, 17 Jan 2020 04:12:03 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001170412.00H4C3N3088368@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 17 Jan 2020 04:12:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356824 - stable/11/sys/dev/md X-SVN-Group: stable-11 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/11/sys/dev/md X-SVN-Commit-Revision: 356824 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 04:12:03 -0000 Author: mav Date: Fri Jan 17 04:12:03 2020 New Revision: 356824 URL: https://svnweb.freebsd.org/changeset/base/356824 Log: MFC r356315: Avoid duplicate I/O statistics accounting. Alike to geom_disk free the provider statistics structure and point GEOM toward local statistics. It allows to save some CPU time. Modified: stable/11/sys/dev/md/md.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sys/dev/md/md.c ============================================================================== --- stable/11/sys/dev/md/md.c Fri Jan 17 04:11:17 2020 (r356823) +++ stable/11/sys/dev/md/md.c Fri Jan 17 04:12:03 2020 (r356824) @@ -1249,6 +1249,8 @@ mdinit(struct md_s *sc) gp = g_new_geomf(&g_md_class, "md%d", sc->unit); gp->softc = sc; pp = g_new_providerf(gp, "md%d", sc->unit); + devstat_remove_entry(pp->stat); + pp->stat = NULL; pp->flags |= G_PF_DIRECT_SEND | G_PF_DIRECT_RECEIVE; pp->mediasize = sc->mediasize; pp->sectorsize = sc->sectorsize; @@ -1264,10 +1266,11 @@ mdinit(struct md_s *sc) } sc->gp = gp; sc->pp = pp; - g_error_provider(pp, 0); - g_topology_unlock(); sc->devstat = devstat_new_entry("md", sc->unit, sc->sectorsize, DEVSTAT_ALL_SUPPORTED, DEVSTAT_TYPE_DIRECT, DEVSTAT_PRIORITY_MAX); + sc->devstat->id = pp; + g_error_provider(pp, 0); + g_topology_unlock(); } static int From owner-svn-src-all@freebsd.org Fri Jan 17 04:13:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 61C691FFE5C; Fri, 17 Jan 2020 04:13:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zSNF1wJfz41kB; Fri, 17 Jan 2020 04:13:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3D3052CB4; Fri, 17 Jan 2020 04:13:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H4DHKZ089907; Fri, 17 Jan 2020 04:13:17 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H4DHCI089906; Fri, 17 Jan 2020 04:13:17 GMT (envelope-from mav@FreeBSD.org) Message-Id: <202001170413.00H4DHCI089906@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 17 Jan 2020 04:13:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356825 - stable/12/sbin/devd X-SVN-Group: stable-12 X-SVN-Commit-Author: mav X-SVN-Commit-Paths: stable/12/sbin/devd X-SVN-Commit-Revision: 356825 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 04:13:17 -0000 Author: mav Date: Fri Jan 17 04:13:16 2020 New Revision: 356825 URL: https://svnweb.freebsd.org/changeset/base/356825 Log: MFC r355884: Add missing "ereport." prefixes of ZFS events. I was unable to find time when those were working. I think they have been Broken for at least 5 years or even longer. Modified: stable/12/sbin/devd/zfs.conf Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/devd/zfs.conf ============================================================================== --- stable/12/sbin/devd/zfs.conf Fri Jan 17 04:12:03 2020 (r356824) +++ stable/12/sbin/devd/zfs.conf Fri Jan 17 04:13:16 2020 (r356825) @@ -4,55 +4,55 @@ notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.checksum"; + match "type" "ereport.fs.zfs.checksum"; action "logger -p local7.warn -t ZFS 'checksum mismatch, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.io"; + match "type" "ereport.fs.zfs.io"; action "logger -p local7.warn -t ZFS 'vdev I/O failure, zpool=$pool path=$vdev_path offset=$zio_offset size=$zio_size error=$zio_err'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.data"; + match "type" "ereport.fs.zfs.data"; action "logger -p local7.warn -t ZFS 'pool I/O failure, zpool=$pool error=$zio_err'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.zpool"; + match "type" "ereport.fs.zfs.zpool"; action "logger -p local7.err -t ZFS 'failed to load zpool $pool'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.vdev\..*"; + match "type" "ereport.fs.zfs.vdev\..*"; action "logger -p local7.err -t ZFS 'vdev problem, zpool=$pool path=$vdev_path type=$type'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.io_failure"; + match "type" "ereport.fs.zfs.io_failure"; action "logger -p local7.alert -t ZFS 'catastrophic pool I/O failure, zpool=$pool'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.probe_failure"; + match "type" "ereport.fs.zfs.probe_failure"; action "logger -p local7.err -t ZFS 'vdev probe failure, zpool=$pool path=$vdev_path'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.log_replay"; + match "type" "ereport.fs.zfs.log_replay"; action "logger -p local7.err -t ZFS 'pool log replay failure, zpool=$pool'"; }; notify 10 { match "system" "ZFS"; - match "type" "fs.zfs.config_cache_write"; + match "type" "ereport.fs.zfs.config_cache_write"; action "logger -p local7.warn -t ZFS 'failed to write zpool.cache, zpool=$pool'"; }; From owner-svn-src-all@freebsd.org Fri Jan 17 05:13:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BFA64221CFB; Fri, 17 Jan 2020 05:13:22 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zTjY4fJQz43XB; Fri, 17 Jan 2020 05:13:21 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00H5CY9k037646 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Jan 2020 05:12:35 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: imp@bsdimp.com Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00H5CSxi040128 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 17 Jan 2020 12:12:28 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Slawa Olhovchenkov References: <202001150747.00F7lqiG071097@repo.freebsd.org> <20200117000333.GI38096@zxy.spb.ru> Cc: Ed Maste , "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , Oliver Pinter , Nathan Whitehorn , Ben Woods , "svn-src-head@freebsd.org" , Warner Losh From: Eugene Grosbein Message-ID: <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> Date: Fri, 17 Jan 2020 12:12:22 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20200117000333.GI38096@zxy.spb.ru> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47zTjY4fJQz43XB X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-2.36 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.997,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_SEVEN(0.00)[9]; IP_SCORE(-1.76)[ip: (-4.78), ipnet: 2a01:4f8::/29(-2.48), asn: 24940(-1.52), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; SUSPICIOUS_RECIPS(1.50)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 05:13:22 -0000 17.01.2020 7:03, Slawa Olhovchenkov write: >>>> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests >>>> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests >>>> that need lots of memory and should not fight with ZFS for RAM etc. >>> >>> That may well be the case, but our defaults should represent the >>> configuration that's desirable to the largest set of users, and IMO >>> that's ZFS in most cases today. >>> >>> It might be that we should default to UFS on i386 and ZFS on amd64? >> >> UFS may be better for any virtual guest having RAM less or equal to 4GB. > > Why? Considering /usr/ports, /usr/src and /usr/obj and amount of RAM needed to keep metadata in ZFS ARC plus standard daily periodic scripts traveling filesystems, low-RAM virtual machine utilizing its RAM to full amount can work reliably with UFS and hang at nights due to extra ZFS overhead in default install (not tuned). Been there, seen that. From owner-svn-src-all@freebsd.org Fri Jan 17 06:10:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 427AE222F3E; Fri, 17 Jan 2020 06:10:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zVzP12jpz45Zg; Fri, 17 Jan 2020 06:10:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 1EE86435E; Fri, 17 Jan 2020 06:10:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00H6AP1d055979; Fri, 17 Jan 2020 06:10:25 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00H6AOTV055976; Fri, 17 Jan 2020 06:10:24 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <202001170610.00H6AOTV055976@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Fri, 17 Jan 2020 06:10:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356826 - in head/sys: kern net sys X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: in head/sys: kern net sys X-SVN-Commit-Revision: 356826 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 06:10:25 -0000 Author: glebius Date: Fri Jan 17 06:10:24 2020 New Revision: 356826 URL: https://svnweb.freebsd.org/changeset/base/356826 Log: Change argument order of epoch_call() to more natural, first function, then its argument. Reviewed by: imp, cem, jhb Modified: head/sys/kern/subr_epoch.c head/sys/net/pfil.c head/sys/sys/epoch.h Modified: head/sys/kern/subr_epoch.c ============================================================================== --- head/sys/kern/subr_epoch.c Fri Jan 17 04:13:16 2020 (r356825) +++ head/sys/kern/subr_epoch.c Fri Jan 17 06:10:24 2020 (r356826) @@ -664,7 +664,7 @@ epoch_wait(epoch_t epoch) } void -epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback) (epoch_context_t)) +epoch_call(epoch_t epoch, epoch_callback_t callback, epoch_context_t ctx) { epoch_record_t er; ck_epoch_entry_t *cb; @@ -819,7 +819,7 @@ epoch_drain_callbacks(epoch_t epoch) CPU_FOREACH(cpu) { er = zpcpu_get_cpu(epoch->e_pcpu_record, cpu); sched_bind(td, cpu); - epoch_call(epoch, &er->er_drain_ctx, &epoch_drain_cb); + epoch_call(epoch, &epoch_drain_cb, &er->er_drain_ctx); } /* restore CPU binding, if any */ Modified: head/sys/net/pfil.c ============================================================================== --- head/sys/net/pfil.c Fri Jan 17 04:13:16 2020 (r356825) +++ head/sys/net/pfil.c Fri Jan 17 06:10:24 2020 (r356826) @@ -313,9 +313,9 @@ pfil_unlink(struct pfil_link_args *pa, pfil_head_t hea PFIL_UNLOCK(); if (in != NULL) - epoch_call(PFIL_EPOCH, &in->link_epoch_ctx, pfil_link_free); + epoch_call(PFIL_EPOCH, pfil_link_free, &in->link_epoch_ctx); if (out != NULL) - epoch_call(PFIL_EPOCH, &out->link_epoch_ctx, pfil_link_free); + epoch_call(PFIL_EPOCH, pfil_link_free, &out->link_epoch_ctx); if (in == NULL && out == NULL) return (ENOENT); @@ -443,15 +443,15 @@ retry: if (in != NULL) { head->head_nhooksin--; hook->hook_links--; - epoch_call(PFIL_EPOCH, &in->link_epoch_ctx, - pfil_link_free); + epoch_call(PFIL_EPOCH, pfil_link_free, + &in->link_epoch_ctx); } out = pfil_link_remove(&head->head_out, hook); if (out != NULL) { head->head_nhooksout--; hook->hook_links--; - epoch_call(PFIL_EPOCH, &out->link_epoch_ctx, - pfil_link_free); + epoch_call(PFIL_EPOCH, pfil_link_free, + &out->link_epoch_ctx); } if (in != NULL || out != NULL) /* What if some stupid admin put same filter twice? */ Modified: head/sys/sys/epoch.h ============================================================================== --- head/sys/sys/epoch.h Fri Jan 17 04:13:16 2020 (r356825) +++ head/sys/sys/epoch.h Fri Jan 17 06:10:24 2020 (r356826) @@ -35,6 +35,7 @@ struct epoch_context { } __aligned(sizeof(void *)); typedef struct epoch_context *epoch_context_t; +typedef void epoch_callback_t(epoch_context_t); #ifdef _KERNEL #include @@ -68,7 +69,7 @@ void epoch_free(epoch_t epoch); void epoch_wait(epoch_t epoch); void epoch_wait_preempt(epoch_t epoch); void epoch_drain_callbacks(epoch_t epoch); -void epoch_call(epoch_t epoch, epoch_context_t ctx, void (*callback) (epoch_context_t)); +void epoch_call(epoch_t epoch, epoch_callback_t cb, epoch_context_t ctx); int in_epoch(epoch_t epoch); int in_epoch_verbose(epoch_t epoch, int dump_onfail); DPCPU_DECLARE(int, epoch_cb_count); @@ -101,7 +102,7 @@ extern epoch_t net_epoch_preempt; #define NET_EPOCH_ENTER(et) epoch_enter_preempt(net_epoch_preempt, &(et)) #define NET_EPOCH_EXIT(et) epoch_exit_preempt(net_epoch_preempt, &(et)) #define NET_EPOCH_WAIT() epoch_wait_preempt(net_epoch_preempt) -#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (c), (f)) +#define NET_EPOCH_CALL(f, c) epoch_call(net_epoch_preempt, (f), (c)) #define NET_EPOCH_ASSERT() MPASS(in_epoch(net_epoch_preempt)) #endif /* _KERNEL */ From owner-svn-src-all@freebsd.org Fri Jan 17 06:51:07 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0C502223FE0; Fri, 17 Jan 2020 06:51:07 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zWtL6cksz48HH; Fri, 17 Jan 2020 06:51:06 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id 4AE0C3C0199; Fri, 17 Jan 2020 06:51:00 +0000 (UTC) Date: Fri, 17 Jan 2020 06:51:00 +0000 From: Brooks Davis To: Ed Maste Cc: John Baldwin , src-committers , svn-src-all , svn-src-head Subject: Re: svn commit: r356797 - head/share/mk Message-ID: <20200117065100.GA25694@spindle.one-eyed-alien.net> References: <202001161727.00GHR81m093567@repo.freebsd.org> <6489e1f1-561c-f1e8-babf-ed7900496488@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="y0ulUmNC+osPPQO6" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Queue-Id: 47zWtL6cksz48HH X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.995,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 06:51:07 -0000 --y0ulUmNC+osPPQO6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Jan 16, 2020 at 02:18:14PM -0500, Ed Maste wrote: > On Thu, 16 Jan 2020 at 12:34, John Baldwin wrote: > > > > I would support having MK_PROFILE default to off for 13. >=20 > I agree. I'd suggest we got further and turn them off in 13 and announce that we will remove support after the branch. -- Brooks --y0ulUmNC+osPPQO6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJeIVlTAAoJEKzQXbSebgfArVUIAJ4XZg7Efm9pkiZx54ZJm7LA ZscqwdHlqgtA5bzG3Y4wws/6Hv6f3ON+1PSwv6BWtSpY1Sx2XXJDKAOd2OeaWTlT 6a7FhzRshCk2Vc7Gc84yKrp/SkbkK8+ocxhbTgaKs5dDrzaIH/ohnfwyIHv1Dhqh Msq7WYJgpYj3vTrTgJgUWqHrYjBaIoahbGbbg1kmxT6hilIe2NMgEiO3kNZ9T0FO ElAfslD8F/mGlvh5SoDj0bnnq/8vBEdms6Ax0WoxbXfBs+HzS1CfgqF4AtUAG3/F a/8D7i6gmMMML5x380ymfgZkQKfA4M20DtwPGouCybBQrCStPcYpus74+SpjZro= =/wMi -----END PGP SIGNATURE----- --y0ulUmNC+osPPQO6-- From owner-svn-src-all@freebsd.org Fri Jan 17 11:21:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id CA24022B37C for ; Fri, 17 Jan 2020 11:21:55 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zdtp7415z4Njr; Fri, 17 Jan 2020 11:21:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1isPhH-0003w8-6w; Fri, 17 Jan 2020 14:21:51 +0300 Date: Fri, 17 Jan 2020 14:21:51 +0300 From: Slawa Olhovchenkov To: Eugene Grosbein Cc: Ed Maste , "svn-src-all@freebsd.org" , Oliver Pinter , Nathan Whitehorn , Ben Woods , Warner Losh Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20200117112151.GJ38096@zxy.spb.ru> References: <202001150747.00F7lqiG071097@repo.freebsd.org> <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Rspamd-Queue-Id: 47zdtp7415z4Njr X-Spamd-Bar: ++ Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of slw@zxy.spb.ru has no SPF policy when checking 195.70.199.98) smtp.mailfrom=slw@zxy.spb.ru X-Spamd-Result: default: False [2.63 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; IP_SCORE(0.09)[asn: 5495(0.42), country: RU(0.01)]; TAGGED_RCPT(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[zxy.spb.ru]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.66)[0.662,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_SPAM_LONG(0.98)[0.978,0]; RCPT_COUNT_SEVEN(0.00)[7]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:5495, ipnet:195.70.192.0/19, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 11:21:55 -0000 On Fri, Jan 17, 2020 at 12:12:22PM +0700, Eugene Grosbein wrote: > 17.01.2020 7:03, Slawa Olhovchenkov write: > > >>>> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests > >>>> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests > >>>> that need lots of memory and should not fight with ZFS for RAM etc. > >>> > >>> That may well be the case, but our defaults should represent the > >>> configuration that's desirable to the largest set of users, and IMO > >>> that's ZFS in most cases today. > >>> > >>> It might be that we should default to UFS on i386 and ZFS on amd64? > >> > >> UFS may be better for any virtual guest having RAM less or equal to 4GB. > > > > Why? > > Considering /usr/ports, /usr/src and /usr/obj and amount of RAM > needed to keep metadata in ZFS ARC /usr/ports, /usr/src and /usr/obj don't need be exist on low-RAM install -- use poudriere and release build on dedicated build host and applay binary update. > plus standard daily periodic scripts traveling filesystems, low-RAM virtual machine utilizing its RAM to full amount > can work reliably with UFS and hang at nights due to extra ZFS overhead in default install (not tuned). Just need fix ZFS ARC pressure and UMA zone reclaim. ZFS ARC overhead about 10-20MB (IMHO) on low-RAM install. This is negligible from 512MB. From owner-svn-src-all@freebsd.org Fri Jan 17 11:23:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DEB5122B4AA for ; Fri, 17 Jan 2020 11:23:50 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zdx25Hqnz4P0l; Fri, 17 Jan 2020 11:23:50 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1isPjA-0003x6-Vr; Fri, 17 Jan 2020 14:23:48 +0300 Date: Fri, 17 Jan 2020 14:23:48 +0300 From: Slawa Olhovchenkov To: Devin Teske Cc: Eugene Grosbein , Ed Maste , "svn-src-all@freebsd.org" , Oliver Pinter , Nathan Whitehorn , Ben Woods , Warner Losh Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20200117112348.GZ89045@zxy.spb.ru> References: <202001150747.00F7lqiG071097@repo.freebsd.org> <20200117000333.GI38096@zxy.spb.ru> <08F74089-9EDC-447D-A55E-610D543F1E57@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <08F74089-9EDC-447D-A55E-610D543F1E57@freebsd.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Rspamd-Queue-Id: 47zdx25Hqnz4P0l X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-5.99 / 15.00]; TAGGED_RCPT(0.00)[]; NEURAL_HAM_MEDIUM(-0.99)[-0.992,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-0.998,0] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 11:23:50 -0000 On Thu, Jan 16, 2020 at 04:19:52PM -0800, Devin Teske wrote: > > > > On Jan 16, 2020, at 16:03, Slawa Olhovchenkov wrote: > > > > On Thu, Jan 16, 2020 at 02:43:37PM +0700, Eugene Grosbein wrote: > > > >> 16.01.2020 4:41, Ed Maste wrote: > >> > >>> On Wed, 15 Jan 2020 at 16:10, Eugene Grosbein wrote: > >>>> > >>>> There are multiple scenarios there ZFS may be sub-optimal at least: small i386 virtual guests > >>>> or 32-bit only hardware like AMD Geode, or big amd64 SSD-only systems with bhyve and multiple guests > >>>> that need lots of memory and should not fight with ZFS for RAM etc. > >>> > >>> That may well be the case, but our defaults should represent the > >>> configuration that's desirable to the largest set of users, and IMO > >>> that's ZFS in most cases today. > >>> > >>> It might be that we should default to UFS on i386 and ZFS on amd64? > >> > >> UFS may be better for any virtual guest having RAM less or equal to 4GB. > > > > Why? > > ZFS does not do any auto-tuning in that situation and you’ll quickly > find you’ll have a dozen or more tunables in loader.conf tailored to > your workload. Even moderate workloads require tuning in i386 and/or > <=4GB environments with ZFS. This (auto-tuning) can be fixed, I am do this. > It is also highly inadvisable to mix UFS and ZFS — memory pressure from ARC can cause UFS cache evictions and vice-versa. May be, don't test From owner-svn-src-all@freebsd.org Fri Jan 17 12:35:22 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DB48822D465 for ; Fri, 17 Jan 2020 12:35:22 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zgWY5yR2z4RsW for ; Fri, 17 Jan 2020 12:35:21 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00HCZ4n9043693 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Jan 2020 12:35:09 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: slw@zxy.spb.ru Received: from [10.58.0.4] (dadv@[10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00HCZ2eK043631 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 17 Jan 2020 19:35:02 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Slawa Olhovchenkov References: <202001150747.00F7lqiG071097@repo.freebsd.org> <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> <20200117112151.GJ38096@zxy.spb.ru> Cc: "svn-src-all@freebsd.org" From: Eugene Grosbein Message-ID: <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> Date: Fri, 17 Jan 2020 19:35:02 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20200117112151.GJ38096@zxy.spb.ru> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS,T_DATE_IN_FUTURE_Q_PLUS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 0.0 T_DATE_IN_FUTURE_Q_PLUS Date: is over 4 months after Received: * date * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47zgWY5yR2z4RsW X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.86 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; IP_SCORE(-1.77)[ip: (-4.80), ipnet: 2a01:4f8::/29(-2.49), asn: 24940(-1.52), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 12:35:22 -0000 17.01.2020 18:21, Slawa Olhovchenkov wrote: >> Considering /usr/ports, /usr/src and /usr/obj and amount of RAM >> needed to keep metadata in ZFS ARC > > /usr/ports, /usr/src and /usr/obj don't need be exist on low-RAM > install -- use poudriere and release build on dedicated build host and > applay binary update. Poudriere itself has its disadvantages. It's heavy and it's unable to produce minimal set of target packages suitable for "pkg install -U *.txz" command without build-only dependencies. I'd like to stick with poudriere but could not. Its supposed work-style does not worth it. Real Work (TM) sometimes presents the need to apply patches, so /usr/src and /usr/obj may become are unavoidable. 1GB-RAM UFS system runs just fine with such trees being stand-alone and does not require extra build system and nor its overhead. From owner-svn-src-all@freebsd.org Fri Jan 17 12:58:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D4A922DC41 for ; Fri, 17 Jan 2020 12:58:55 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zh2k2LJXz4SlS for ; Fri, 17 Jan 2020 12:58:54 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1isRD9-0004Pe-7b; Fri, 17 Jan 2020 15:58:51 +0300 Date: Fri, 17 Jan 2020 15:58:51 +0300 From: Slawa Olhovchenkov To: Eugene Grosbein Cc: "svn-src-all@freebsd.org" Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20200117125851.GK38096@zxy.spb.ru> References: <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> <20200117112151.GJ38096@zxy.spb.ru> <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Rspamd-Queue-Id: 47zh2k2LJXz4SlS X-Spamd-Bar: + Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of slw@zxy.spb.ru has no SPF policy when checking 195.70.199.98) smtp.mailfrom=slw@zxy.spb.ru X-Spamd-Result: default: False [1.81 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[zxy.spb.ru]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.22)[0.219,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_SPAM_LONG(0.60)[0.604,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:5495, ipnet:195.70.192.0/19, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(0.09)[asn: 5495(0.42), country: RU(0.01)]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 12:58:55 -0000 On Fri, Jan 17, 2020 at 07:35:02PM +0700, Eugene Grosbein wrote: > 17.01.2020 18:21, Slawa Olhovchenkov wrote: > > >> Considering /usr/ports, /usr/src and /usr/obj and amount of RAM > >> needed to keep metadata in ZFS ARC > > > > /usr/ports, /usr/src and /usr/obj don't need be exist on low-RAM > > install -- use poudriere and release build on dedicated build host and > > applay binary update. > > Poudriere itself has its disadvantages. It's heavy and it's unable to produce minimal set of target packages > suitable for "pkg install -U *.txz" command without build-only dependencies. Can you do it by /usr/ports way? No. And what you point? > I'd like to stick with poudriere but could not. Its supposed work-style does not worth it. > > Real Work (TM) sometimes presents the need to apply patches, so > /usr/src and /usr/obj may become are unavoidable. I am do w/ dedicated builhost, produce custom build of base.txz/kernel.txz/kernel.CUSTOM.txz and applay binary updates w/ BE. What you point? > 1GB-RAM UFS system runs just fine with such trees being stand-alone and does not require extra build system and nor its overhead. clang very hard to compile in 1GB RAM. Anyway, my 1GB ZFS system run just fine. From owner-svn-src-all@freebsd.org Fri Jan 17 13:17:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4B12E22E448 for ; Fri, 17 Jan 2020 13:17:30 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zhS939m4z4TdL for ; Fri, 17 Jan 2020 13:17:29 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00HDHHf4044164 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Jan 2020 13:17:18 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: slw@zxy.spb.ru Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00HDHGf9044145 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 17 Jan 2020 20:17:16 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Slawa Olhovchenkov References: <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> <20200117112151.GJ38096@zxy.spb.ru> <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> <20200117125851.GK38096@zxy.spb.ru> Cc: "svn-src-all@freebsd.org" From: Eugene Grosbein Message-ID: <798ef101-c9e5-093b-8a0c-7fd3cb9a07b1@grosbein.net> Date: Fri, 17 Jan 2020 20:17:11 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20200117125851.GK38096@zxy.spb.ru> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47zhS939m4z4TdL X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.87 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; IP_SCORE(-1.77)[ip: (-4.82), ipnet: 2a01:4f8::/29(-2.49), asn: 24940(-1.52), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 13:17:30 -0000 17.01.2020 19:58, Slawa Olhovchenkov wrote: >>>> Considering /usr/ports, /usr/src and /usr/obj and amount of RAM >>>> needed to keep metadata in ZFS ARC >>> >>> /usr/ports, /usr/src and /usr/obj don't need be exist on low-RAM >>> install -- use poudriere and release build on dedicated build host and >>> applay binary update. >> >> Poudriere itself has its disadvantages. It's heavy and it's unable to produce minimal set of target packages >> suitable for "pkg install -U *.txz" command without build-only dependencies. > > Can you do it by /usr/ports way? No. And what you point? I can and I do, with my own scripts. >> I'd like to stick with poudriere but could not. Its supposed work-style does not worth it. >> >> Real Work (TM) sometimes presents the need to apply patches, so >> /usr/src and /usr/obj may become are unavoidable. > > I am do w/ dedicated builhost, produce custom build of > base.txz/kernel.txz/kernel.CUSTOM.txz and applay binary updates w/ BE. > What you point? The virtual guest is stand-alone including upgrades, does not depend on build host nor its existance. >> 1GB-RAM UFS system runs just fine with such trees being stand-alone and does not require extra build system and nor its overhead. > > clang very hard to compile in 1GB RAM. It was fine before clang-[78]. Buy nowadays, yes, I'm forced to use multiple knobs for src.conf WITHOUT_LLVM_TARGET_ALL= WITH_LLVM_TARGET_X86= WITHOUT_CLANG_FULL= And using WITH_META_MODE not cleaning obj directory. > Anyway, my 1GB ZFS system run just fine. During life-time of stable/10 and early stable/11 (and not so-early) ZFS required hard tuning for 1GB i386 system to be stable because it's KVM-hog. From owner-svn-src-all@freebsd.org Fri Jan 17 14:08:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6B2A22F413 for ; Fri, 17 Jan 2020 14:08:09 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47zjZc69snz4Wdm for ; Fri, 17 Jan 2020 14:08:08 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1isSI8-0004mI-IN; Fri, 17 Jan 2020 17:08:04 +0300 Date: Fri, 17 Jan 2020 17:08:04 +0300 From: Slawa Olhovchenkov To: Eugene Grosbein Cc: "svn-src-all@freebsd.org" Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20200117140804.GA89045@zxy.spb.ru> References: <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> <20200117112151.GJ38096@zxy.spb.ru> <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> <20200117125851.GK38096@zxy.spb.ru> <798ef101-c9e5-093b-8a0c-7fd3cb9a07b1@grosbein.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <798ef101-c9e5-093b-8a0c-7fd3cb9a07b1@grosbein.net> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Rspamd-Queue-Id: 47zjZc69snz4Wdm X-Spamd-Bar: + Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of slw@zxy.spb.ru has no SPF policy when checking 195.70.199.98) smtp.mailfrom=slw@zxy.spb.ru X-Spamd-Result: default: False [1.81 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[zxy.spb.ru]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.23)[0.228,0]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; NEURAL_SPAM_LONG(0.60)[0.601,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:5495, ipnet:195.70.192.0/19, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; IP_SCORE(0.09)[asn: 5495(0.41), country: RU(0.01)]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:08:09 -0000 On Fri, Jan 17, 2020 at 08:17:11PM +0700, Eugene Grosbein wrote: > >>>> Considering /usr/ports, /usr/src and /usr/obj and amount of RAM > >>>> needed to keep metadata in ZFS ARC > >>> > >>> /usr/ports, /usr/src and /usr/obj don't need be exist on low-RAM > >>> install -- use poudriere and release build on dedicated build host and > >>> applay binary update. > >> > >> Poudriere itself has its disadvantages. It's heavy and it's unable to produce minimal set of target packages > >> suitable for "pkg install -U *.txz" command without build-only dependencies. > > > > Can you do it by /usr/ports way? No. And what you point? > > I can and I do, with my own scripts. > > >> I'd like to stick with poudriere but could not. Its supposed work-style does not worth it. > >> > >> Real Work (TM) sometimes presents the need to apply patches, so > >> /usr/src and /usr/obj may become are unavoidable. > > > > I am do w/ dedicated builhost, produce custom build of > > base.txz/kernel.txz/kernel.CUSTOM.txz and applay binary updates w/ BE. > > What you point? > > The virtual guest is stand-alone including upgrades, does not depend on build host nor its existance. > > >> 1GB-RAM UFS system runs just fine with such trees being stand-alone and does not require extra build system and nor its overhead. > > > > clang very hard to compile in 1GB RAM. > > It was fine before clang-[78]. Buy nowadays, yes, I'm forced to use multiple knobs for src.conf > > WITHOUT_LLVM_TARGET_ALL= > WITH_LLVM_TARGET_X86= > WITHOUT_CLANG_FULL= > > And using WITH_META_MODE not cleaning obj directory. > > > Anyway, my 1GB ZFS system run just fine. > > During life-time of stable/10 and early stable/11 (and not so-early) > ZFS required hard tuning for 1GB i386 system to be stable because it's KVM-hog. I am cleary understund you provide expirence from satble/10 to current/13? w/ different clang, kernel, etc? From owner-svn-src-all@freebsd.org Fri Jan 17 14:29:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7439822F927; Fri, 17 Jan 2020 14:29:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zk3D1hbXz4XRX; Fri, 17 Jan 2020 14:29:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 357D3A178; Fri, 17 Jan 2020 14:29:28 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HETRA2054763; Fri, 17 Jan 2020 14:29:27 GMT (envelope-from bdrewery@FreeBSD.org) Received: (from bdrewery@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HETRLJ054762; Fri, 17 Jan 2020 14:29:27 GMT (envelope-from bdrewery@FreeBSD.org) Message-Id: <202001171429.00HETRLJ054762@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to bdrewery@FreeBSD.org using -f From: Bryan Drewery Date: Fri, 17 Jan 2020 14:29:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356827 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: bdrewery X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356827 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:29:28 -0000 Author: bdrewery Date: Fri Jan 17 14:29:27 2020 New Revision: 356827 URL: https://svnweb.freebsd.org/changeset/base/356827 Log: META_MODE: Allow 'make all install' to work with filemon. Filemon will add the ability to ignore the cookie if the installed file is missing. Without filemon that's not possible though so if the cookie is present an the command unchanged then the install wouldn't run. Sponsored by: DellEMC MFC after: 2 weeks Modified: head/share/mk/src.sys.env.mk Modified: head/share/mk/src.sys.env.mk ============================================================================== --- head/share/mk/src.sys.env.mk Fri Jan 17 06:10:24 2020 (r356826) +++ head/share/mk/src.sys.env.mk Fri Jan 17 14:29:27 2020 (r356827) @@ -61,8 +61,9 @@ MAKEOBJDIRPREFIX:= ${_saveMAKEOBJDIRPREFIX} .include # Top-level installs should not use meta mode as it may prevent installing -# based on cookies. -.if make(*install*) && ${.MAKE.LEVEL} == 0 +# based on cookies. It's fine with filemon though. +.if !empty(META_MODE:Mnofilemon) && \ + make(*install*) && ${.MAKE.LEVEL} == 0 META_MODE= normal MK_META_MODE= no .export MK_META_MODE From owner-svn-src-all@freebsd.org Fri Jan 17 14:39:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 96E1322FCDF; Fri, 17 Jan 2020 14:39:00 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zkGD3XVdz4Y5w; Fri, 17 Jan 2020 14:39:00 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 747B3A349; Fri, 17 Jan 2020 14:39:00 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HEd0a1061376; Fri, 17 Jan 2020 14:39:00 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HEd0xq061375; Fri, 17 Jan 2020 14:39:00 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001171439.00HEd0xq061375@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 17 Jan 2020 14:39:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356828 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356828 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:39:00 -0000 Author: mjg Date: Fri Jan 17 14:39:00 2020 New Revision: 356828 URL: https://svnweb.freebsd.org/changeset/base/356828 Log: vfs: shorten lock hold time in vdbatch_process Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Fri Jan 17 14:29:27 2020 (r356827) +++ head/sys/kern/vfs_subr.c Fri Jan 17 14:39:00 2020 (r356828) @@ -3243,9 +3243,9 @@ vdbatch_process(struct vdbatch *vd) MPASS(vp->v_dbatchcpu != NOCPU); vp->v_dbatchcpu = NOCPU; } + mtx_unlock(&vnode_list_mtx); bzero(vd->tab, sizeof(vd->tab)); vd->index = 0; - mtx_unlock(&vnode_list_mtx); } static void From owner-svn-src-all@freebsd.org Fri Jan 17 14:40:10 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 5F33C22FD82; Fri, 17 Jan 2020 14:40:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zkHZ1wRFz4YFk; Fri, 17 Jan 2020 14:40:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B1E9A34D; Fri, 17 Jan 2020 14:40:10 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HEeALW061519; Fri, 17 Jan 2020 14:40:10 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HEeAPn061518; Fri, 17 Jan 2020 14:40:10 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001171440.00HEeAPn061518@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 17 Jan 2020 14:40:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356829 - head/lib/libc/gen X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/lib/libc/gen X-SVN-Commit-Revision: 356829 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:40:10 -0000 Author: mjg Date: Fri Jan 17 14:40:09 2020 New Revision: 356829 URL: https://svnweb.freebsd.org/changeset/base/356829 Log: libc: assume no union stack if fstatfs fails in readdir The failure is not really expected, but should it happen it's better to get some data. Suggested by: kib Modified: head/lib/libc/gen/opendir.c Modified: head/lib/libc/gen/opendir.c ============================================================================== --- head/lib/libc/gen/opendir.c Fri Jan 17 14:39:00 2020 (r356828) +++ head/lib/libc/gen/opendir.c Fri Jan 17 14:40:09 2020 (r356829) @@ -283,7 +283,7 @@ __opendir_common(int fd, int flags, bool use_current_p DIR *dirp; int incr; int saved_errno; - int unionstack; + bool unionstack; if ((dirp = malloc(sizeof(DIR) + sizeof(struct _telldir))) == NULL) return (NULL); @@ -310,15 +310,14 @@ __opendir_common(int fd, int flags, bool use_current_p /* * Determine whether this directory is the top of a union stack. */ + unionstack = false; if (flags & DTF_NODUP) { struct statfs sfb; - if (_fstatfs(fd, &sfb) < 0) - goto fail; - unionstack = !strcmp(sfb.f_fstypename, "unionfs") - || (sfb.f_flags & MNT_UNION); - } else { - unionstack = 0; + if (_fstatfs(fd, &sfb) == 0) { + unionstack = strcmp(sfb.f_fstypename, "unionfs") == 0 || + (sfb.f_flags & MNT_UNION); + } } if (unionstack) { From owner-svn-src-all@freebsd.org Fri Jan 17 14:42:27 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 125021F0114; Fri, 17 Jan 2020 14:42:27 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zkLB6qprz4YcJ; Fri, 17 Jan 2020 14:42:26 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E5CB5A516; Fri, 17 Jan 2020 14:42:26 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HEgQHi066820; Fri, 17 Jan 2020 14:42:26 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HEgPo2066815; Fri, 17 Jan 2020 14:42:25 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001171442.00HEgPo2066815@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 17 Jan 2020 14:42:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356830 - in head: lib/libc/gen lib/libc/sys sys/fs/unionfs sys/kern sys/sys X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: in head: lib/libc/gen lib/libc/sys sys/fs/unionfs sys/kern sys/sys X-SVN-Commit-Revision: 356830 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:42:27 -0000 Author: mjg Date: Fri Jan 17 14:42:25 2020 New Revision: 356830 URL: https://svnweb.freebsd.org/changeset/base/356830 Log: vfs: provide F_ISUNIONSTACK as a kludge for libc Prior to introduction of this op libc's readdir would call fstatfs(2), in effect unnecessarily copying kilobytes of data just to check fs name and a mount flag. Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D23162 Modified: head/lib/libc/gen/opendir.c head/lib/libc/sys/fcntl.2 head/sys/fs/unionfs/union_vfsops.c head/sys/kern/kern_descrip.c head/sys/sys/fcntl.h head/sys/sys/mount.h Modified: head/lib/libc/gen/opendir.c ============================================================================== --- head/lib/libc/gen/opendir.c Fri Jan 17 14:40:09 2020 (r356829) +++ head/lib/libc/gen/opendir.c Fri Jan 17 14:42:25 2020 (r356830) @@ -273,7 +273,25 @@ _filldir(DIR *dirp, bool use_current_pos) return (true); } +static bool +is_unionstack(int fd) +{ + struct statfs sfb; + int unionstack; + unionstack = _fcntl(fd, F_ISUNIONSTACK); + if (unionstack != -1) + return (unionstack); + + /* + * Temporary compat for kernels which don't provide F_ISUNIONSTACK. + */ + if (_fstatfs(fd, &sfb) < 0) + return (true); + return (strcmp(sfb.f_fstypename, "unionfs") == 0 || + (sfb.f_flags & MNT_UNION)); +} + /* * Common routine for opendir(3), __opendir2(3) and fdopendir(3). */ @@ -312,12 +330,7 @@ __opendir_common(int fd, int flags, bool use_current_p */ unionstack = false; if (flags & DTF_NODUP) { - struct statfs sfb; - - if (_fstatfs(fd, &sfb) == 0) { - unionstack = strcmp(sfb.f_fstypename, "unionfs") == 0 || - (sfb.f_flags & MNT_UNION); - } + unionstack = is_unionstack(fd); } if (unionstack) { Modified: head/lib/libc/sys/fcntl.2 ============================================================================== --- head/lib/libc/sys/fcntl.2 Fri Jan 17 14:40:09 2020 (r356829) +++ head/lib/libc/sys/fcntl.2 Fri Jan 17 14:42:25 2020 (r356830) @@ -28,7 +28,7 @@ .\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 .\" $FreeBSD$ .\" -.Dd September 4, 2019 +.Dd January 17, 2020 .Dt FCNTL 2 .Os .Sh NAME @@ -185,6 +185,11 @@ Add seals to the file as described below, if the under seals. .It Dv F_GET_SEALS Get seals associated with the file, if the underlying filesystem supports seals. +.It Dv F_ISUNIONSTACK +Check if the vnode is part of a union stack (either the "union" flag from +.Xr mount 2 +or unionfs). +This is a hack not intended to be used outside of libc. .El .Pp The flags for the Modified: head/sys/fs/unionfs/union_vfsops.c ============================================================================== --- head/sys/fs/unionfs/union_vfsops.c Fri Jan 17 14:40:09 2020 (r356829) +++ head/sys/fs/unionfs/union_vfsops.c Fri Jan 17 14:42:25 2020 (r356830) @@ -296,7 +296,7 @@ unionfs_domount(struct mount *mp) if ((ump->um_lowervp->v_mount->mnt_flag & MNT_LOCAL) && (ump->um_uppervp->v_mount->mnt_flag & MNT_LOCAL)) mp->mnt_flag |= MNT_LOCAL; - mp->mnt_kern_flag |= MNTK_NOMSYNC; + mp->mnt_kern_flag |= MNTK_NOMSYNC | MNTK_UNIONFS; MNT_IUNLOCK(mp); /* Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Fri Jan 17 14:40:09 2020 (r356829) +++ head/sys/kern/kern_descrip.c Fri Jan 17 14:42:25 2020 (r356830) @@ -489,6 +489,7 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ struct filedescent *fde; struct proc *p; struct vnode *vp; + struct mount *mp; int error, flg, seals, tmp; uint64_t bsize; off_t foffset; @@ -813,6 +814,49 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_ atomic_clear_int(&fp->f_flag, FRDAHEAD); } VOP_UNLOCK(vp); + fdrop(fp, td); + break; + + case F_ISUNIONSTACK: + /* + * Check if the vnode is part of a union stack (either the + * "union" flag from mount(2) or unionfs). + * + * Prior to introduction of this op libc's readdir would call + * fstatfs(2), in effect unnecessarily copying kilobytes of + * data just to check fs name and a mount flag. + * + * Fixing the code to handle everything in the kernel instead + * is a non-trivial endeavor and has low priority, thus this + * horrible kludge facilitates the current behavior in a much + * cheaper manner until someone(tm) sorts this out. + */ + error = fget_unlocked(fdp, fd, &cap_no_rights, &fp, NULL); + if (error != 0) + break; + if (fp->f_type != DTYPE_VNODE) { + fdrop(fp, td); + error = EBADF; + break; + } + vp = fp->f_vnode; + /* + * Since we don't prevent dooming the vnode even non-null mp + * found can become immediately stale. This is tolerable since + * mount points are type-stable (providing safe memory access) + * and any vfs op on this vnode going forward will return an + * error (meaning return value in this case is meaningless). + */ + mp = (struct mount *)atomic_load_ptr(&vp->v_mount); + if (__predict_false(mp == NULL)) { + fdrop(fp, td); + error = EBADF; + break; + } + td->td_retval[0] = 0; + if (mp->mnt_kern_flag & MNTK_UNIONFS || + mp->mnt_flag & MNT_UNION) + td->td_retval[0] = 1; fdrop(fp, td); break; Modified: head/sys/sys/fcntl.h ============================================================================== --- head/sys/sys/fcntl.h Fri Jan 17 14:40:09 2020 (r356829) +++ head/sys/sys/fcntl.h Fri Jan 17 14:42:25 2020 (r356830) @@ -250,6 +250,7 @@ typedef __pid_t pid_t; #define F_DUP2FD_CLOEXEC 18 /* Like F_DUP2FD, but FD_CLOEXEC is set */ #define F_ADD_SEALS 19 #define F_GET_SEALS 20 +#define F_ISUNIONSTACK 21 /* Kludge for libc, don't use it. */ /* Seals (F_ADD_SEALS, F_GET_SEALS). */ #define F_SEAL_SEAL 0x0001 /* Prevent adding sealings */ Modified: head/sys/sys/mount.h ============================================================================== --- head/sys/sys/mount.h Fri Jan 17 14:40:09 2020 (r356829) +++ head/sys/sys/mount.h Fri Jan 17 14:42:25 2020 (r356830) @@ -414,6 +414,7 @@ void __mnt_vnode_markerfree_lazy(struct vnode #define MNTK_USES_BCACHE 0x00004000 /* FS uses the buffer cache. */ #define MNTK_TEXT_REFS 0x00008000 /* Keep use ref for text */ #define MNTK_VMSETSIZE_BUG 0x00010000 +#define MNTK_UNIONFS 0x00020000 /* A hack for F_ISUNIONSTACK */ #define MNTK_NOASYNC 0x00800000 /* disable async */ #define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ #define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ From owner-svn-src-all@freebsd.org Fri Jan 17 14:43:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D34161F0237; Fri, 17 Jan 2020 14:43:58 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zkMy4xL4z4YtR; Fri, 17 Jan 2020 14:43:58 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A4842A539; Fri, 17 Jan 2020 14:43:58 +0000 (UTC) (envelope-from luporl@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HEhwDu066932; Fri, 17 Jan 2020 14:43:58 GMT (envelope-from luporl@FreeBSD.org) Received: (from luporl@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HEhwmr066931; Fri, 17 Jan 2020 14:43:58 GMT (envelope-from luporl@FreeBSD.org) Message-Id: <202001171443.00HEhwmr066931@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: luporl set sender to luporl@FreeBSD.org using -f From: Leandro Lupori Date: Fri, 17 Jan 2020 14:43:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356831 - head/sys/powerpc/include X-SVN-Group: head X-SVN-Commit-Author: luporl X-SVN-Commit-Paths: head/sys/powerpc/include X-SVN-Commit-Revision: 356831 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 14:43:58 -0000 Author: luporl Date: Fri Jan 17 14:43:58 2020 New Revision: 356831 URL: https://svnweb.freebsd.org/changeset/base/356831 Log: [PPC] Fix wrong comment pcb_context[20] holds r12-r31 and not r14-r31, as the comment said. Modified: head/sys/powerpc/include/pcb.h Modified: head/sys/powerpc/include/pcb.h ============================================================================== --- head/sys/powerpc/include/pcb.h Fri Jan 17 14:42:25 2020 (r356830) +++ head/sys/powerpc/include/pcb.h Fri Jan 17 14:43:58 2020 (r356831) @@ -41,7 +41,7 @@ #ifndef _STANDALONE struct pcb { - register_t pcb_context[20]; /* non-volatile r14-r31 */ + register_t pcb_context[20]; /* non-volatile r12-r31 */ register_t pcb_cr; /* Condition register */ register_t pcb_sp; /* stack pointer */ register_t pcb_toc; /* toc pointer */ From owner-svn-src-all@freebsd.org Fri Jan 17 15:36:05 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 97CB81F1770 for ; Fri, 17 Jan 2020 15:36:05 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from hz.grosbein.net (hz.grosbein.net [IPv6:2a01:4f8:c2c:26d8::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hz.grosbein.net", Issuer "hz.grosbein.net" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zlX43XZFz4cr1 for ; Fri, 17 Jan 2020 15:36:03 +0000 (UTC) (envelope-from eugen@grosbein.net) Received: from eg.sd.rdtc.ru (eg.sd.rdtc.ru [IPv6:2a03:3100:c:13:0:0:0:5]) by hz.grosbein.net (8.15.2/8.15.2) with ESMTPS id 00HFZj1K045681 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Jan 2020 15:35:46 GMT (envelope-from eugen@grosbein.net) X-Envelope-From: eugen@grosbein.net X-Envelope-To: slw@zxy.spb.ru Received: from [10.58.0.4] ([10.58.0.4]) by eg.sd.rdtc.ru (8.15.2/8.15.2) with ESMTPS id 00HFZhs1045206 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 17 Jan 2020 22:35:43 +0700 (+07) (envelope-from eugen@grosbein.net) Subject: Re: svn commit: r356758 - in head/usr.sbin/bsdinstall: . scripts To: Slawa Olhovchenkov References: <20200117000333.GI38096@zxy.spb.ru> <3b4b4bda-75a3-3019-bc02-ecd6acacd77f@grosbein.net> <20200117112151.GJ38096@zxy.spb.ru> <0f117603-d995-b32d-68fb-36cc319d9b79@grosbein.net> <20200117125851.GK38096@zxy.spb.ru> <798ef101-c9e5-093b-8a0c-7fd3cb9a07b1@grosbein.net> <20200117140804.GA89045@zxy.spb.ru> Cc: "svn-src-all@freebsd.org" From: Eugene Grosbein Message-ID: <6412c204-868b-a685-fce4-6dea3e6ceb02@grosbein.net> Date: Fri, 17 Jan 2020 22:35:37 +0700 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20200117140804.GA89045@zxy.spb.ru> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=0.3 required=5.0 tests=BAYES_00,LOCAL_FROM, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Report: * -2.3 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] * 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record * -0.0 SPF_PASS SPF: sender matches SPF record * 2.6 LOCAL_FROM From my domains X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on hz.grosbein.net X-Rspamd-Queue-Id: 47zlX43XZFz4cr1 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=permerror (mx1.freebsd.org: domain of eugen@grosbein.net uses mechanism not recognized by this client) smtp.mailfrom=eugen@grosbein.net X-Spamd-Result: default: False [-3.87 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[grosbein.net]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; R_SPF_PERMFAIL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; IP_SCORE(-1.77)[ip: (-4.83), ipnet: 2a01:4f8::/29(-2.49), asn: 24940(-1.52), country: DE(-0.02)]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:24940, ipnet:2a01:4f8::/29, country:DE]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_TLS_ALL(0.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 15:36:05 -0000 17.01.2020 21:08, Slawa Olhovchenkov wrote: > I am cleary understund you provide expirence from satble/10 to > current/13? > w/ different clang, kernel, etc? No, I'm talking about production and recent stable/11. From owner-svn-src-all@freebsd.org Fri Jan 17 15:45:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id AF2D21F2235; Fri, 17 Jan 2020 15:45:39 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zll74BGlz4dh8; Fri, 17 Jan 2020 15:45:39 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 86AB7B07D; Fri, 17 Jan 2020 15:45:39 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HFjd0g003502; Fri, 17 Jan 2020 15:45:39 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HFjdMw003501; Fri, 17 Jan 2020 15:45:39 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001171545.00HFjdMw003501@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Fri, 17 Jan 2020 15:45:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356832 - head/lib/libc/gen X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/lib/libc/gen X-SVN-Commit-Revision: 356832 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 15:45:39 -0000 Author: mjg Date: Fri Jan 17 15:45:39 2020 New Revision: 356832 URL: https://svnweb.freebsd.org/changeset/base/356832 Log: libc: fix build after r356830 Apparently building with 'cd lib/libc; make all install' is not the same as buildworld. Reported by: Michael Butler Modified: head/lib/libc/gen/opendir.c Modified: head/lib/libc/gen/opendir.c ============================================================================== --- head/lib/libc/gen/opendir.c Fri Jan 17 14:43:58 2020 (r356831) +++ head/lib/libc/gen/opendir.c Fri Jan 17 15:45:39 2020 (r356832) @@ -279,7 +279,7 @@ is_unionstack(int fd) struct statfs sfb; int unionstack; - unionstack = _fcntl(fd, F_ISUNIONSTACK); + unionstack = _fcntl(fd, F_ISUNIONSTACK, 0); if (unionstack != -1) return (unionstack); From owner-svn-src-all@freebsd.org Fri Jan 17 15:55:17 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id A42761F2779; Fri, 17 Jan 2020 15:55:17 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zlyF4fL3z4fHN; Fri, 17 Jan 2020 15:55:17 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 81EA1B276; Fri, 17 Jan 2020 15:55:17 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HFtH9M009515; Fri, 17 Jan 2020 15:55:17 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HFtFEn009503; Fri, 17 Jan 2020 15:55:15 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001171555.00HFtFEn009503@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 17 Jan 2020 15:55:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356833 - in stable/12/sys: arm/arm arm/conf arm/include conf kern sys X-SVN-Group: stable-12 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/12/sys: arm/arm arm/conf arm/include conf kern sys X-SVN-Commit-Revision: 356833 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 15:55:17 -0000 Author: ian Date: Fri Jan 17 15:55:14 2020 New Revision: 356833 URL: https://svnweb.freebsd.org/changeset/base/356833 Log: MFC r354709-r354710, r355069, r355439, r355780, r356273, r356472 r354709: Rewrite arm/stack_machdep.c for EABI; add stack(9) support to arm kernels. The old stack_machdep.c code was written for the APCS ABI (aka "oldabi"). When we switched to ARM EABI (back in freebsd 10) this file never got updated, and apparently nobody noticed that until now. The new implementation uses the same stack unwinder code used by the arm implemenation of the db_trace stuff. r354710: Compile in arm/unwind.c if options STACK is in effect; the new arm stack(9) code now uses unwind.c. r355069: When doing ARM stack unwinding as part of stack_save(9), do not search loaded modules (pass 0/false for the can_lock arg). Searching the unwind info in modules acquires an exclusive sxlock, and the stack(9) functions can be called in a context where unbounded sleeps are forbidden (such as from the witness checkorder code). Just ignoring the existence of modules in stack_save() is not ideal, so I'm looking for a better solution, but this commit will make it possible to boot an ARM kernel with WITNESS enabled again, until I get something better. PR: 242200 r355439: Declare the global kernel symbols created by ldscript.arm in arm's machdep.h, and remove a couple scattered local declarations. Most of these aren't referenced in C code (there are some references in asm code), and they also aren't documented anywhere. This helps a bit with the latter. r355780: Rewrite arm kernel stack unwind code to work when unwinding through modules. The arm kernel stack unwinder has apparently never been able to unwind when the path of execution leads through a kernel module. There was code that tried to handle modules by looking for the unwind data in them, but it did so by trying to find symbols which have never existed in arm kernel modules. That caused the unwind code to panic, and because part of panic handling calls into the unwind code, that just created a recursion loop. Locating the unwind data in a loaded module requires accessing the Elf section headers to find the SHT_ARM_EXIDX section. For preloaded modules those headers are present in a metadata blob. For dynamically loaded modules, the headers are present only while the loading is in progress; the memory is freed once the module is ready to use. For that reason, there is new code in kern/link_elf.c, wrapped in #ifdef __arm__, to extract the unwind info while the headers are loaded. The values are saved into new fields in the linker_file structure which are also conditional on __arm__. In arm/unwind.c there is new code to locally cache the per-module info needed to find the unwind tables. The local cache is crafted for lockless read access, because the unwind code often needs to run in context where sleeping is not allowed. A large comment block describes the local cache list, so I won't repeat it all here. r356273: Since arm/unwind.c s conditionally compiled, only call functions in it when one of those conditions is true. Fixes build failure on kernel configs with no debugging options active. r356472: Add #ifdef option-test wrappers around another call to an arm/unwind.c function which is only compiled-in with certain options. Why is it always the most trivial part of a big commit that takes 3 tries to get right? Modified: stable/12/sys/arm/arm/elf_machdep.c stable/12/sys/arm/arm/mp_machdep.c stable/12/sys/arm/arm/stack_machdep.c stable/12/sys/arm/arm/unwind.c stable/12/sys/arm/conf/std.armv6 stable/12/sys/arm/conf/std.armv7 stable/12/sys/arm/include/machdep.h stable/12/sys/arm/include/stack.h stable/12/sys/conf/files.arm stable/12/sys/kern/kern_linker.c stable/12/sys/kern/link_elf.c stable/12/sys/sys/linker.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/arm/elf_machdep.c ============================================================================== --- stable/12/sys/arm/arm/elf_machdep.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/arm/elf_machdep.c Fri Jan 17 15:55:14 2020 (r356833) @@ -47,10 +47,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include #ifdef VFP #include #endif +#include "opt_ddb.h" /* for OPT_DDB */ +#include "opt_global.h" /* for OPT_KDTRACE_HOOKS */ +#include "opt_stack.h" /* for OPT_STACK */ + static boolean_t elf32_arm_abi_supported(struct image_params *); u_long elf_hwcap; @@ -309,12 +314,25 @@ elf_cpu_load_file(linker_file_t lf) cpu_l2cache_wb_range((vm_offset_t)lf->address, (vm_size_t)lf->size); cpu_icache_sync_range((vm_offset_t)lf->address, (vm_size_t)lf->size); #endif + +#if defined(DDB) || defined(KDTRACE_HOOKS) || defined(STACK) + /* + * Inform the stack(9) code of the new module, so it can acquire its + * per-module unwind data. + */ + unwind_module_loaded(lf); +#endif + return (0); } int -elf_cpu_unload_file(linker_file_t lf __unused) +elf_cpu_unload_file(linker_file_t lf) { +#if defined(DDB) || defined(KDTRACE_HOOKS) || defined(STACK) + /* Inform the stack(9) code that this module is gone. */ + unwind_module_unloaded(lf); +#endif return (0); } Modified: stable/12/sys/arm/arm/mp_machdep.c ============================================================================== --- stable/12/sys/arm/arm/mp_machdep.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/arm/mp_machdep.c Fri Jan 17 15:55:14 2020 (r356833) @@ -106,8 +106,6 @@ check_ap(void) return (-2); } -extern unsigned char _end[]; - /* Initialize and fire up non-boot processors */ void cpu_mp_start(void) Modified: stable/12/sys/arm/arm/stack_machdep.c ============================================================================== --- stable/12/sys/arm/arm/stack_machdep.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/arm/stack_machdep.c Fri Jan 17 15:55:14 2020 (r356833) @@ -1,8 +1,7 @@ /*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * SPDX-License-Identifier: BSD-2-Clause * - * Copyright (c) 2005 Antoine Brodin - * All rights reserved. + * Copyright (c) 2019 Ian Lepore * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,63 +28,64 @@ #include __FBSDID("$FreeBSD$"); -#include +#include #include #include #include - -#include #include #include -/* - * This code makes assumptions about the stack layout. These are correct - * when using APCS (the old ABI), but are no longer true with AAPCS and the - * ARM EABI. There is also an issue with clang and llvm when building for - * APCS where it lays out the stack incorrectly. Because of this we disable - * this when building for ARM EABI or when building with clang. - */ +static void +stack_capture(struct stack *st, struct unwind_state *state) +{ -extern vm_offset_t kernel_vm_end; + stack_zero(st); + while (unwind_stack_one(state, 0) == 0) { + if (stack_put(st, state->registers[PC]) == -1) + break; + } +} -static void -stack_capture(struct stack *st, u_int32_t *frame) +void +stack_save(struct stack *st) { + struct unwind_state state; + uint32_t sp; + + /* Read the stack pointer */ + __asm __volatile("mov %0, sp" : "=&r" (sp)); + + state.registers[FP] = (uint32_t)__builtin_frame_address(0); + state.registers[SP] = sp; + state.registers[LR] = (uint32_t)__builtin_return_address(0); + state.registers[PC] = (uint32_t)stack_save; + + stack_capture(st, &state); } void stack_save_td(struct stack *st, struct thread *td) { - u_int32_t *frame; + struct unwind_state state; - if (TD_IS_SWAPPED(td)) - panic("stack_save_td: swapped"); - if (TD_IS_RUNNING(td)) - panic("stack_save_td: running"); + KASSERT(!TD_IS_SWAPPED(td), ("stack_save_td: swapped")); + KASSERT(!TD_IS_RUNNING(td), ("stack_save_td: running")); - /* - * This register, the frame pointer, is incorrect for the ARM EABI - * as it doesn't have a frame pointer, however it's value is not used - * when building for EABI. - */ - frame = (u_int32_t *)td->td_pcb->pcb_regs.sf_r11; - stack_zero(st); - stack_capture(st, frame); + state.registers[FP] = td->td_pcb->pcb_regs.sf_r11; + state.registers[SP] = td->td_pcb->pcb_regs.sf_sp; + state.registers[LR] = td->td_pcb->pcb_regs.sf_lr; + state.registers[PC] = td->td_pcb->pcb_regs.sf_pc; + + stack_capture(st, &state); } int stack_save_td_running(struct stack *st, struct thread *td) { + if (td == curthread) { + stack_save(st); + return (0); + } return (EOPNOTSUPP); -} - -void -stack_save(struct stack *st) -{ - u_int32_t *frame; - - frame = (u_int32_t *)__builtin_frame_address(0); - stack_zero(st); - stack_capture(st, frame); } Modified: stable/12/sys/arm/arm/unwind.c ============================================================================== --- stable/12/sys/arm/arm/unwind.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/arm/unwind.c Fri Jan 17 15:55:14 2020 (r356833) @@ -32,9 +32,13 @@ __FBSDID("$FreeBSD$"); #include -#include +#include #include +#include +#include +#include +#include #include #include "linker_if.h" @@ -61,12 +65,6 @@ __FBSDID("$FreeBSD$"); #define EXIDX_CANTUNWIND 1 /* - * These are set in the linker script. Their addresses will be - * either the start or end of the exception table or index. - */ -extern int exidx_start, exidx_end; - -/* * Entry types. * These are the only entry types that have been seen in the kernel. */ @@ -99,79 +97,236 @@ struct unwind_idx { uint32_t insn; }; -/* Expand a 31-bit signed value to a 32-bit signed value */ -static __inline int32_t -expand_prel31(uint32_t prel31) +/* + * Local cache of unwind info for loaded modules. + * + * To unwind the stack through the code in a loaded module, we need to access + * the module's exidx unwind data. To locate that data, one must search the + * elf section headers for the SHT_ARM_EXIDX section. Those headers are + * available at the time the module is being loaded, but are discarded by time + * the load process has completed. Code in kern/link_elf.c locates the data we + * need and stores it into the linker_file structure before calling the arm + * machdep routine for handling loaded modules (in arm/elf_machdep.c). That + * function calls into this code to pass along the unwind info, which we save + * into one of these module_info structures. + * + * Because we have to help stack(9) gather stack info at any time, including in + * contexts where sleeping is not allowed, we cannot use linker_file_foreach() + * to walk the kernel's list of linker_file structs, because doing so requires + * acquiring an exclusive sx_lock. So instead, we keep a local list of these + * structures, one for each loaded module (and one for the kernel itself that we + * synthesize at init time). New entries are added to the end of this list as + * needed, but entries are never deleted from the list. Instead, they are + * cleared out in-place to mark them as unused. That means the code doing stack + * unwinding can always safely walk the list without locking, because the + * structure of the list never changes in a way that would cause the walker to + * follow a bad link. + * + * A cleared-out entry on the list has module start=UINTPTR_MAX and end=0, so + * start <= addr < end cannot be true for any value of addr being searched for. + * We also don't have to worry about races where we look up the unwind info just + * before a module is unloaded and try to access it concurrently with or just + * after the unloading happens in another thread, because that means the path of + * execution leads through a now-unloaded module, and that's already well into + * undefined-behavior territory. + * + * List entries marked as unused get reused when new modules are loaded. We + * don't worry about holding a few unused bytes of memory in the list after + * unloading a module. + */ +struct module_info { + uintptr_t module_start; /* Start of loaded module */ + uintptr_t module_end; /* End of loaded module */ + uintptr_t exidx_start; /* Start of unwind data */ + uintptr_t exidx_end; /* End of unwind data */ + STAILQ_ENTRY(module_info) + link; /* Link to next entry */ +}; +static STAILQ_HEAD(, module_info) module_list; + +/* + * Hide ugly casting in somewhat-less-ugly macros. + * CADDR - cast a pointer or number to caddr_t. + * UADDR - cast a pointer or number to uintptr_t. + */ +#define CADDR(addr) ((caddr_t)(void*)(uintptr_t)(addr)) +#define UADDR(addr) ((uintptr_t)(addr)) + +/* + * Clear the info in an existing module_info entry on the list. The + * module_start/end addresses are set to values that cannot match any real + * memory address. The entry remains on the list, but will be ignored until it + * is populated with new data. + */ +static void +clear_module_info(struct module_info *info) { + info->module_start = UINTPTR_MAX; + info->module_end = 0; +} - return ((int32_t)(prel31 & 0x7fffffffu) << 1) / 2; +/* + * Populate an existing module_info entry (which is already on the list) with + * the info for a new module. + */ +static void +populate_module_info(struct module_info *info, linker_file_t lf) +{ + + /* + * Careful! The module_start and module_end fields must not be set + * until all other data in the structure is valid. + */ + info->exidx_start = UADDR(lf->exidx_addr); + info->exidx_end = UADDR(lf->exidx_addr) + lf->exidx_size; + info->module_start = UADDR(lf->address); + info->module_end = UADDR(lf->address) + lf->size; } -struct search_context { - uint32_t addr; - caddr_t exidx_start; - caddr_t exidx_end; -}; +/* + * Create a new empty module_info entry and add it to the tail of the list. + */ +static struct module_info * +create_module_info(void) +{ + struct module_info *info; -static int -module_search(linker_file_t lf, void *context) + info = malloc(sizeof(*info), M_CACHE, M_WAITOK | M_ZERO); + clear_module_info(info); + STAILQ_INSERT_TAIL(&module_list, info, link); + return (info); +} + +/* + * Search for a module_info entry on the list whose address range contains the + * given address. If the search address is zero (no module will be loaded at + * zero), then we're looking for an empty item to reuse, which is indicated by + * module_start being set to UINTPTR_MAX in the entry. + */ +static struct module_info * +find_module_info(uintptr_t addr) { - struct search_context *sc = context; - linker_symval_t symval; - c_linker_sym_t sym; + struct module_info *info; - if (lf->address <= (caddr_t)sc->addr && - (lf->address + lf->size) >= (caddr_t)sc->addr) { - if ((LINKER_LOOKUP_SYMBOL(lf, "__exidx_start", &sym) == 0 || - LINKER_LOOKUP_SYMBOL(lf, "exidx_start", &sym) == 0) && - LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) - sc->exidx_start = symval.value; + STAILQ_FOREACH(info, &module_list, link) { + if ((addr >= info->module_start && addr < info->module_end) || + (addr == 0 && info->module_start == UINTPTR_MAX)) + return (info); + } + return (NULL); +} - if ((LINKER_LOOKUP_SYMBOL(lf, "__exidx_end", &sym) == 0 || - LINKER_LOOKUP_SYMBOL(lf, "exidx_end", &sym) == 0) && - LINKER_SYMBOL_VALUES(lf, sym, &symval) == 0) - sc->exidx_end = symval.value; +/* + * Handle the loading of a new module by populating a module_info for it. This + * is called for both preloaded and dynamically loaded modules. + */ +void +unwind_module_loaded(struct linker_file *lf) +{ + struct module_info *info; - if (sc->exidx_start != NULL && sc->exidx_end != NULL) - return (1); - panic("Invalid module %s, no unwind tables\n", lf->filename); + /* + * A module that contains only data may have no unwind info; don't + * create any module info for it. + */ + if (lf->exidx_size == 0) + return; + + /* + * Find an unused entry in the existing list to reuse. If we don't find + * one, create a new one and link it into the list. This is the only + * place the module_list is modified. Adding a new entry to the list + * will not perturb any other threads currently walking the list. This + * function is invoked while kern_linker is still holding its lock + * to prevent its module list from being modified, so we don't have to + * worry about racing other threads doing an insert concurrently. + */ + if ((info = find_module_info(0)) == NULL) { + info = create_module_info(); } + populate_module_info(info, lf); +} + +/* Handle the unloading of a module. */ +void +unwind_module_unloaded(struct linker_file *lf) +{ + struct module_info *info; + + /* + * A module that contains only data may have no unwind info and there + * won't be a list entry for it. + */ + if (lf->exidx_size == 0) + return; + + /* + * When a module is unloaded, we clear the info out of its entry in the + * module list, making that entry available for later reuse. + */ + if ((info = find_module_info(UADDR(lf->address))) == NULL) { + printf("arm unwind: module '%s' not on list at unload time\n", + lf->filename); + return; + } + clear_module_info(info); +} + +/* + * Initialization must run fairly early, as soon as malloc(9) is available, and + * definitely before witness, which uses stack(9). We synthesize a module_info + * entry for the kernel, because unwind_module_loaded() doesn't get called for + * it. Also, it is unlike other modules in that the elf metadata for locating + * the unwind tables might be stripped, so instead we have to use the + * _exidx_start/end symbols created by ldscript.arm. + */ +static int +module_info_init(void *arg __unused) +{ + struct linker_file thekernel; + + STAILQ_INIT(&module_list); + + thekernel.filename = "kernel"; + thekernel.address = CADDR(&_start); + thekernel.size = UADDR(&_end) - UADDR(&_start); + thekernel.exidx_addr = CADDR(&_exidx_start); + thekernel.exidx_size = UADDR(&_exidx_end) - UADDR(&_exidx_start); + populate_module_info(create_module_info(), &thekernel); + return (0); } +SYSINIT(unwind_init, SI_SUB_KMEM, SI_ORDER_ANY, module_info_init, NULL); +/* Expand a 31-bit signed value to a 32-bit signed value */ +static __inline int32_t +expand_prel31(uint32_t prel31) +{ + + return ((int32_t)(prel31 & 0x7fffffffu) << 1) / 2; +} + /* * Perform a binary search of the index table to find the function * with the largest address that doesn't exceed addr. */ static struct unwind_idx * -find_index(uint32_t addr, int search_modules) +find_index(uint32_t addr) { - struct search_context sc; - caddr_t idx_start, idx_end; + struct module_info *info; unsigned int min, mid, max; struct unwind_idx *start; struct unwind_idx *item; int32_t prel31_addr; uint32_t func_addr; - start = (struct unwind_idx *)&exidx_start; - idx_start = (caddr_t)&exidx_start; - idx_end = (caddr_t)&exidx_end; + info = find_module_info(addr); + if (info == NULL) + return NULL; - /* This may acquire a lock */ - if (search_modules) { - bzero(&sc, sizeof(sc)); - sc.addr = addr; - if (linker_file_foreach(module_search, &sc) != 0 && - sc.exidx_start != NULL && sc.exidx_end != NULL) { - start = (struct unwind_idx *)sc.exidx_start; - idx_start = sc.exidx_start; - idx_end = sc.exidx_end; - } - } - min = 0; - max = (idx_end - idx_start) / sizeof(struct unwind_idx); + max = (info->exidx_end - info->exidx_start) / sizeof(struct unwind_idx); + start = (struct unwind_idx *)CADDR(info->exidx_start); while (min != max) { mid = min + (max - min + 1) / 2; @@ -382,11 +537,17 @@ unwind_tab(struct unwind_state *state) return 0; } +/* + * Unwind a single stack frame. + * Return 0 on success or 1 if the stack cannot be unwound any further. + * + * XXX The can_lock argument is no longer germane; a sweep of callers should be + * made to remove it after this new code has proven itself for a while. + */ int -unwind_stack_one(struct unwind_state *state, int can_lock) +unwind_stack_one(struct unwind_state *state, int can_lock __unused) { struct unwind_idx *index; - int finished; /* Reset the mask of updated registers */ state->update_mask = 0; @@ -395,26 +556,20 @@ unwind_stack_one(struct unwind_state *state, int can_l state->start_pc = state->registers[PC]; /* Find the item to run */ - index = find_index(state->start_pc, can_lock); + index = find_index(state->start_pc); + if (index == NULL || index->insn == EXIDX_CANTUNWIND) + return 1; - finished = 0; - if (index->insn != EXIDX_CANTUNWIND) { - if (index->insn & (1U << 31)) { - /* The data is within the instruction */ - state->insn = &index->insn; - } else { - /* A prel31 offset to the unwind table */ - state->insn = (uint32_t *) - ((uintptr_t)&index->insn + - expand_prel31(index->insn)); - } - /* Run the unwind function */ - finished = unwind_tab(state); + if (index->insn & (1U << 31)) { + /* The data is within the instruction */ + state->insn = &index->insn; + } else { + /* A prel31 offset to the unwind table */ + state->insn = (uint32_t *) + ((uintptr_t)&index->insn + + expand_prel31(index->insn)); } - /* This is the top of the stack, finish */ - if (index->insn == EXIDX_CANTUNWIND) - finished = 1; - - return (finished); + /* Run the unwind function, return its finished/not-finished status. */ + return (unwind_tab(state)); } Modified: stable/12/sys/arm/conf/std.armv6 ============================================================================== --- stable/12/sys/arm/conf/std.armv6 Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/conf/std.armv6 Fri Jan 17 15:55:14 2020 (r356833) @@ -34,6 +34,7 @@ options GEOM_LABEL # Provides labelization options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support +options STACK # stack(9) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores Modified: stable/12/sys/arm/conf/std.armv7 ============================================================================== --- stable/12/sys/arm/conf/std.armv7 Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/conf/std.armv7 Fri Jan 17 15:55:14 2020 (r356833) @@ -34,6 +34,7 @@ options GEOM_LABEL # Provides labelization options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI options KTRACE # ktrace(1) support +options STACK # stack(9) support options SYSVSHM # SYSV-style shared memory options SYSVMSG # SYSV-style message queues options SYSVSEM # SYSV-style semaphores Modified: stable/12/sys/arm/include/machdep.h ============================================================================== --- stable/12/sys/arm/include/machdep.h Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/include/machdep.h Fri Jan 17 15:55:14 2020 (r356833) @@ -61,4 +61,24 @@ void arm_add_efi_map_entries(struct efi_map_header *ef struct mem_region *mr, int *mrcnt); #endif +/* + * Symbols created by ldscript.arm which are accessible in the kernel as global + * symbols. They have uint8 type because they mark the byte location where the + * corresponding data starts or ends (in the end case, it's the next byte + * following the data, so the data size is end-start). These are listed below + * in the order they occur within the kernel (i.e., the address of each variable + * should be greater than any of the ones before it). + */ +extern uint8_t _start; /* Kernel entry point in locore.S */ +extern uint8_t _etext; /* text segment end */ +extern uint8_t _extab_start; /* unwind table start */ +extern uint8_t _exidx_start; /* unwind index start */ +extern uint8_t _exidx_end; /* unwind index end */ +extern uint8_t _start_ctors; /* ctors data start */ +extern uint8_t _stop_ctors; /* ctors data end */ +extern uint8_t _edata; /* data segment end */ +extern uint8_t __bss_start; /* bss segment start */ +extern uint8_t _ebss; /* bss segment end */ +extern uint8_t _end; /* End of kernel (text+ctors+unwind+data+bss) */ + #endif /* !_MACHINE_MACHDEP_H_ */ Modified: stable/12/sys/arm/include/stack.h ============================================================================== --- stable/12/sys/arm/include/stack.h Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/arm/include/stack.h Fri Jan 17 15:55:14 2020 (r356833) @@ -55,6 +55,14 @@ struct unwind_state { #define LR 14 #define PC 15 +#ifdef _KERNEL + int unwind_stack_one(struct unwind_state *, int); + +struct linker_file; +void unwind_module_loaded(struct linker_file *); +void unwind_module_unloaded(struct linker_file *); + +#endif #endif /* !_MACHINE_STACK_H_ */ Modified: stable/12/sys/conf/files.arm ============================================================================== --- stable/12/sys/conf/files.arm Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/conf/files.arm Fri Jan 17 15:55:14 2020 (r356833) @@ -85,7 +85,7 @@ arm/arm/trap-v4.c optional !armv7 !armv6 arm/arm/trap-v6.c optional armv7 | armv6 arm/arm/uio_machdep.c standard arm/arm/undefined.c standard -arm/arm/unwind.c optional ddb | kdtrace_hooks +arm/arm/unwind.c optional ddb | kdtrace_hooks | stack arm/arm/vm_machdep.c standard arm/arm/vfp.c standard arm/cloudabi32/cloudabi32_sysvec.c optional compat_cloudabi32 Modified: stable/12/sys/kern/kern_linker.c ============================================================================== --- stable/12/sys/kern/kern_linker.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/kern/kern_linker.c Fri Jan 17 15:55:14 2020 (r356833) @@ -624,6 +624,10 @@ linker_make_file(const char *pathname, linker_class_t lf->ndeps = 0; lf->deps = NULL; lf->loadcnt = ++loadcnt; +#ifdef __arm__ + lf->exidx_addr = 0; + lf->exidx_size = 0; +#endif STAILQ_INIT(&lf->common); TAILQ_INIT(&lf->modules); TAILQ_INSERT_TAIL(&linker_files, lf, link); Modified: stable/12/sys/kern/link_elf.c ============================================================================== --- stable/12/sys/kern/link_elf.c Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/kern/link_elf.c Fri Jan 17 15:55:14 2020 (r356833) @@ -692,6 +692,50 @@ parse_vnet(elf_file_t ef) } #endif +#ifdef __arm__ +/* + * Locate the ARM exception/unwind table info for DDB and stack(9) use by + * searching for the section header that describes it. There may be no unwind + * info, for example in a module containing only data. + */ +static void +link_elf_locate_exidx(linker_file_t lf, Elf_Shdr *shdr, int nhdr) +{ + int i; + + for (i = 0; i < nhdr; i++) { + if (shdr[i].sh_type == SHT_ARM_EXIDX) { + lf->exidx_addr = shdr[i].sh_addr + lf->address; + lf->exidx_size = shdr[i].sh_size; + break; + } + } +} + +/* + * Locate the section headers metadata in a preloaded module, then use it to + * locate the exception/unwind table in the module. The size of the metadata + * block is stored in a uint32 word immediately before the data itself, and a + * comment in preload_search_info() says it is safe to rely on that. + */ +static void +link_elf_locate_exidx_preload(struct linker_file *lf, caddr_t modptr) +{ + uint32_t *modinfo; + Elf_Shdr *shdr; + uint32_t nhdr; + + modinfo = (uint32_t *)preload_search_info(modptr, + MODINFO_METADATA | MODINFOMD_SHDR); + if (modinfo != NULL) { + shdr = (Elf_Shdr *)modinfo; + nhdr = modinfo[-1] / sizeof(Elf_Shdr); + link_elf_locate_exidx(lf, shdr, nhdr); + } +} + +#endif /* __arm__ */ + static int link_elf_link_preload(linker_class_t cls, const char* filename, linker_file_t *result) @@ -747,6 +791,10 @@ link_elf_link_preload(linker_class_t cls, lf->ctors_size = *ctors_sizep; } +#ifdef __arm__ + link_elf_locate_exidx_preload(lf, modptr); +#endif + error = parse_dynamic(ef); if (error == 0) error = parse_dpcpu(ef); @@ -1140,6 +1188,11 @@ link_elf_load_file(linker_class_t cls, const char* fil ef->ddbstrtab = ef->strbase; nosyms: + +#ifdef __arm__ + link_elf_locate_exidx(lf, shdr, hdr->e_shnum); +#endif + error = link_elf_link_common_finish(lf); if (error != 0) goto out; Modified: stable/12/sys/sys/linker.h ============================================================================== --- stable/12/sys/sys/linker.h Fri Jan 17 15:45:39 2020 (r356832) +++ stable/12/sys/sys/linker.h Fri Jan 17 15:55:14 2020 (r356833) @@ -97,6 +97,11 @@ struct linker_file { */ int nenabled; /* number of enabled probes. */ int fbt_nentries; /* number of fbt entries created. */ + +#ifdef __arm__ + caddr_t exidx_addr; /* Unwind data index table start */ + size_t exidx_size; /* Unwind data index table size */ +#endif }; /* From owner-svn-src-all@freebsd.org Fri Jan 17 16:48:21 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DAB5F1F3EE5; Fri, 17 Jan 2020 16:48:21 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zn7T4l6Pz3H5T; Fri, 17 Jan 2020 16:48:21 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9DF1FBE20; Fri, 17 Jan 2020 16:48:21 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HGmLRQ043266; Fri, 17 Jan 2020 16:48:21 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HGmLIO043264; Fri, 17 Jan 2020 16:48:21 GMT (envelope-from br@FreeBSD.org) Message-Id: <202001171648.00HGmLIO043264@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Fri, 17 Jan 2020 16:48:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356834 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: br X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 356834 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 16:48:21 -0000 Author: br Date: Fri Jan 17 16:48:20 2020 New Revision: 356834 URL: https://svnweb.freebsd.org/changeset/base/356834 Log: Use unsigned loads in fubyte, fuword16, generic_bs_r_1, generic_bs_r_2 as these functions should do zero-extend. Discovered by running pci_read_cap(), and by hint from James Clarke. Reviewed by: James Clarke Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D23236 Modified: head/sys/riscv/riscv/bus_space_asm.S head/sys/riscv/riscv/support.S Modified: head/sys/riscv/riscv/bus_space_asm.S ============================================================================== --- head/sys/riscv/riscv/bus_space_asm.S Fri Jan 17 15:55:14 2020 (r356833) +++ head/sys/riscv/riscv/bus_space_asm.S Fri Jan 17 16:48:20 2020 (r356834) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2016 Ruslan Bukin + * Copyright (c) 2016-2020 Ruslan Bukin * All rights reserved. * * Portions of this software were developed by SRI International and the @@ -38,13 +38,13 @@ __FBSDID("$FreeBSD$"); ENTRY(generic_bs_r_1) add a3, a1, a2 - lb a0, 0(a3) + lbu a0, 0(a3) ret END(generic_bs_r_1) ENTRY(generic_bs_r_2) add a3, a1, a2 - lh a0, 0(a3) + lhu a0, 0(a3) ret END(generic_bs_r_2) Modified: head/sys/riscv/riscv/support.S ============================================================================== --- head/sys/riscv/riscv/support.S Fri Jan 17 15:55:14 2020 (r356833) +++ head/sys/riscv/riscv/support.S Fri Jan 17 16:48:20 2020 (r356834) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2015-2018 Ruslan Bukin + * Copyright (c) 2015-2020 Ruslan Bukin * All rights reserved. * * Portions of this software were developed by SRI International and the @@ -102,7 +102,7 @@ ENTRY(fubyte) la a6, fsu_fault /* Load the fault handler */ SET_FAULT_HANDLER(a6, a1) /* And set it */ ENTER_USER_ACCESS(a1) - lb a0, 0(a0) /* Try loading the data */ + lbu a0, 0(a0) /* Try loading the data */ EXIT_USER_ACCESS(a1) SET_FAULT_HANDLER(x0, a1) /* Reset the fault handler */ ret /* Return */ @@ -117,7 +117,7 @@ ENTRY(fuword16) la a6, fsu_fault /* Load the fault handler */ SET_FAULT_HANDLER(a6, a1) /* And set it */ ENTER_USER_ACCESS(a1) - lh a0, 0(a0) /* Try loading the data */ + lhu a0, 0(a0) /* Try loading the data */ EXIT_USER_ACCESS(a1) SET_FAULT_HANDLER(x0, a1) /* Reset the fault handler */ ret /* Return */ From owner-svn-src-all@freebsd.org Fri Jan 17 17:03:26 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E9BD1F4732; Fri, 17 Jan 2020 17:03:26 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47znSt04cZz3JP1; Fri, 17 Jan 2020 17:03:26 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D95CDC307; Fri, 17 Jan 2020 17:03:25 +0000 (UTC) (envelope-from mhorne@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HH3PwJ055182; Fri, 17 Jan 2020 17:03:25 GMT (envelope-from mhorne@FreeBSD.org) Received: (from mhorne@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HH3P52055181; Fri, 17 Jan 2020 17:03:25 GMT (envelope-from mhorne@FreeBSD.org) Message-Id: <202001171703.00HH3P52055181@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mhorne set sender to mhorne@FreeBSD.org using -f From: Mitchell Horne Date: Fri, 17 Jan 2020 17:03:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356835 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: mhorne X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 356835 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 17:03:26 -0000 Author: mhorne Date: Fri Jan 17 17:03:25 2020 New Revision: 356835 URL: https://svnweb.freebsd.org/changeset/base/356835 Log: RISC-V: fix global pointer assignment at boot As part of the RISC-V ABI, the gp register is expected to initialized with the address of __global_pointer$ as early as possible. This allows loads and stores from .sdata to be relaxed based on the value of gp. In locore.S we do this initialization twice, once each for va and mpva. However, in both cases the initialization is preceded by an la instruction, which in theory could be relaxed by the linker. Move the initialization of gp to be slightly earlier (before la cpu_exception_handler), and add an additional gp initialization at the very beginning of _start, before virtual memory is set up. Reported by: jrtc27 Reviewed by: jrtc27 Differential Revision: https://reviews.freebsd.org/D23139 Modified: head/sys/riscv/riscv/locore.S Modified: head/sys/riscv/riscv/locore.S ============================================================================== --- head/sys/riscv/riscv/locore.S Fri Jan 17 16:48:20 2020 (r356834) +++ head/sys/riscv/riscv/locore.S Fri Jan 17 17:03:25 2020 (r356835) @@ -53,6 +53,12 @@ .text .globl _start _start: + /* Set the global pointer */ +.option push +.option norelax + lla gp, __global_pointer$ +.option pop + /* Get the physical address kernel loaded to */ lla t0, virt_map ld t1, 0(t0) @@ -168,6 +174,11 @@ _start: .align 2 va: + /* Set the global pointer again, this time with the virtual address. */ +.option push +.option norelax + lla gp, __global_pointer$ +.option pop /* Setup supervisor trap vector */ la t0, cpu_exception_handler @@ -177,12 +188,6 @@ va: li t0, 0 csrw sscratch, t0 - /* Set the global pointer */ -.option push -.option norelax - la gp, __global_pointer$ -.option pop - /* Initialize stack pointer */ la s3, initstack_end mv sp, s3 @@ -322,6 +327,12 @@ ENTRY(mpentry) .align 2 mpva: + /* Set the global pointer again, this time with the virtual address. */ +.option push +.option norelax + lla gp, __global_pointer$ +.option pop + /* Setup supervisor trap vector */ la t0, cpu_exception_handler csrw stvec, t0 @@ -329,12 +340,6 @@ mpva: /* Ensure sscratch is zero */ li t0, 0 csrw sscratch, t0 - - /* Set the global pointer */ -.option push -.option norelax - la gp, __global_pointer$ -.option pop call init_secondary END(mpentry) From owner-svn-src-all@freebsd.org Fri Jan 17 17:52:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 878FF1F5783; Fri, 17 Jan 2020 17:52:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zpY732Glz3LlG; Fri, 17 Jan 2020 17:52:11 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-7.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id CD628E74F; Fri, 17 Jan 2020 17:52:10 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: svn commit: r356831 - head/sys/powerpc/include To: Leandro Lupori , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <202001171443.00HEhwmr066931@repo.freebsd.org> From: John Baldwin Openpgp: preference=signencrypt Autocrypt: addr=jhb@FreeBSD.org; keydata= mQGiBETQ+XcRBADMFybiq69u+fJRy/0wzqTNS8jFfWaBTs5/OfcV7wWezVmf9sgwn8TW0Dk0 c9MBl0pz+H01dA2ZSGZ5fXlmFIsee1WEzqeJzpiwd/pejPgSzXB9ijbLHZ2/E0jhGBcVy5Yo /Tw5+U/+laeYKu2xb0XPvM0zMNls1ah5OnP9a6Ql6wCgupaoMySb7DXm2LHD1Z9jTsHcAQMD /1jzh2BoHriy/Q2s4KzzjVp/mQO5DSm2z14BvbQRcXU48oAosHA1u3Wrov6LfPY+0U1tG47X 1BGfnQH+rNAaH0livoSBQ0IPI/8WfIW7ub4qV6HYwWKVqkDkqwcpmGNDbz3gfaDht6nsie5Z pcuCcul4M9CW7Md6zzyvktjnbz61BADGDCopfZC4of0Z3Ka0u8Wik6UJOuqShBt1WcFS8ya1 oB4rc4tXfSHyMF63aPUBMxHR5DXeH+EO2edoSwViDMqWk1jTnYza51rbGY+pebLQOVOxAY7k do5Ordl3wklBPMVEPWoZ61SdbcjhHVwaC5zfiskcxj5wwXd2E9qYlBqRg7QeSm9obiBCYWxk d2luIDxqaGJARnJlZUJTRC5vcmc+iGAEExECACAFAkTQ+awCGwMGCwkIBwMCBBUCCAMEFgID AQIeAQIXgAAKCRBy3lIGd+N/BI6RAJ9S97fvbME+3hxzE3JUyUZ6vTewDACdE1stFuSfqMvM jomvZdYxIYyTUpC5Ag0ERND5ghAIAPwsO0B7BL+bz8sLlLoQktGxXwXQfS5cInvL17Dsgnr3 1AKa94j9EnXQyPEj7u0d+LmEe6CGEGDh1OcGFTMVrof2ZzkSy4+FkZwMKJpTiqeaShMh+Goj XlwIMDxyADYvBIg3eN5YdFKaPQpfgSqhT+7El7w+wSZZD8pPQuLAnie5iz9C8iKy4/cMSOrH YUK/tO+Nhw8Jjlw94Ik0T80iEhI2t+XBVjwdfjbq3HrJ0ehqdBwukyeJRYKmbn298KOFQVHO EVbHA4rF/37jzaMadK43FgJ0SAhPPF5l4l89z5oPu0b/+5e2inA3b8J3iGZxywjM+Csq1tqz hltEc7Q+E08AAwUIAL+15XH8bPbjNJdVyg2CMl10JNW2wWg2Q6qdljeaRqeR6zFus7EZTwtX sNzs5bP8y51PSUDJbeiy2RNCNKWFMndM22TZnk3GNG45nQd4OwYK0RZVrikalmJY5Q6m7Z16 4yrZgIXFdKj2t8F+x613/SJW1lIr9/bDp4U9tw0V1g3l2dFtD3p3ZrQ3hpoDtoK70ioIAjjH aIXIAcm3FGZFXy503DOA0KaTWwvOVdYCFLm3zWuSOmrX/GsEc7ovasOWwjPn878qVjbUKWwx Q4QkF4OhUV9zPtf9tDSAZ3x7QSwoKbCoRCZ/xbyTUPyQ1VvNy/mYrBcYlzHodsaqUDjHuW+I SQQYEQIACQUCRND5ggIbDAAKCRBy3lIGd+N/BCO8AJ9j1dWVQWxw/YdTbEyrRKOY8YZNwwCf afMAg8QvmOWnHx3wl8WslCaXaE8= Message-ID: <2abe1c31-f2ac-8299-b3df-5da801b9b76d@FreeBSD.org> Date: Fri, 17 Jan 2020 09:52:09 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <202001171443.00HEhwmr066931@repo.freebsd.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 17:52:11 -0000 On 1/17/20 6:43 AM, Leandro Lupori wrote: > Author: luporl > Date: Fri Jan 17 14:43:58 2020 > New Revision: 356831 > URL: https://svnweb.freebsd.org/changeset/base/356831 > > Log: > [PPC] Fix wrong comment > > pcb_context[20] holds r12-r31 and not r14-r31, as the comment said. Thanks, this was the source of the kgdb bug I think. :) -- John Baldwin From owner-svn-src-all@freebsd.org Fri Jan 17 17:53:14 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6240E1F580C; Fri, 17 Jan 2020 17:53:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zpZL1vlDz3LvB; Fri, 17 Jan 2020 17:53:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3CAFECC6E; Fri, 17 Jan 2020 17:53:14 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HHrEPK084996; Fri, 17 Jan 2020 17:53:14 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HHrEKT084995; Fri, 17 Jan 2020 17:53:14 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001171753.00HHrEKT084995@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 17 Jan 2020 17:53:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356836 - head/share/mk X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/mk X-SVN-Commit-Revision: 356836 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 17:53:14 -0000 Author: emaste Date: Fri Jan 17 17:53:13 2020 New Revision: 356836 URL: https://svnweb.freebsd.org/changeset/base/356836 Log: src.opts.mk: force DMAGENT off under WITHOUT_OPENSSL dma(8) depends on OpenSSL unconditionally. Reported by: Michael Dexter's Build Options Survey run MFC after: 1 weeks Sponsored by: The FreeBSD Foundation Modified: head/share/mk/src.opts.mk Modified: head/share/mk/src.opts.mk ============================================================================== --- head/share/mk/src.opts.mk Fri Jan 17 17:03:25 2020 (r356835) +++ head/share/mk/src.opts.mk Fri Jan 17 17:53:13 2020 (r356836) @@ -497,6 +497,7 @@ MK_NLS_CATALOGS:= no .endif .if ${MK_OPENSSL} == "no" +MK_DMAGENT:= no MK_OPENSSH:= no MK_KERBEROS:= no MK_KERBEROS_SUPPORT:= no From owner-svn-src-all@freebsd.org Fri Jan 17 17:56:31 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D6A6D1F5963; Fri, 17 Jan 2020 17:56:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zpf75JFyz3M6Y; Fri, 17 Jan 2020 17:56:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ACA65CC80; Fri, 17 Jan 2020 17:56:31 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HHuV3C085221; Fri, 17 Jan 2020 17:56:31 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HHuVYf085220; Fri, 17 Jan 2020 17:56:31 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001171756.00HHuVYf085220@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Fri, 17 Jan 2020 17:56:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356837 - head/share/man/man5 X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head/share/man/man5 X-SVN-Commit-Revision: 356837 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 17:56:31 -0000 Author: emaste Date: Fri Jan 17 17:56:31 2020 New Revision: 356837 URL: https://svnweb.freebsd.org/changeset/base/356837 Log: src.conf.5: regen after r356836, DMAGENT dependency on OPENSSL Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Fri Jan 17 17:53:13 2020 (r356836) +++ head/share/man/man5/src.conf.5 Fri Jan 17 17:56:31 2020 (r356837) @@ -1,6 +1,6 @@ .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman. .\" $FreeBSD$ -.Dd January 14, 2020 +.Dd January 17, 2020 .Dt SRC.CONF 5 .Os .Sh NAME @@ -179,11 +179,10 @@ Build all binaries with the flag set to indicate that the run-time loader should perform all relocation processing at process startup rather than on demand. .It Va WITHOUT_BINUTILS -Set to not build or install GNU +Do not build or install GNU .Xr as 1 , -.Xr objdump 1 , -and, on powerpc, -.Xr ld.bfd 1 +.Xr ld.bfd 1 , and +.Xr objdump 1 as part of the normal system build. The resulting system cannot build programs from source. @@ -202,7 +201,7 @@ of the normal system build. This is a default setting on amd64/amd64, arm/armv6, arm/armv7, i386/i386, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, mips/mipselhf, mips/mipshf, mips/mips64elhf, mips/mips64hf, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_BINUTILS_BOOTSTRAP -Set to not build binutils (as, objdump, and on powerpc ld) +Do not build binutils (as, ld.bfd, and objdump) as part of the bootstrap process. .Bf -symbolic The option does not work for build targets unless some alternative @@ -469,6 +468,8 @@ When set, it enforces these options: .Pp .Bl -item -compact .It +.Va WITHOUT_DMAGENT +.It .Va WITHOUT_KERBEROS .It .Va WITHOUT_KERBEROS_SUPPORT @@ -1453,6 +1454,8 @@ Set to not build OpenSSL. When set, it enforces these options: .Pp .Bl -item -compact +.It +.Va WITHOUT_DMAGENT .It .Va WITHOUT_KERBEROS .It From owner-svn-src-all@freebsd.org Fri Jan 17 17:57:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 22E301F59F1; Fri, 17 Jan 2020 17:57:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zpgP0qtRz3MFw; Fri, 17 Jan 2020 17:57:37 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id F0F34CC86; Fri, 17 Jan 2020 17:57:36 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HHvaK0085324; Fri, 17 Jan 2020 17:57:36 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HHvYAe085312; Fri, 17 Jan 2020 17:57:34 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001171757.00HHvYAe085312@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 17 Jan 2020 17:57:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356838 - in stable/12: share/man/man4 sys/conf sys/dev/flash sys/dev/iicbus sys/dev/iicbus/mux sys/modules/i2c sys/modules/i2c/mux X-SVN-Group: stable-12 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: in stable/12: share/man/man4 sys/conf sys/dev/flash sys/dev/iicbus sys/dev/iicbus/mux sys/modules/i2c sys/modules/i2c/mux X-SVN-Commit-Revision: 356838 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 17:57:37 -0000 Author: ian Date: Fri Jan 17 17:57:34 2020 New Revision: 356838 URL: https://svnweb.freebsd.org/changeset/base/356838 Log: MFC r356086, r356278, r356294, r356519, r356521-r356522, r356525-r356526 r356086: Add comments to a couple i2c device lines in NOTES. r356278: Add support for i2c bus mux hardware. An i2c bus can be divided into segments which can be selectively connected and disconnected from the main bus. This is usually done to enable using multiple slave devices having the same address, by isolating the devices onto separate bus segments, only one of which is connected to the main bus at once. There are several types of i2c bus muxes, which break down into two general categories... - Muxes which are themselves i2c slaves. These devices respond to i2c commands on their upstream bus, and based on those commands, connect various downstream buses to the upstream. In newbus terms, they are both a child of an iicbus and the parent of one or more iicbus instances. - Muxes which are not i2c devices themselves. Such devices are part of the i2c bus electrically, but in newbus terms their parent is some other bus. The association with the upstream bus must be established by separate metadata (such as FDT data). In both cases, the mux driver has one or more iicbus child instances representing the downstream buses. The mux driver implements the iicbus_if interface, as if it were an iichb host bridge/i2c controller driver. It services the IO requests sent to it by forwarding them to the iicbus instance representing the upstream bus, after electrically connecting the upstream bus to the downstream bus that hosts the i2c slave device which made the IO request. The net effect is automatic mux switching which is transparent to slaves on the downstream buses. They just do i2c IO they way they normally do, and the bus is electrically connected for the duration of the IO and then idled when it is complete. The existing iicbus_if callback() method is enhanced so that the parameter passed to it can be a struct which contains a device_t for the requesting bus and slave devices. This change is done by adding a flag that indicates the extra values are present, and making the flags field the first field of a new args struct. If the flag is set, the iichb or mux driver can recast the pointer-to-flags into a pointer-to-struct and access the extra fields. Thus abi compatibility with older drivers is retained (but a mux cannot exist on the bus with the older iicbus driver in use.) A new set of core support routines exists in iicbus.c. This code will help implement mux drivers for any type of mux hardware by supplying all the boilerplate code that forwards IO requests upstream. It also has code for parsing metadata and instantiating the child iicbus instances based on it. Two new hardware mux drivers are added. The ltc430x driver supports the LTC4305/4306 mux chips which are controlled via i2c commands. The iic_gpiomux driver supports any mux hardware which is controlled by manipulating the state of one or more gpio pins. Test Plan Tested locally using a variety of mux'd bus configurations involving both ltc4305 and a homebrew gpio-controlled mux. Tested configurations included cascaded muxes (unlikely in the real world, but useful to prove that 'it all just works' in terms of the automatic switching and upstream forwarding of IO requests). r356294: Explicitly include sys/rman.h instead of relying on getting it via some other header. r356519: Ensure any reserved gpio pins get released if an early exit is taken from the attach function. r356521: Init sc->maxbus to -1, not 0. It represents the highest array index that has a non-NULL child bus stored in it, so the "none" value can't be zero since that's a valid array index. Also, when adding all possible buses because there is no specific per-bus config, there's no need to reset sc->maxbus on each loop iteration, it can be set once after the loop. r356522: Change some KASSERT to device_printf + return EINVAL. There's no need to bring the whole kernel down due to a configuration error detected when a module is loaded, it suffices to just not attach the device. r356525: Split the code to find and add iicbus children out to its own function. Move the decision to take an early exit from that function after adding children based on FDT data into the #ifdef FDT block, so that it doesn't offend coverity's notion of how the code should be written. (What's the point of compilers optimizing away dead code if static analyzers won't let you use the feature in conjuction with an #ifdef block?) Reported by: coverity via vangyzen@ r356526: Remove some trailing whitespace; no functional changes. Added: stable/12/share/man/man4/iic_gpiomux.4 - copied unchanged from r356278, head/share/man/man4/iic_gpiomux.4 stable/12/share/man/man4/iicmux.4 - copied unchanged from r356278, head/share/man/man4/iicmux.4 stable/12/share/man/man4/ltc430x.4 - copied unchanged from r356278, head/share/man/man4/ltc430x.4 stable/12/sys/dev/iicbus/mux/ - copied from r356278, head/sys/dev/iicbus/mux/ stable/12/sys/modules/i2c/mux/ - copied from r356278, head/sys/modules/i2c/mux/ Modified: stable/12/share/man/man4/Makefile stable/12/sys/conf/NOTES stable/12/sys/conf/files stable/12/sys/dev/flash/cqspi.c stable/12/sys/dev/iicbus/iiconf.c stable/12/sys/dev/iicbus/iiconf.h stable/12/sys/dev/iicbus/mux/iic_gpiomux.c stable/12/sys/dev/iicbus/mux/iicmux.c stable/12/sys/modules/i2c/Makefile Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/Makefile ============================================================================== --- stable/12/share/man/man4/Makefile Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/share/man/man4/Makefile Fri Jan 17 17:57:34 2020 (r356838) @@ -212,8 +212,10 @@ MAN= aac.4 \ ig4.4 \ igmp.4 \ iic.4 \ + iic_gpiomux.4 \ iicbb.4 \ iicbus.4 \ + iicmux.4 \ iicsmb.4 \ iir.4 \ ${_imcsmb.4} \ @@ -267,6 +269,7 @@ MAN= aac.4 \ lp.4 \ lpbb.4 \ lpt.4 \ + ltc430x.4 \ mac.4 \ mac_biba.4 \ mac_bsdextended.4 \ Copied: stable/12/share/man/man4/iic_gpiomux.4 (from r356278, head/share/man/man4/iic_gpiomux.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/share/man/man4/iic_gpiomux.4 Fri Jan 17 17:57:34 2020 (r356838, copy of r356278, head/share/man/man4/iic_gpiomux.4) @@ -0,0 +1,88 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2019 Ian Lepore +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 1, 2020 +.Dt IIC_GPIOMUX 4 +.Os +.Sh NAME +.Nm iic_gpiomux +.Nd driver for I2C mux hardware controlled via GPIO +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device iic_gpiomux" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +iic_gpiomux_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports any type of I2C bus multiplexer (mux) hardware that +is controlled by manipulating the state of one or more GPIO pins. +It automatically connects an upstream I2C bus to one of the downstream +buses as needed when slave devices on the downstream buses initiate I/O. +More information on the automatic switching behavior is available in +.Xr iicmux 4 . +.Pp +.Sh FDT CONFIGURATION +On an +.Xr fdt 4 +based system, an +.Nm +device node may be defined as a child node of any arbitrary bus +in the FDT data. +The +.Va i2c-parent +property indicates the connection to the upstream I2C bus. +The children of the +.Nm +node are additional i2c buses, which will have their own i2c slave +devices described in their child nodes. +.Pp +The +.Nm +driver conforms to the standard +.Bk -words +.Li i2c/i2c-mux-gpio.txt +.Ek +bindings document. +.Sh SEE ALSO +.Xr iicbus 4 , +.Xr iicmux 4 , +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 13.0 . Copied: stable/12/share/man/man4/iicmux.4 (from r356278, head/share/man/man4/iicmux.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/share/man/man4/iicmux.4 Fri Jan 17 17:57:34 2020 (r356838, copy of r356278, head/share/man/man4/iicmux.4) @@ -0,0 +1,148 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2019 Ian Lepore +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 1, 2020 +.Dt IICMUX 4 +.Os +.Sh NAME +.Nm iicmux +.Nd I2C bus mulitiplexer framework +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device iicmux" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +iicmux_load="YES" +.Ed +.Pp +Note that it is usually not necessary to explicitly load the +driver module, as it will be loaded automatically along with +the driver for the specific mux hardware in use. +.Sh DESCRIPTION +The +.Nm +framework provides support code to help implement drivers for various +I2C bus multiplexer (mux) hardware. +.Nm +is not a standalone driver, +it is a collection of support functions and driver methods which are +used by individual mux hardware drivers. +It will be loaded automatically when needed by a mux hardware driver. +This manual page provides an overview of the I2C mux framework and its +behavior. +.Pp +Generally speaking, an I2C mux is connected to an upstream I2C bus, and to +one or more downstream I2C buses, and it can be commanded to connect +any one of the downstream buses to the upstream bus. +Some hardware may be able to connect multiple downstream buses at the +same time, but that concept is not supported by +.Nm . +.Pp +The +.Nm +framework operates automatically when I2C slave devices initiate I/O. +It does not require (or even allow for) any external control to select +the active downstream bus. +.Pp +When there is no I/O in progress, the mux is said to be in the +.Dq idle +state. +Some mux hardware has the ability to disconnect all downstream buses +when in an idle state. +Other hardware must always have one of the downstream buses connected. +Individual mux hardware drivers typically provide a way to select which +downstream bus (if any) should be connected while in the idle state. +In the absence of such configuration, whichever downstream bus was +last used remains connected to the upstream bus. +.Pp +When an I2C slave device on a bus downstream of a mux initiates I/O, +it first requests exclusive use of the bus by calling +.Fn iicbus_request_bus . +This request is communicated to the bus's parent, which is the +.Nm +framework +mux driver. +Once exclusive bus ownership is obtained, the mux driver +connects the upstream I2C bus to the downstream bus which hosts the +slave device that requested bus ownership. +The mux hardware maintains that upstream-to-downstream connection until +the slave device calls +.Fn iicbus_release_bus . +Before releasing ownership, the mux driver returns the mux hardware to +the idle state. +.Sh FDT CONFIGURATION +On an +.Xr fdt 4 +based system, an I2C mux device node is defined as a child node of its +upstream I2C bus when the mux device is an I2C slave itself. +It may be defined as a child node of any other bus or device in the +system when it is not an I2C slave, in which case the +.Va i2c-parent +property indicates which upstream bus the mux is attached to. +In either case, the children of the mux node are additional I2C buses, which +will have one or more I2C slave devices described in their child nodes. +.Pp +Drivers using the +.Nm +framework conform to the standard +.Bk -words +.Li i2c/i2c-mux.txt +.Ek +bindings document. +.Sh HINTS CONFIGURATION +On a +.Xr device.hints 5 +based system, these values are configurable for +.Nm +framework drivers : +.Bl -tag -width indent +.It Va hint...at +The upstream +.Xr iicbus 4 +the +.Nm +instance is attached to. +.El +.Pp +When configured via hints, the driver automatically adds an iicbus +instance for every downstream bus supported by the chip. +There is currently no way to indicate used versus unused downstream buses. +.Sh SEE ALSO +.Xr iicbus 4 , +.Sh HISTORY +The +.Nm +framework first appeared in +.Fx 13.0 . Copied: stable/12/share/man/man4/ltc430x.4 (from r356278, head/share/man/man4/ltc430x.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/12/share/man/man4/ltc430x.4 Fri Jan 17 17:57:34 2020 (r356838, copy of r356278, head/share/man/man4/ltc430x.4) @@ -0,0 +1,112 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2019 Ian Lepore +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 1, 2020 +.Dt LTC430X 4 +.Os +.Sh NAME +.Nm ltc430x +.Nd driver for LTC4305 and LTC4306 I2C mux chips +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device ltc430x" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +ltc430x_load="YES" +.Ed +.Sh DESCRIPTION +The +.Nm +driver supports the LTC4305 and LTC4306 I2C bus multiplexer (mux) chips. +It automatically connects an upstream I2C bus to one of several downstream +buses as needed when slave devices on the downstream buses initiate I/O. +More information on the automatic switching behavior is available in +.Xr iicmux 4 . +.Sh FDT CONFIGURATION +On an +.Xr fdt 4 +based system, an +.Nm +device node is defined as a child node of its upstream i2c bus. +The children of the +.Nm +node are additional i2c buses, which will have their own i2c slave +devices described in their child nodes. +.Pp +The +.Nm +driver conforms to the standard +.Bk -words +.Li i2c/i2c-mux-ltc4306.txt +.Ek +bindings document, except that the following optional properties +are not currently supported and will be ignored if present: +.Bl -bullet -compact -inset -offset indent +.It +enable-gpios +.It +gpio-controller +.It +#gpio-cells +.It +ltc,downstream-accelerators-enable +.It +ltc,upstream-accelerators-enable +.El +.Sh HINTS CONFIGURATION +On a +.Xr device.hints 5 +based system, these values are configurable for +.Nm : +.Bl -tag -width indent +.It Va hint.ltc430x..at +The upstream +.Xr iicbus 4 +the +.Nm +instance is attached to. +.El +.Pp +When configured via hints, the driver automatically adds an iicbus +instance for every downstream bus supported by the chip. +There is currently no way to indicate used versus unused channels. +.Sh SEE ALSO +.Xr iicbus 4 , +.Xr iicmux 4 , +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 13.0 . Modified: stable/12/sys/conf/NOTES ============================================================================== --- stable/12/sys/conf/NOTES Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/conf/NOTES Fri Jan 17 17:57:34 2020 (r356838) @@ -2515,12 +2515,17 @@ device jedec_dimm # iicbb generic I2C bit-banging code (needed by lpbb, bktr) # device iicbus # Bus support, required for ic/iic/iicsmb below. -device iicbb +device iicbb # bitbang driver; implements i2c on a pair of gpio pins device ic -device iic +device iic # userland access to i2c slave devices via ioctl(8) device iicsmb # smb over i2c bridge device iicoc # OpenCores I2C controller support + +# I2C bus multiplexer (mux) devices +device iicmux # i2c mux core driver +device iic_gpiomux # i2c mux hardware controlled via gpio pins +device ltc430x # LTC4305 and LTC4306 i2c mux chips # I2C peripheral devices # Modified: stable/12/sys/conf/files ============================================================================== --- stable/12/sys/conf/files Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/conf/files Fri Jan 17 17:57:34 2020 (r356838) @@ -1864,6 +1864,10 @@ dev/iicbus/iicsmb.c optional iicsmb \ dev/iicbus/iicoc.c optional iicoc dev/iicbus/isl12xx.c optional isl12xx dev/iicbus/lm75.c optional lm75 +dev/iicbus/mux/iicmux.c optional iicmux +dev/iicbus/mux/iicmux_if.m optional iicmux +dev/iicbus/mux/iic_gpiomux.c optional iic_gpiomux fdt +dev/iicbus/mux/ltc430x.c optional ltc430x dev/iicbus/nxprtc.c optional nxprtc | pcf8563 dev/iicbus/ofw_iicbus.c optional fdt iicbus dev/iicbus/rtc8583.c optional rtc8583 Modified: stable/12/sys/dev/flash/cqspi.c ============================================================================== --- stable/12/sys/dev/flash/cqspi.c Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/dev/flash/cqspi.c Fri Jan 17 17:57:34 2020 (r356838) @@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: stable/12/sys/dev/iicbus/iiconf.c ============================================================================== --- stable/12/sys/dev/iicbus/iiconf.c Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/dev/iicbus/iiconf.c Fri Jan 17 17:57:34 2020 (r356838) @@ -137,6 +137,7 @@ iicbus_poll(struct iicbus_softc *sc, int how) int iicbus_request_bus(device_t bus, device_t dev, int how) { + struct iic_reqbus_data reqdata; struct iicbus_softc *sc = (struct iicbus_softc *)device_get_softc(bus); int error = 0; @@ -175,8 +176,11 @@ iicbus_request_bus(device_t bus, device_t dev, int how */ IICBUS_UNLOCK(sc); /* Ask the underlying layers if the request is ok */ + reqdata.dev = dev; + reqdata.bus = bus; + reqdata.flags = how | IIC_REQBUS_DEV; error = IICBUS_CALLBACK(device_get_parent(bus), - IIC_REQUEST_BUS, (caddr_t)&how); + IIC_REQUEST_BUS, (caddr_t)&reqdata); IICBUS_LOCK(sc); if (error != 0) { @@ -201,6 +205,7 @@ iicbus_request_bus(device_t bus, device_t dev, int how int iicbus_release_bus(device_t bus, device_t dev) { + struct iic_reqbus_data reqdata; struct iicbus_softc *sc = (struct iicbus_softc *)device_get_softc(bus); IICBUS_LOCK(sc); @@ -213,7 +218,11 @@ iicbus_release_bus(device_t bus, device_t dev) if (--sc->owncount == 0) { /* Drop the lock while informing the low-level driver. */ IICBUS_UNLOCK(sc); - IICBUS_CALLBACK(device_get_parent(bus), IIC_RELEASE_BUS, NULL); + reqdata.dev = dev; + reqdata.bus = bus; + reqdata.flags = IIC_REQBUS_DEV; + IICBUS_CALLBACK(device_get_parent(bus), IIC_RELEASE_BUS, + (caddr_t)&reqdata); IICBUS_LOCK(sc); sc->owner = NULL; wakeup_one(sc); Modified: stable/12/sys/dev/iicbus/iiconf.h ============================================================================== --- stable/12/sys/dev/iicbus/iiconf.h Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/dev/iicbus/iiconf.h Fri Jan 17 17:57:34 2020 (r356838) @@ -47,6 +47,25 @@ #define IIC_INTR 0x2 #define IIC_INTRWAIT (IIC_INTR | IIC_WAIT) #define IIC_RECURSIVE 0x4 +#define IIC_REQBUS_DEV 0x8 /* See struct iic_reqbus_data, below. */ + +/* + * The original iicbus->bridge callback api took a pointer to an int containing + * flags. The new api allows a pointer to this struct, with IIC_REQBUS_DEV set + * in the flags to let the implementation know the pointer is actually to this + * struct which has the flags word first, followed by the device_t of the + * requesting bus and device. + * + * Note that the requesting device may not be a i2c slave device which is a + * child of the requested bus -- it may be a mux device which is electrically + * part of the bus hierarchy, but whose driver belongs to some other bus + * hierarchy such as gpio. + */ +struct iic_reqbus_data { + int flags; /* Flags from the set defined above. */ + device_t bus; /* The iicbus being requested. */ + device_t dev; /* The device requesting the bus. */ +}; /* * i2c modes Modified: stable/12/sys/dev/iicbus/mux/iic_gpiomux.c ============================================================================== --- head/sys/dev/iicbus/mux/iic_gpiomux.c Thu Jan 2 17:51:49 2020 (r356278) +++ stable/12/sys/dev/iicbus/mux/iic_gpiomux.c Fri Jan 17 17:57:34 2020 (r356838) @@ -119,6 +119,15 @@ gpiomux_probe(device_t dev) return (rv); } +static void +gpiomux_release_pins(struct gpiomux_softc *sc) +{ + int i; + + for (i = 0; i < sc->numpins; ++i) + gpio_pin_release(sc->pins[i]); +} + static int gpiomux_attach(device_t dev) { @@ -145,13 +154,16 @@ gpiomux_attach(device_t dev) sc->numpins = i; if (sc->numpins == 0) { device_printf(dev, "cannot acquire pins listed in mux-gpios\n"); - return ((err == 0) ? ENXIO : err); + if (err == 0) + err = ENXIO; + goto errexit; } numchannels = 1u << sc->numpins; if (numchannels > IICMUX_MAX_BUSES) { device_printf(dev, "too many mux-gpios pins for max %d buses\n", IICMUX_MAX_BUSES); - return (EINVAL); + err = EINVAL; + goto errexit; } /* @@ -163,13 +175,15 @@ gpiomux_attach(device_t dev) len = OF_getencprop(node, "i2c-parent", &propval, sizeof(propval)); if (len != sizeof(propval)) { device_printf(dev, "cannot obtain i2c-parent property\n"); - return (ENXIO); + err = ENXIO; + goto errexit; } busdev = OF_device_from_xref((phandle_t)propval); if (busdev == NULL) { device_printf(dev, "cannot find device referenced by i2c-parent property\n"); - return (ENXIO); + err = ENXIO; + goto errexit; } device_printf(dev, "upstream bus is %s\n", device_get_nameunit(busdev)); @@ -202,6 +216,11 @@ gpiomux_attach(device_t dev) if ((err = iicmux_attach(dev, busdev, numchannels)) == 0) bus_generic_attach(dev); +errexit: + + if (err != 0) + gpiomux_release_pins(sc); + return (err); } @@ -209,13 +228,12 @@ static int gpiomux_detach(device_t dev) { struct gpiomux_softc *sc = device_get_softc(dev); - int err, i; + int err; if ((err = iicmux_detach(dev)) != 0) return (err); - for (i = 0; i < sc->numpins; ++i) - gpio_pin_release(sc->pins[i]); + gpiomux_release_pins(sc); return (0); } Modified: stable/12/sys/dev/iicbus/mux/iicmux.c ============================================================================== --- head/sys/dev/iicbus/mux/iicmux.c Thu Jan 2 17:51:49 2020 (r356278) +++ stable/12/sys/dev/iicbus/mux/iicmux.c Fri Jan 17 17:57:34 2020 (r356838) @@ -153,7 +153,7 @@ iicmux_intr(device_t dev, int event, char *buf) /* XXX iicbus_intr() in iiconf.c should return status. */ iicbus_intr(sc->busdev, event, buf); - return (0); + return (0); } static int @@ -213,7 +213,7 @@ iicmux_write(device_t dev, const char *buf, int len, i } /*------------------------------------------------------------------------------ - * iicmux helper functions, called by hardware-specific drivers. + * iicmux helper functions, called by hardware-specific drivers. * All these functions return a standard errno value. *----------------------------------------------------------------------------*/ @@ -222,10 +222,16 @@ iicmux_add_child(device_t dev, device_t child, int bus { struct iicmux_softc *sc = device_get_softc(dev); - KASSERT(busidx < sc->numbuses, - ("iicmux_add_child: bus idx %d too big", busidx)); - KASSERT(sc->childdevs[busidx] == NULL, - ("iicmux_add_child: bus idx %d already added", busidx)); + if (busidx >= sc->numbuses) { + device_printf(dev, + "iicmux_add_child: bus idx %d too big", busidx); + return (EINVAL); + } + if (sc->childdevs[busidx] != NULL) { + device_printf(dev, "iicmux_add_child: bus idx %d already added", + busidx); + return (EINVAL); + } sc->childdevs[busidx] = child; if (sc->maxbus < busidx) @@ -234,32 +240,10 @@ iicmux_add_child(device_t dev, device_t child, int bus return (0); } -int -iicmux_attach(device_t dev, device_t busdev, int numbuses) +static int +iicmux_attach_children(struct iicmux_softc *sc) { - struct iicmux_softc *sc = device_get_softc(dev); - int i, numadded; - - /* - * Init the softc... - */ - KASSERT(numbuses <= IICMUX_MAX_BUSES, - ("iicmux_attach: numbuses %d exceeds max %d\n", - numbuses, IICMUX_MAX_BUSES)); - - sc->dev = dev; - sc->busdev = busdev; - sc->numbuses = numbuses; - - SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, - "debugmux", CTLFLAG_RWTUN, &sc->debugmux, 0, "debug mux operations"); - - /* - * Add children... - */ - numadded = 0; - + int i; #ifdef FDT phandle_t child, node, parent; pcell_t idx; @@ -286,12 +270,12 @@ iicmux_attach(device_t dev, device_t busdev, int numbu */ for (child = OF_child(parent); child != 0; child = OF_peer(child)) { if (OF_getencprop(child, "reg", &idx, sizeof(idx)) == -1) { - device_printf(dev, + device_printf(sc->dev, "child bus missing required 'reg' property\n"); continue; } if (idx >= sc->numbuses) { - device_printf(dev, + device_printf(sc->dev, "child bus 'reg' property %d exceeds the number " "of buses supported by the device (%d)\n", idx, sc->numbuses); @@ -301,22 +285,48 @@ iicmux_attach(device_t dev, device_t busdev, int numbu sc->childnodes[idx] = child; if (sc->maxbus < idx) sc->maxbus = idx; - ++numadded; } + + /* If we configured anything using FDT data, we're done. */ + if (sc->maxbus >= 0) + return (0); #endif /* FDT */ /* - * If we configured anything using FDT data, we're done. Otherwise add - * an iicbus child for every downstream bus supported by the mux chip. + * If we make it to here, we didn't add any children based on FDT data. + * Add an iicbus child for every downstream bus supported by the mux. */ - if (numadded > 0) - return (0); - for (i = 0; i < sc->numbuses; ++i) { sc->childdevs[i] = device_add_child(sc->dev, "iicbus", -1); - if (sc->maxbus < i) - sc->maxbus = i; + sc->maxbus = i; } + + return (0); +} + +int +iicmux_attach(device_t dev, device_t busdev, int numbuses) +{ + struct iicmux_softc *sc = device_get_softc(dev); + int err; + + if (numbuses >= IICMUX_MAX_BUSES) { + device_printf(dev, "iicmux_attach: numbuses %d > max %d\n", + numbuses, IICMUX_MAX_BUSES); + return (EINVAL); + } + + sc->dev = dev; + sc->busdev = busdev; + sc->maxbus = -1; + sc->numbuses = numbuses; + + if ((err = iicmux_attach_children(sc)) != 0) + return (err); + + SYSCTL_ADD_UINT(device_get_sysctl_ctx(sc->dev), + SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)), OID_AUTO, + "debugmux", CTLFLAG_RWTUN, &sc->debugmux, 0, "debug mux operations"); return (0); } Modified: stable/12/sys/modules/i2c/Makefile ============================================================================== --- stable/12/sys/modules/i2c/Makefile Fri Jan 17 17:56:31 2020 (r356837) +++ stable/12/sys/modules/i2c/Makefile Fri Jan 17 17:57:34 2020 (r356838) @@ -17,6 +17,7 @@ SUBDIR = \ isl \ isl12xx \ jedec_dimm \ + mux \ nxprtc \ rtc8583 \ s35390a \ From owner-svn-src-all@freebsd.org Fri Jan 17 18:55:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 6646E1F7672; Fri, 17 Jan 2020 18:55:35 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zqyH22Jvz3wbH; Fri, 17 Jan 2020 18:55:35 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (tensor.andric.com [87.251.56.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "tensor.andric.com", Issuer "Let's Encrypt Authority X3" (verified OK)) (Authenticated sender: dim) by smtp.freebsd.org (Postfix) with ESMTPSA id 26969EE6A; Fri, 17 Jan 2020 18:55:35 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from [IPv6:2001:470:7a58::8990:9cf3:602f:2cad] (unknown [IPv6:2001:470:7a58:0:8990:9cf3:602f:2cad]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 513661D65C; Fri, 17 Jan 2020 19:55:33 +0100 (CET) From: Dimitry Andric Message-Id: <75C1E5B4-41B3-4C97-9794-1D684884A0E5@FreeBSD.org> Content-Type: multipart/signed; boundary="Apple-Mail=_8AC41FC6-9A1F-4A96-9FB1-4B946D1EB823"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Subject: Re: svn commit: r356832 - head/lib/libc/gen Date: Fri, 17 Jan 2020 19:55:18 +0100 In-Reply-To: <202001171545.00HFjdMw003501@repo.freebsd.org> Cc: src-committers , svn-src-all , svn-src-head@freebsd.org To: Mateusz Guzik References: <202001171545.00HFjdMw003501@repo.freebsd.org> X-Mailer: Apple Mail (2.3445.104.11) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 18:55:35 -0000 --Apple-Mail=_8AC41FC6-9A1F-4A96-9FB1-4B946D1EB823 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 17 Jan 2020, at 16:45, Mateusz Guzik wrote: > > Author: mjg > Date: Fri Jan 17 15:45:39 2020 > New Revision: 356832 > URL: https://svnweb.freebsd.org/changeset/base/356832 > > Log: > libc: fix build after r356830 > > Apparently building with 'cd lib/libc; make all install' is not the same > as buildworld. Definitely not, indeed. Such a plain make will use your system's headers for inclusion, not those in /usr/src. Only use this when you are certain those headers are up-to-date (or up-to-date enough ;). -Dimitry --Apple-Mail=_8AC41FC6-9A1F-4A96-9FB1-4B946D1EB823 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.2 iF0EARECAB0WIQR6tGLSzjX8bUI5T82wXqMKLiCWowUCXiIDFgAKCRCwXqMKLiCW o6FQAJ9QfiyUJSycS04ZQne1yGHulrxHvQCg8+nCN9fv9qnvRN54nPMwvdkPxVY= =TBKG -----END PGP SIGNATURE----- --Apple-Mail=_8AC41FC6-9A1F-4A96-9FB1-4B946D1EB823-- From owner-svn-src-all@freebsd.org Fri Jan 17 19:02:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B0E661F79D4; Fri, 17 Jan 2020 19:02:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zr5h1dL1z3xMH; Fri, 17 Jan 2020 19:02:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 334D4D947; Fri, 17 Jan 2020 19:02:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HJ20Gr027302; Fri, 17 Jan 2020 19:02:00 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HJ1xeg027296; Fri, 17 Jan 2020 19:01:59 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001171901.00HJ1xeg027296@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 17 Jan 2020 19:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356839 - in head/sys: arm64/arm64 riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in head/sys: arm64/arm64 riscv/riscv X-SVN-Commit-Revision: 356839 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 19:02:00 -0000 Author: jhb Date: Fri Jan 17 19:01:59 2020 New Revision: 356839 URL: https://svnweb.freebsd.org/changeset/base/356839 Log: Save and restore floating point registers in get/set_mcontext(). arm64 and riscv were only saving and restoring floating point registers for sendsig() and sys_sigreturn(), but not for getcontext(), setcontext(), and swapcontext(). While here, remove an always-false check for uap being NULL from sys_sigreturn(). Reviewed by: br, mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23218 Modified: head/sys/arm64/arm64/machdep.c head/sys/riscv/riscv/machdep.c Modified: head/sys/arm64/arm64/machdep.c ============================================================================== --- head/sys/arm64/arm64/machdep.c Fri Jan 17 17:57:34 2020 (r356838) +++ head/sys/arm64/arm64/machdep.c Fri Jan 17 19:01:59 2020 (r356839) @@ -98,6 +98,8 @@ __FBSDID("$FreeBSD$"); #include #endif +static void get_fpcontext(struct thread *td, mcontext_t *mcp); +static void set_fpcontext(struct thread *td, mcontext_t *mcp); enum arm64_bus arm64_bus_method = ARM64_BUS_NONE; @@ -473,6 +475,7 @@ get_mcontext(struct thread *td, mcontext_t *mcp, int c mcp->mc_gpregs.gp_sp = tf->tf_sp; mcp->mc_gpregs.gp_lr = tf->tf_lr; mcp->mc_gpregs.gp_elr = tf->tf_elr; + get_fpcontext(td, mcp); return (0); } @@ -495,6 +498,7 @@ set_mcontext(struct thread *td, mcontext_t *mcp) tf->tf_lr = mcp->mc_gpregs.gp_lr; tf->tf_elr = mcp->mc_gpregs.gp_elr; tf->tf_spsr = mcp->mc_gpregs.gp_spsr; + set_fpcontext(td, mcp); return (0); } @@ -667,15 +671,12 @@ sys_sigreturn(struct thread *td, struct sigreturn_args ucontext_t uc; int error; - if (uap == NULL) - return (EFAULT); if (copyin(uap->sigcntxp, &uc, sizeof(uc))) return (EFAULT); error = set_mcontext(td, &uc.uc_mcontext); if (error != 0) return (error); - set_fpcontext(td, &uc.uc_mcontext); /* Restore signal mask. */ kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); @@ -747,7 +748,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask /* Fill in the frame to copy out */ bzero(&frame, sizeof(frame)); get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); - get_fpcontext(td, &frame.sf_uc.uc_mcontext); frame.sf_si = ksi->ksi_info; frame.sf_uc.uc_sigmask = *mask; frame.sf_uc.uc_stack = td->td_sigstk; Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Fri Jan 17 17:57:34 2020 (r356838) +++ head/sys/riscv/riscv/machdep.c Fri Jan 17 19:01:59 2020 (r356839) @@ -99,6 +99,9 @@ __FBSDID("$FreeBSD$"); #include #endif +static void get_fpcontext(struct thread *td, mcontext_t *mcp); +static void set_fpcontext(struct thread *td, mcontext_t *mcp); + struct pcpu __pcpu[MAXCPU]; static struct trapframe proc0_tf; @@ -352,6 +355,7 @@ get_mcontext(struct thread *td, mcontext_t *mcp, int c mcp->mc_gpregs.gp_tp = tf->tf_tp; mcp->mc_gpregs.gp_sepc = tf->tf_sepc; mcp->mc_gpregs.gp_sstatus = tf->tf_sstatus; + get_fpcontext(td, mcp); return (0); } @@ -372,6 +376,7 @@ set_mcontext(struct thread *td, mcontext_t *mcp) tf->tf_gp = mcp->mc_gpregs.gp_gp; tf->tf_sepc = mcp->mc_gpregs.gp_sepc; tf->tf_sstatus = mcp->mc_gpregs.gp_sstatus; + set_fpcontext(td, mcp); return (0); } @@ -522,8 +527,6 @@ sys_sigreturn(struct thread *td, struct sigreturn_args ucontext_t uc; int error; - if (uap == NULL) - return (EFAULT); if (copyin(uap->sigcntxp, &uc, sizeof(uc))) return (EFAULT); @@ -540,8 +543,6 @@ sys_sigreturn(struct thread *td, struct sigreturn_args if (error != 0) return (error); - set_fpcontext(td, &uc.uc_mcontext); - /* Restore signal mask. */ kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); @@ -612,7 +613,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask /* Fill in the frame to copy out */ bzero(&frame, sizeof(frame)); get_mcontext(td, &frame.sf_uc.uc_mcontext, 0); - get_fpcontext(td, &frame.sf_uc.uc_mcontext); frame.sf_si = ksi->ksi_info; frame.sf_uc.uc_sigmask = *mask; frame.sf_uc.uc_stack = td->td_sigstk; From owner-svn-src-all@freebsd.org Fri Jan 17 19:13:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 4006D1F8170; Fri, 17 Jan 2020 19:13:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zrML0ssGz3yNC; Fri, 17 Jan 2020 19:13:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 190D1DB66; Fri, 17 Jan 2020 19:13:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HJDn3p034664; Fri, 17 Jan 2020 19:13:49 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HJDnp3034663; Fri, 17 Jan 2020 19:13:49 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001171913.00HJDnp3034663@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 17 Jan 2020 19:13:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356840 - head/sys/riscv/riscv X-SVN-Group: head X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: head/sys/riscv/riscv X-SVN-Commit-Revision: 356840 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 19:13:50 -0000 Author: jhb Date: Fri Jan 17 19:13:49 2020 New Revision: 356840 URL: https://svnweb.freebsd.org/changeset/base/356840 Log: Check for invalid sstatus values in set_mcontext(). Previously, this check was only in sys_sigreturn() which meant that user applications could write invalid values to the register via setcontext() or swapcontext(). Reviewed by: mhorne Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D23219 Modified: head/sys/riscv/riscv/machdep.c Modified: head/sys/riscv/riscv/machdep.c ============================================================================== --- head/sys/riscv/riscv/machdep.c Fri Jan 17 19:01:59 2020 (r356839) +++ head/sys/riscv/riscv/machdep.c Fri Jan 17 19:13:49 2020 (r356840) @@ -367,6 +367,14 @@ set_mcontext(struct thread *td, mcontext_t *mcp) tf = td->td_frame; + /* + * Make sure the processor mode has not been tampered with and + * interrupts have not been disabled. + * Supervisor interrupts in user mode are always enabled. + */ + if ((mcp->mc_gpregs.gp_sstatus & SSTATUS_SPP) != 0) + return (EINVAL); + memcpy(tf->tf_t, mcp->mc_gpregs.gp_t, sizeof(tf->tf_t)); memcpy(tf->tf_s, mcp->mc_gpregs.gp_s, sizeof(tf->tf_s)); memcpy(tf->tf_a, mcp->mc_gpregs.gp_a, sizeof(tf->tf_a)); @@ -523,21 +531,11 @@ struct sigreturn_args { int sys_sigreturn(struct thread *td, struct sigreturn_args *uap) { - uint64_t sstatus; ucontext_t uc; int error; if (copyin(uap->sigcntxp, &uc, sizeof(uc))) return (EFAULT); - - /* - * Make sure the processor mode has not been tampered with and - * interrupts have not been disabled. - * Supervisor interrupts in user mode are always enabled. - */ - sstatus = uc.uc_mcontext.mc_gpregs.gp_sstatus; - if ((sstatus & SSTATUS_SPP) != 0) - return (EINVAL); error = set_mcontext(td, &uc.uc_mcontext); if (error != 0) From owner-svn-src-all@freebsd.org Fri Jan 17 19:46:45 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C50201F926D; Fri, 17 Jan 2020 19:46:45 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zs5K4qlgz41Xw; Fri, 17 Jan 2020 19:46:45 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by mail-wr1-x444.google.com with SMTP id d16so23856714wre.10; Fri, 17 Jan 2020 11:46:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=yYg0w4BEfH/3WciYd3azPgYk0ltBP+dlCEKsTtRTBjQ=; b=WMHHdRPECO+7vrVoKvWfikPdfRDN85at4yZhGZUHNTNVUUiNsEwTiHhlzBP4Qku9uK L0DK2j+Pa5L/NHEPs2eO5k+swgU4/PnxwwCF/QC1A82kAp5XJ26/JbGn5p/vRGOIlbce 1qrUSo4LlID6pyjH3D4Zp7dClPj8ve8nzntAkRKFZEoHsaJNKZw9+encXZ4VIKi3pU/h VvbBUKUD9aJzD8tUKv+K/pFkpY1ezlj5IBW8uBstTT48b4Rb0tnX1lXYjh8WYIpg958f zLwJ2RRz0mBQ8LIoC+n8hymBHHWZOb05R8E+0OpJpVYMxYAev95dMn4EITUbiC+xQPj+ M1CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=yYg0w4BEfH/3WciYd3azPgYk0ltBP+dlCEKsTtRTBjQ=; b=i5mNSql3AWrTYu0cdiOA5Cz+mEeWmyH223Oz+Z1HKkKYgeBc9XreoyS9IfaA5DkExg K9hOTZWzTVcQ9fi1QMZXg8rixGJ3Rovc7kzbPvQfZzACZn6zF6lEz7mhMHxQfPttzOmo wsXbKMX0rJaiXJ2AfP4uJyNNBYN/0A8EZYrCusvyd+Qxs/v4V9D2BSyqcHABL3hG5cpC r4ALKwgIn1E+tpFYW8CcEEYzeJoU6Zw9gJfj+EM89wo88EmviE9SJsY7NVbAem9m+Qfh 0XAbzTzwsOCXyL6qoq6W0Hve5zWhZXklhzYHtwPXdrE1nM69OkbIcrEc1WUQ0Yr4C8XK tfrA== X-Gm-Message-State: APjAAAWwcntLfGqMNbxs8+kLpyz+61ujihmnu4/rL0hYZv6Cn4oy+crP fQcktbjgAuRRn/et894DXeETxyBwT7+b3wEzxdw1aw== X-Google-Smtp-Source: APXvYqycg3aDYVZB5SgWLVkFJ6009Mx7CsscOahI/JG8OYP9IQMGjhCcdiSOLum/dhG2zdFdIp/mP3p+fpgPMOzqIZ4= X-Received: by 2002:a5d:4651:: with SMTP id j17mr4802594wrs.237.1579290402906; Fri, 17 Jan 2020 11:46:42 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a5d:6b02:0:0:0:0:0 with HTTP; Fri, 17 Jan 2020 11:46:42 -0800 (PST) In-Reply-To: <75C1E5B4-41B3-4C97-9794-1D684884A0E5@FreeBSD.org> References: <202001171545.00HFjdMw003501@repo.freebsd.org> <75C1E5B4-41B3-4C97-9794-1D684884A0E5@FreeBSD.org> From: Mateusz Guzik Date: Fri, 17 Jan 2020 20:46:42 +0100 Message-ID: Subject: Re: svn commit: r356832 - head/lib/libc/gen To: Dimitry Andric Cc: src-committers , svn-src-all , svn-src-head@freebsd.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 47zs5K4qlgz41Xw X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.00 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 19:46:45 -0000 On 1/17/20, Dimitry Andric wrote: > On 17 Jan 2020, at 16:45, Mateusz Guzik wrote: >> >> Author: mjg >> Date: Fri Jan 17 15:45:39 2020 >> New Revision: 356832 >> URL: https://svnweb.freebsd.org/changeset/base/356832 >> >> Log: >> libc: fix build after r356830 >> >> Apparently building with 'cd lib/libc; make all install' is not the same >> as buildworld. > > Definitely not, indeed. Such a plain make will use your system's > headers for inclusion, not those in /usr/src. Only use this when you > are certain those headers are up-to-date (or up-to-date enough ;). > That's not the difference I meant. Building like above works fine with: unionstack = _fcntl(fd, F_ISUNIONSTACK); It's only buildworld during which this fails with: /usr/src/lib/libc/gen/opendir.c:282:40: error: too few arguments provided to function-like macro invocation unionstack = _fcntl(fd, F_ISUNIONSTACK); hence the patch. -- Mateusz Guzik From owner-svn-src-all@freebsd.org Fri Jan 17 20:10:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1ABFC1F9872 for ; Fri, 17 Jan 2020 20:10:09 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zscJ0Hq7z42Rp for ; Fri, 17 Jan 2020 20:10:07 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x72d.google.com with SMTP id a203so23961944qkc.3 for ; Fri, 17 Jan 2020 12:10:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=d82XvaTyQsBc+1cbp3MOW0blvlycJ7OD861h9ja+5xc=; b=VgXtPmJKpA4UWMwGA10wla2Wdyd1e2fafTBTS2VGV9M4vNVyU5cuwmVfgCckqC/heT aEA8BZcqq2jnIiInlginMus+nmgOvIaQmn7tEcfdM5M5dZVOF9YDwUBZre3oLaDYgrUB 99kjbdQm5z43VTg6TCb8ou6RG2Cc9Z7nd1Co3YyuJlu0NdoDRaFSP51I+AJXuyX3DRtz ry1Cs3C3MCdbBKcCoOrNlPqAJz7t63B0ra5Cq+bgrmMtBb+f0DoX17AfSN7HXldlNqUv JWLAXsyDHYuLF7J3Yq96owvhgDeRvywMXTVUY91LjM0qR67s3vambHF3AHVfNzF/L6Gx CCOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=d82XvaTyQsBc+1cbp3MOW0blvlycJ7OD861h9ja+5xc=; b=BP5eyEfXsvdAhCXeK1vGkyKokFMDeDrtTj4UMvZ+eVf547vm0WAGTaDUvjq6WN/rrQ xDXgen1CDdwWcJTVFhVsJeDJTwAjIwlQ6/ThDRRHKkCQyyaLagYpmbCDJDQrUikrDJfq 3uR+GC7yElNlJUBd/DZAIK/KKH0BUqvQixKUBUgiMB9txLS9QBSS4mZQMUMfMmzOg776 gEFQbOewDvYrN1b+XSdabVDsOViAXgMiB8wDacJfoNyAPAKYR1/lL/tTiPG+Q74oqFic xurG2ZksD4zwAlxBTg4ISYhuH998fYqleKQdoaE9R3/ZYKH56XhZs+9f6xeN3LnXq5GV JkSw== X-Gm-Message-State: APjAAAW0doWEHNhWddNCphMjOV12ZSmot/cp3KIfcLfz2Dl4dWJ2Cvxb IZTlnA7YaMvACSSiavtIZyAazn2VShog6nK5JKye6w== X-Google-Smtp-Source: APXvYqzVLpHltKJHXMWcD0FmgRLdoeERSF70zTcBQ2Fo8aqjIxuyFoglE+uzKMcM1HOo3C+qHNEj1Yf6dbgysv5a5cA= X-Received: by 2002:a05:620a:795:: with SMTP id 21mr40897967qka.60.1579291807055; Fri, 17 Jan 2020 12:10:07 -0800 (PST) MIME-Version: 1.0 References: <202001171545.00HFjdMw003501@repo.freebsd.org> <75C1E5B4-41B3-4C97-9794-1D684884A0E5@FreeBSD.org> In-Reply-To: <75C1E5B4-41B3-4C97-9794-1D684884A0E5@FreeBSD.org> From: Warner Losh Date: Fri, 17 Jan 2020 13:09:55 -0700 Message-ID: Subject: Re: svn commit: r356832 - head/lib/libc/gen To: Dimitry Andric Cc: Mateusz Guzik , src-committers , svn-src-all , svn-src-head X-Rspamd-Queue-Id: 47zscJ0Hq7z42Rp X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=VgXtPmJK; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::72d) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-3.65 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[svn-src-all@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; URI_COUNT_ODD(1.00)[3]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[d.2.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.65)[ip: (-9.29), ipnet: 2607:f8b0::/32(-2.09), asn: 15169(-1.83), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:10:09 -0000 On Fri, Jan 17, 2020 at 11:55 AM Dimitry Andric wrote: > On 17 Jan 2020, at 16:45, Mateusz Guzik wrote: > > > > Author: mjg > > Date: Fri Jan 17 15:45:39 2020 > > New Revision: 356832 > > URL: https://svnweb.freebsd.org/changeset/base/356832 > > > > Log: > > libc: fix build after r356830 > > > > Apparently building with 'cd lib/libc; make all install' is not the same > > as buildworld. > > Definitely not, indeed. Such a plain make will use your system's > headers for inclusion, not those in /usr/src. Only use this when you > are certain those headers are up-to-date (or up-to-date enough ;). > Generally, one can do % cd lib/libc; make buildenv $ make all install to get this functionality. Warner From owner-svn-src-all@freebsd.org Fri Jan 17 20:27:25 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8E7351F9D85; Fri, 17 Jan 2020 20:27:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zt0F3DSlz43GB; Fri, 17 Jan 2020 20:27:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 652A6E8CC; Fri, 17 Jan 2020 20:27:25 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HKRP6F076949; Fri, 17 Jan 2020 20:27:25 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HKRP6x076948; Fri, 17 Jan 2020 20:27:25 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172027.00HKRP6x076948@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 20:27:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356841 - in vendor/llvm-project/master: clang/lib/Tooling/Transformer clang/tools/clang-offload-wrapper compiler-rt/lib/gwp_asan/scripts compiler-rt/tools libcxx/src lld lld/COFF lld/C... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/master: clang/lib/Tooling/Transformer clang/tools/clang-offload-wrapper compiler-rt/lib/gwp_asan/scripts compiler-rt/tools libcxx/src lld lld/COFF lld/Common lld/ELF lld/docs ll... X-SVN-Commit-Revision: 356841 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:27:25 -0000 Author: dim Date: Fri Jan 17 20:27:24 2020 New Revision: 356841 URL: https://svnweb.freebsd.org/changeset/base/356841 Log: Remove files from vendor/llvm-project/master which are unused, and never merged to contrib. Deleted: vendor/llvm-project/master/clang/lib/Tooling/Transformer/CMakeLists.txt vendor/llvm-project/master/clang/tools/clang-offload-wrapper/ vendor/llvm-project/master/compiler-rt/lib/gwp_asan/scripts/ vendor/llvm-project/master/compiler-rt/tools/ vendor/llvm-project/master/libcxx/src/CMakeLists.txt vendor/llvm-project/master/lld/CMakeLists.txt vendor/llvm-project/master/lld/COFF/CMakeLists.txt vendor/llvm-project/master/lld/Common/CMakeLists.txt vendor/llvm-project/master/lld/ELF/CMakeLists.txt vendor/llvm-project/master/lld/docs/CMakeLists.txt vendor/llvm-project/master/lld/lib/CMakeLists.txt vendor/llvm-project/master/lld/lib/Core/CMakeLists.txt vendor/llvm-project/master/lld/lib/Driver/CMakeLists.txt vendor/llvm-project/master/lld/lib/ReaderWriter/CMakeLists.txt vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/CMakeLists.txt vendor/llvm-project/master/lld/lib/ReaderWriter/YAML/CMakeLists.txt vendor/llvm-project/master/lld/tools/lld/CMakeLists.txt vendor/llvm-project/master/lldb/source/Plugins/ABI/SysV-arc/CMakeLists.txt vendor/llvm-project/master/llvm/tools/llvm-ifs/ vendor/llvm-project/master/llvm/tools/llvm-reduce/ vendor/llvm-project/master/llvm/tools/vfabi-demangle-fuzzer/ vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/CMakeLists.txt vendor/llvm-project/master/llvm/utils/add_argument_names.py vendor/llvm-project/master/llvm/utils/llvm-locstats/ From owner-svn-src-all@freebsd.org Fri Jan 17 20:30:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E659E1F9E8F; Fri, 17 Jan 2020 20:30:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zt3N51Pbz43Ww; Fri, 17 Jan 2020 20:30:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 98C92E8D2; Fri, 17 Jan 2020 20:30:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HKU846077367; Fri, 17 Jan 2020 20:30:08 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HKU82K077366; Fri, 17 Jan 2020 20:30:08 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172030.00HKU82K077366@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 20:30:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356842 - in vendor/llvm-project/release-9.x: libcxx/src lld lld/COFF lld/Common lld/ELF lld/docs lld/lib lld/lib/Core lld/lib/Driver lld/lib/ReaderWriter lld/lib/ReaderWriter/MachO lld... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-9.x: libcxx/src lld lld/COFF lld/Common lld/ELF lld/docs lld/lib lld/lib/Core lld/lib/Driver lld/lib/ReaderWriter lld/lib/ReaderWriter/MachO lld/lib/ReaderWriter/YAML ll... X-SVN-Commit-Revision: 356842 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:30:09 -0000 Author: dim Date: Fri Jan 17 20:30:08 2020 New Revision: 356842 URL: https://svnweb.freebsd.org/changeset/base/356842 Log: Remove files from vendor/llvm-project/release-9.x which are unused, and never merged to contrib. Deleted: vendor/llvm-project/release-9.x/libcxx/src/CMakeLists.txt vendor/llvm-project/release-9.x/lld/CMakeLists.txt vendor/llvm-project/release-9.x/lld/COFF/CMakeLists.txt vendor/llvm-project/release-9.x/lld/Common/CMakeLists.txt vendor/llvm-project/release-9.x/lld/ELF/CMakeLists.txt vendor/llvm-project/release-9.x/lld/docs/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/Core/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/Driver/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/ReaderWriter/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/ReaderWriter/MachO/CMakeLists.txt vendor/llvm-project/release-9.x/lld/lib/ReaderWriter/YAML/CMakeLists.txt vendor/llvm-project/release-9.x/lld/tools/lld/CMakeLists.txt From owner-svn-src-all@freebsd.org Fri Jan 17 20:45:09 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 1CED41FA4EE; Fri, 17 Jan 2020 20:45:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ztNj0RK7z44W2; Fri, 17 Jan 2020 20:45:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0794AEC8C; Fri, 17 Jan 2020 20:45:09 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HKj9l5089431; Fri, 17 Jan 2020 20:45:09 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HKj5Xv089411; Fri, 17 Jan 2020 20:45:05 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172045.00HKj5Xv089411@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 20:45:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356843 - in vendor/llvm-project/master: clang/include/clang clang/include/clang-c clang/include/clang/AST clang/include/clang/ASTMatchers clang/include/clang/ASTMatchers/Dynamic clang/... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/master: clang/include/clang clang/include/clang-c clang/include/clang/AST clang/include/clang/ASTMatchers clang/include/clang/ASTMatchers/Dynamic clang/include/clang/Analysis cl... X-SVN-Commit-Revision: 356843 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:45:09 -0000 Author: dim Date: Fri Jan 17 20:45:01 2020 New Revision: 356843 URL: https://svnweb.freebsd.org/changeset/base/356843 Log: Vendor import of llvm-project master e26a78e70, the last commit before the llvmorg-11-init tag, from which release/10.x was branched. Added: vendor/llvm-project/master/clang/include/clang-c/ExternC.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/ASTConcept.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/AbstractBasicReader.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/AbstractBasicWriter.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/AbstractTypeReader.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/AbstractTypeWriter.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/AST/PropertiesBase.td vendor/llvm-project/master/clang/include/clang/AST/TypeProperties.td vendor/llvm-project/master/clang/include/clang/Basic/ASTNode.td vendor/llvm-project/master/clang/include/clang/Basic/arm_mve.td vendor/llvm-project/master/clang/include/clang/Basic/arm_mve_defs.td vendor/llvm-project/master/clang/include/clang/Driver/OptionUtils.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Sema/SemaConcept.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Serialization/ASTRecordReader.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Serialization/ASTRecordWriter.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Serialization/ModuleFile.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Serialization/TypeBitCodes.def vendor/llvm-project/master/clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h (contents, props changed) vendor/llvm-project/master/clang/include/clang/Tooling/Syntax/Mutations.h (contents, props changed) vendor/llvm-project/master/clang/lib/AST/ASTConcept.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Driver/OptionUtils.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Driver/ToolChains/AIX.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Driver/ToolChains/AIX.h (contents, props changed) vendor/llvm-project/master/clang/lib/Driver/ToolChains/Flang.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Driver/ToolChains/Flang.h (contents, props changed) vendor/llvm-project/master/clang/lib/Headers/arm_cmse.h (contents, props changed) vendor/llvm-project/master/clang/lib/Serialization/ModuleFile.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/DebugIteratorModeling.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/Iterator.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/Iterator.h (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Tooling/ExpandResponseFilesCompilationDatabase.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Tooling/Syntax/ComputeReplacements.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Tooling/Syntax/Mutations.cpp (contents, props changed) vendor/llvm-project/master/clang/lib/Tooling/Syntax/Synthesis.cpp (contents, props changed) vendor/llvm-project/master/clang/utils/TableGen/ASTTableGen.cpp (contents, props changed) vendor/llvm-project/master/clang/utils/TableGen/ASTTableGen.h (contents, props changed) vendor/llvm-project/master/clang/utils/TableGen/ClangASTPropertiesEmitter.cpp (contents, props changed) vendor/llvm-project/master/clang/utils/TableGen/MveEmitter.cpp (contents, props changed) vendor/llvm-project/master/clang/utils/convert_arm_neon.py (contents, props changed) vendor/llvm-project/master/compiler-rt/include/profile/ vendor/llvm-project/master/compiler-rt/include/profile/InstrProfData.inc (contents, props changed) vendor/llvm-project/master/compiler-rt/lib/builtins/i386/fp_mode.c (contents, props changed) vendor/llvm-project/master/compiler-rt/lib/builtins/ppc/fixtfti.c (contents, props changed) vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_setjmp.S (contents, props changed) vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_type_test.cpp (contents, props changed) vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_netbsd_compat.inc (contents, props changed) vendor/llvm-project/master/lldb/docs/man/ vendor/llvm-project/master/lldb/docs/man/lldb.rst vendor/llvm-project/master/lldb/include/lldb/Core/IOHandlerCursesGUI.h (contents, props changed) vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangASTMetadata.h (contents, props changed) vendor/llvm-project/master/lldb/source/Core/IOHandlerCursesGUI.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Host/posix/FileSystemPosix.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Lua/ vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Lua/Lua.h (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/PythonReadline.h (contents, props changed) vendor/llvm-project/master/lldb/source/Symbol/ClangASTMetadata.cpp (contents, props changed) vendor/llvm-project/master/lldb/source/Target/MemoryRegionInfo.cpp (contents, props changed) vendor/llvm-project/master/llvm/include/llvm-c/ExternC.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ADT/EnumeratedArray.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ADT/FloatingPointMode.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/CodeGen/MIRFormatter.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineSizeOpts.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/CodeGen/NonRelocatableStringpool.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/DWARFLinker/ vendor/llvm-project/master/llvm/include/llvm/DWARFLinker/DWARFLinker.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/DWARFLinker/DWARFLinkerDeclContext.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFLocationExpression.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/LookupResult.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/DebugUtils.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPC/ vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPC/RPCSerialization.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPC/RPCUtils.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPC/RawByteChannel.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Frontend/ vendor/llvm-project/master/llvm/include/llvm/Frontend/OpenMP/ vendor/llvm-project/master/llvm/include/llvm/Frontend/OpenMP/OMPConstants.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Frontend/OpenMP/OMPKinds.def vendor/llvm-project/master/llvm/include/llvm/IR/ConstrainedOps.def vendor/llvm-project/master/llvm/include/llvm/IR/FPEnv.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Remarks/RemarkLinker.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/CFGuard.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/IPO/MergeFunctions.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/CodeMoverUtils.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/Debugify.h (contents, props changed) vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h (contents, props changed) vendor/llvm-project/master/llvm/lib/BinaryFormat/XCOFF.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/CodeGen/CFGuardLongjmp.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/CodeGen/MachineSizeOpts.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/CodeGen/NonRelocatableStringpool.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/CodeGen/TypePromotion.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/DWARFLinker/ vendor/llvm-project/master/llvm/lib/DWARFLinker/DWARFLinker.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/DWARFLinker/DWARFLinkerCompileUnit.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/DWARFLinker/DWARFLinkerDeclContext.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFLocationExpression.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/LookupResult.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/DebugUtils.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/ExecutionEngine/OrcError/ vendor/llvm-project/master/llvm/lib/ExecutionEngine/OrcError/OrcError.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/ExecutionEngine/OrcError/RPCError.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFAArch64.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Frontend/ vendor/llvm-project/master/llvm/lib/Frontend/OpenMP/ vendor/llvm-project/master/llvm/lib/Frontend/OpenMP/OMPConstants.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/IR/FPEnv.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Remarks/RemarkLinker.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedExynosM5.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUGlobalISelUtils.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIRemoveShortExecBranches.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/ARM/MVEGatherScatterLowering.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/ vendor/llvm-project/master/llvm/lib/Target/VE/InstPrinter/ vendor/llvm-project/master/llvm/lib/Target/VE/InstPrinter/VEInstPrinter.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/InstPrinter/VEInstPrinter.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/ vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VEMCTargetDesc.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/MCTargetDesc/VETargetStreamer.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/TargetInfo/ vendor/llvm-project/master/llvm/lib/Target/VE/TargetInfo/VETargetInfo.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VE.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VE.td vendor/llvm-project/master/llvm/lib/Target/VE/VEAsmPrinter.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VECallingConv.td vendor/llvm-project/master/llvm/lib/Target/VE/VEFrameLowering.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEFrameLowering.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEISelDAGToDAG.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEISelLowering.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEISelLowering.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/VE/VEInstrInfo.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEInstrInfo.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VEInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/VE/VEMCInstLower.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VERegisterInfo.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VERegisterInfo.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VERegisterInfo.td vendor/llvm-project/master/llvm/lib/Target/VE/VESubtarget.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VESubtarget.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VETargetMachine.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VETargetMachine.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/VE/VETargetTransformInfo.h (contents, props changed) vendor/llvm-project/master/llvm/lib/Target/X86/X86ScheduleZnver2.td vendor/llvm-project/master/llvm/lib/Transforms/CFGuard/ vendor/llvm-project/master/llvm/lib/Transforms/CFGuard/CFGuard.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Utils/CodeMoverUtils.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Utils/Debugify.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Utils/InjectTLIMappings.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp (contents, props changed) vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanTransforms.h (contents, props changed) vendor/llvm-project/master/llvm/tools/llvm-objcopy/InstallNameToolOpts.td vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDag.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDag.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagEdge.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagInstr.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagInstr.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagOperands.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagOperands.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagPredicate.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/GlobalISel/GIMatchTree.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/OptEmitter.cpp (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/OptEmitter.h (contents, props changed) vendor/llvm-project/master/llvm/utils/TableGen/OptRSTEmitter.cpp (contents, props changed) Deleted: vendor/llvm-project/master/clang/include/clang/Serialization/Module.h vendor/llvm-project/master/clang/lib/Serialization/Module.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfData.inc vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/secondary.cpp vendor/llvm-project/master/lldb/docs/lldb.1 vendor/llvm-project/master/lldb/include/lldb/Core/STLUtils.h vendor/llvm-project/master/lldb/include/lldb/Core/ThreadSafeSTLMap.h vendor/llvm-project/master/lldb/include/lldb/Core/ThreadSafeSTLVector.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/TypeValidator.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangExternalASTSourceCommon.h vendor/llvm-project/master/lldb/source/DataFormatters/TypeValidator.cpp vendor/llvm-project/master/lldb/source/Host/posix/FileSystem.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTDumper.h vendor/llvm-project/master/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp vendor/llvm-project/master/lldb/source/Utility/PPC64LE_ehframe_Registers.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RawByteChannel.h vendor/llvm-project/master/llvm/include/llvm/MC/MCCodePadder.h vendor/llvm-project/master/llvm/include/llvm/Support/Options.h vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/OrcError.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp vendor/llvm-project/master/llvm/lib/MC/MCCodePadder.cpp vendor/llvm-project/master/llvm/lib/Support/Options.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedExynosM1.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp vendor/llvm-project/master/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanHCFGTransforms.h vendor/llvm-project/master/llvm/tools/opt/Debugify.cpp vendor/llvm-project/master/llvm/tools/opt/Debugify.h Modified: vendor/llvm-project/master/clang/include/clang-c/BuildSystem.h vendor/llvm-project/master/clang/include/clang-c/CXCompilationDatabase.h vendor/llvm-project/master/clang/include/clang-c/CXErrorCode.h vendor/llvm-project/master/clang/include/clang-c/CXString.h vendor/llvm-project/master/clang/include/clang-c/Documentation.h vendor/llvm-project/master/clang/include/clang-c/FatalErrorHandler.h vendor/llvm-project/master/clang/include/clang-c/Index.h vendor/llvm-project/master/clang/include/clang-c/Platform.h vendor/llvm-project/master/clang/include/clang/AST/ASTConsumer.h vendor/llvm-project/master/clang/include/clang/AST/ASTContext.h vendor/llvm-project/master/clang/include/clang/AST/ASTFwd.h vendor/llvm-project/master/clang/include/clang/AST/ASTImporter.h vendor/llvm-project/master/clang/include/clang/AST/ASTLambda.h vendor/llvm-project/master/clang/include/clang/AST/ASTNodeTraverser.h vendor/llvm-project/master/clang/include/clang/AST/ASTTypeTraits.h vendor/llvm-project/master/clang/include/clang/AST/Attr.h vendor/llvm-project/master/clang/include/clang/AST/CXXInheritance.h vendor/llvm-project/master/clang/include/clang/AST/Comment.h vendor/llvm-project/master/clang/include/clang/AST/CommentCommands.td vendor/llvm-project/master/clang/include/clang/AST/ComparisonCategories.h vendor/llvm-project/master/clang/include/clang/AST/Decl.h vendor/llvm-project/master/clang/include/clang/AST/DeclBase.h vendor/llvm-project/master/clang/include/clang/AST/DeclCXX.h vendor/llvm-project/master/clang/include/clang/AST/DeclObjC.h vendor/llvm-project/master/clang/include/clang/AST/DeclTemplate.h vendor/llvm-project/master/clang/include/clang/AST/DeclarationName.h vendor/llvm-project/master/clang/include/clang/AST/Expr.h vendor/llvm-project/master/clang/include/clang/AST/ExprCXX.h vendor/llvm-project/master/clang/include/clang/AST/ExprObjC.h vendor/llvm-project/master/clang/include/clang/AST/ExternalASTSource.h vendor/llvm-project/master/clang/include/clang/AST/JSONNodeDumper.h vendor/llvm-project/master/clang/include/clang/AST/OpenMPClause.h vendor/llvm-project/master/clang/include/clang/AST/PrettyPrinter.h vendor/llvm-project/master/clang/include/clang/AST/RecursiveASTVisitor.h vendor/llvm-project/master/clang/include/clang/AST/Stmt.h vendor/llvm-project/master/clang/include/clang/AST/StmtDataCollectors.td vendor/llvm-project/master/clang/include/clang/AST/StmtOpenMP.h vendor/llvm-project/master/clang/include/clang/AST/TemplateName.h vendor/llvm-project/master/clang/include/clang/AST/TextNodeDumper.h vendor/llvm-project/master/clang/include/clang/AST/Type.h vendor/llvm-project/master/clang/include/clang/AST/TypeLoc.h vendor/llvm-project/master/clang/include/clang/AST/UnresolvedSet.h vendor/llvm-project/master/clang/include/clang/ASTMatchers/ASTMatchFinder.h vendor/llvm-project/master/clang/include/clang/ASTMatchers/ASTMatchers.h vendor/llvm-project/master/clang/include/clang/ASTMatchers/ASTMatchersInternal.h vendor/llvm-project/master/clang/include/clang/ASTMatchers/Dynamic/Parser.h vendor/llvm-project/master/clang/include/clang/Analysis/CFG.h vendor/llvm-project/master/clang/include/clang/Basic/AddressSpaces.h vendor/llvm-project/master/clang/include/clang/Basic/Attr.td vendor/llvm-project/master/clang/include/clang/Basic/AttrDocs.td vendor/llvm-project/master/clang/include/clang/Basic/Builtins.def vendor/llvm-project/master/clang/include/clang/Basic/Builtins.h vendor/llvm-project/master/clang/include/clang/Basic/BuiltinsAArch64.def vendor/llvm-project/master/clang/include/clang/Basic/BuiltinsARM.def vendor/llvm-project/master/clang/include/clang/Basic/BuiltinsWebAssembly.def vendor/llvm-project/master/clang/include/clang/Basic/BuiltinsX86.def vendor/llvm-project/master/clang/include/clang/Basic/CodeGenOptions.def vendor/llvm-project/master/clang/include/clang/Basic/CodeGenOptions.h vendor/llvm-project/master/clang/include/clang/Basic/CommentNodes.td vendor/llvm-project/master/clang/include/clang/Basic/DebugInfoOptions.h vendor/llvm-project/master/clang/include/clang/Basic/DeclNodes.td vendor/llvm-project/master/clang/include/clang/Basic/Diagnostic.h vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticASTKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticCommentKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticCommonKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticDriverKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticGroups.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticParseKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticSemaKinds.td vendor/llvm-project/master/clang/include/clang/Basic/DiagnosticSerializationKinds.td vendor/llvm-project/master/clang/include/clang/Basic/FileManager.h vendor/llvm-project/master/clang/include/clang/Basic/IdentifierTable.h vendor/llvm-project/master/clang/include/clang/Basic/LangOptions.def vendor/llvm-project/master/clang/include/clang/Basic/LangOptions.h vendor/llvm-project/master/clang/include/clang/Basic/ObjCRuntime.h vendor/llvm-project/master/clang/include/clang/Basic/OpenMPKinds.def vendor/llvm-project/master/clang/include/clang/Basic/OpenMPKinds.h vendor/llvm-project/master/clang/include/clang/Basic/PartialDiagnostic.h vendor/llvm-project/master/clang/include/clang/Basic/SanitizerSpecialCaseList.h vendor/llvm-project/master/clang/include/clang/Basic/Sanitizers.h vendor/llvm-project/master/clang/include/clang/Basic/SourceLocation.h vendor/llvm-project/master/clang/include/clang/Basic/SourceManager.h vendor/llvm-project/master/clang/include/clang/Basic/Specifiers.h vendor/llvm-project/master/clang/include/clang/Basic/StmtNodes.td vendor/llvm-project/master/clang/include/clang/Basic/TargetCXXABI.h vendor/llvm-project/master/clang/include/clang/Basic/TargetInfo.h vendor/llvm-project/master/clang/include/clang/Basic/TokenKinds.def vendor/llvm-project/master/clang/include/clang/Basic/TypeNodes.td vendor/llvm-project/master/clang/include/clang/Basic/arm_fp16.td vendor/llvm-project/master/clang/include/clang/Basic/arm_neon.td vendor/llvm-project/master/clang/include/clang/Basic/arm_neon_incl.td vendor/llvm-project/master/clang/include/clang/CodeGen/CGFunctionInfo.h vendor/llvm-project/master/clang/include/clang/Driver/CC1Options.td vendor/llvm-project/master/clang/include/clang/Driver/Distro.h vendor/llvm-project/master/clang/include/clang/Driver/Driver.h vendor/llvm-project/master/clang/include/clang/Driver/Job.h vendor/llvm-project/master/clang/include/clang/Driver/Options.td vendor/llvm-project/master/clang/include/clang/Driver/SanitizerArgs.h vendor/llvm-project/master/clang/include/clang/Driver/ToolChain.h vendor/llvm-project/master/clang/include/clang/Driver/Types.h vendor/llvm-project/master/clang/include/clang/Format/Format.h vendor/llvm-project/master/clang/include/clang/Frontend/CompilerInstance.h vendor/llvm-project/master/clang/include/clang/Frontend/FrontendOptions.h vendor/llvm-project/master/clang/include/clang/Frontend/MultiplexConsumer.h vendor/llvm-project/master/clang/include/clang/Frontend/PrecompiledPreamble.h vendor/llvm-project/master/clang/include/clang/Frontend/Utils.h vendor/llvm-project/master/clang/include/clang/Index/IndexDataConsumer.h vendor/llvm-project/master/clang/include/clang/Lex/ModuleLoader.h vendor/llvm-project/master/clang/include/clang/Lex/ModuleMap.h vendor/llvm-project/master/clang/include/clang/Lex/Preprocessor.h vendor/llvm-project/master/clang/include/clang/Lex/PreprocessorOptions.h vendor/llvm-project/master/clang/include/clang/Parse/Parser.h vendor/llvm-project/master/clang/include/clang/Parse/RAIIObjectsForParser.h vendor/llvm-project/master/clang/include/clang/Sema/CodeCompleteConsumer.h vendor/llvm-project/master/clang/include/clang/Sema/DeclSpec.h vendor/llvm-project/master/clang/include/clang/Sema/ExternalSemaSource.h vendor/llvm-project/master/clang/include/clang/Sema/MultiplexExternalSemaSource.h vendor/llvm-project/master/clang/include/clang/Sema/ObjCMethodList.h vendor/llvm-project/master/clang/include/clang/Sema/Overload.h vendor/llvm-project/master/clang/include/clang/Sema/ParsedTemplate.h vendor/llvm-project/master/clang/include/clang/Sema/Sema.h vendor/llvm-project/master/clang/include/clang/Sema/Template.h vendor/llvm-project/master/clang/include/clang/Sema/TemplateDeduction.h vendor/llvm-project/master/clang/include/clang/Serialization/ASTBitCodes.h vendor/llvm-project/master/clang/include/clang/Serialization/ASTReader.h vendor/llvm-project/master/clang/include/clang/Serialization/ASTWriter.h vendor/llvm-project/master/clang/include/clang/Serialization/ContinuousRangeMap.h vendor/llvm-project/master/clang/include/clang/Serialization/ModuleManager.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h vendor/llvm-project/master/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h vendor/llvm-project/master/clang/include/clang/Tooling/CompilationDatabase.h vendor/llvm-project/master/clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h vendor/llvm-project/master/clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h vendor/llvm-project/master/clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h vendor/llvm-project/master/clang/include/clang/Tooling/Inclusions/HeaderIncludes.h vendor/llvm-project/master/clang/include/clang/Tooling/Inclusions/IncludeStyle.h vendor/llvm-project/master/clang/include/clang/Tooling/Refactoring/ASTSelection.h vendor/llvm-project/master/clang/include/clang/Tooling/Syntax/BuildTree.h vendor/llvm-project/master/clang/include/clang/Tooling/Syntax/Nodes.h vendor/llvm-project/master/clang/include/clang/Tooling/Syntax/Tokens.h vendor/llvm-project/master/clang/include/clang/Tooling/Syntax/Tree.h vendor/llvm-project/master/clang/include/clang/Tooling/Tooling.h vendor/llvm-project/master/clang/include/clang/Tooling/Transformer/MatchConsumer.h vendor/llvm-project/master/clang/include/clang/Tooling/Transformer/RewriteRule.h vendor/llvm-project/master/clang/include/clang/Tooling/Transformer/Stencil.h vendor/llvm-project/master/clang/include/clang/module.modulemap vendor/llvm-project/master/clang/lib/ARCMigrate/ObjCMT.cpp vendor/llvm-project/master/clang/lib/AST/ASTContext.cpp vendor/llvm-project/master/clang/lib/AST/ASTDiagnostic.cpp vendor/llvm-project/master/clang/lib/AST/ASTImporter.cpp vendor/llvm-project/master/clang/lib/AST/ASTTypeTraits.cpp vendor/llvm-project/master/clang/lib/AST/Comment.cpp vendor/llvm-project/master/clang/lib/AST/CommentSema.cpp vendor/llvm-project/master/clang/lib/AST/ComparisonCategories.cpp vendor/llvm-project/master/clang/lib/AST/Decl.cpp vendor/llvm-project/master/clang/lib/AST/DeclBase.cpp vendor/llvm-project/master/clang/lib/AST/DeclCXX.cpp vendor/llvm-project/master/clang/lib/AST/DeclObjC.cpp vendor/llvm-project/master/clang/lib/AST/DeclPrinter.cpp vendor/llvm-project/master/clang/lib/AST/DeclTemplate.cpp vendor/llvm-project/master/clang/lib/AST/DeclarationName.cpp vendor/llvm-project/master/clang/lib/AST/Expr.cpp vendor/llvm-project/master/clang/lib/AST/ExprCXX.cpp vendor/llvm-project/master/clang/lib/AST/ExprConstant.cpp vendor/llvm-project/master/clang/lib/AST/ExternalASTMerger.cpp vendor/llvm-project/master/clang/lib/AST/ExternalASTSource.cpp vendor/llvm-project/master/clang/lib/AST/Interp/ByteCodeStmtGen.cpp vendor/llvm-project/master/clang/lib/AST/Interp/Context.cpp vendor/llvm-project/master/clang/lib/AST/Interp/Context.h vendor/llvm-project/master/clang/lib/AST/Interp/Interp.h vendor/llvm-project/master/clang/lib/AST/ItaniumMangle.cpp vendor/llvm-project/master/clang/lib/AST/JSONNodeDumper.cpp vendor/llvm-project/master/clang/lib/AST/Mangle.cpp vendor/llvm-project/master/clang/lib/AST/MicrosoftCXXABI.cpp vendor/llvm-project/master/clang/lib/AST/MicrosoftMangle.cpp vendor/llvm-project/master/clang/lib/AST/NestedNameSpecifier.cpp vendor/llvm-project/master/clang/lib/AST/ODRHash.cpp vendor/llvm-project/master/clang/lib/AST/OpenMPClause.cpp vendor/llvm-project/master/clang/lib/AST/QualTypeNames.cpp vendor/llvm-project/master/clang/lib/AST/RecordLayoutBuilder.cpp vendor/llvm-project/master/clang/lib/AST/Stmt.cpp vendor/llvm-project/master/clang/lib/AST/StmtOpenMP.cpp vendor/llvm-project/master/clang/lib/AST/StmtPrinter.cpp vendor/llvm-project/master/clang/lib/AST/StmtProfile.cpp vendor/llvm-project/master/clang/lib/AST/TextNodeDumper.cpp vendor/llvm-project/master/clang/lib/AST/Type.cpp vendor/llvm-project/master/clang/lib/AST/TypeLoc.cpp vendor/llvm-project/master/clang/lib/AST/TypePrinter.cpp vendor/llvm-project/master/clang/lib/AST/VTableBuilder.cpp vendor/llvm-project/master/clang/lib/ASTMatchers/ASTMatchFinder.cpp vendor/llvm-project/master/clang/lib/ASTMatchers/ASTMatchersInternal.cpp vendor/llvm-project/master/clang/lib/ASTMatchers/Dynamic/Parser.cpp vendor/llvm-project/master/clang/lib/ASTMatchers/Dynamic/Registry.cpp vendor/llvm-project/master/clang/lib/Analysis/BodyFarm.cpp vendor/llvm-project/master/clang/lib/Analysis/CFG.cpp vendor/llvm-project/master/clang/lib/Analysis/CloneDetection.cpp vendor/llvm-project/master/clang/lib/Analysis/Consumed.cpp vendor/llvm-project/master/clang/lib/Analysis/ReachableCode.cpp vendor/llvm-project/master/clang/lib/Analysis/ThreadSafety.cpp vendor/llvm-project/master/clang/lib/Analysis/ThreadSafetyCommon.cpp vendor/llvm-project/master/clang/lib/Basic/Builtins.cpp vendor/llvm-project/master/clang/lib/Basic/Diagnostic.cpp vendor/llvm-project/master/clang/lib/Basic/FileManager.cpp vendor/llvm-project/master/clang/lib/Basic/OpenMPKinds.cpp vendor/llvm-project/master/clang/lib/Basic/SanitizerBlacklist.cpp vendor/llvm-project/master/clang/lib/Basic/SanitizerSpecialCaseList.cpp vendor/llvm-project/master/clang/lib/Basic/SourceManager.cpp vendor/llvm-project/master/clang/lib/Basic/Targets.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/AArch64.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/AArch64.h vendor/llvm-project/master/clang/lib/Basic/Targets/AMDGPU.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/ARM.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/ARM.h vendor/llvm-project/master/clang/lib/Basic/Targets/BPF.h vendor/llvm-project/master/clang/lib/Basic/Targets/Hexagon.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/Mips.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/Mips.h vendor/llvm-project/master/clang/lib/Basic/Targets/NVPTX.h vendor/llvm-project/master/clang/lib/Basic/Targets/OSTargets.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/OSTargets.h vendor/llvm-project/master/clang/lib/Basic/Targets/PPC.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/PPC.h vendor/llvm-project/master/clang/lib/Basic/Targets/SPIR.h vendor/llvm-project/master/clang/lib/Basic/Targets/TCE.h vendor/llvm-project/master/clang/lib/Basic/Targets/X86.cpp vendor/llvm-project/master/clang/lib/Basic/Targets/X86.h vendor/llvm-project/master/clang/lib/Basic/Version.cpp vendor/llvm-project/master/clang/lib/Basic/XRayLists.cpp vendor/llvm-project/master/clang/lib/CodeGen/BackendUtil.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGAtomic.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGBlocks.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGBuilder.h vendor/llvm-project/master/clang/lib/CodeGen/CGBuiltin.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGCXX.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGCXXABI.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGCall.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGCall.h vendor/llvm-project/master/clang/lib/CodeGen/CGClass.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGDebugInfo.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGDebugInfo.h vendor/llvm-project/master/clang/lib/CodeGen/CGDecl.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGDeclCXX.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGException.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExpr.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExprAgg.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExprCXX.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExprComplex.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExprConstant.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGExprScalar.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGLoopInfo.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGNonTrivialStruct.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGObjC.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGObjCGNU.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGObjCMac.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGObjCRuntime.h vendor/llvm-project/master/clang/lib/CodeGen/CGOpenCLRuntime.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGOpenMPRuntime.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGOpenMPRuntime.h vendor/llvm-project/master/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h vendor/llvm-project/master/clang/lib/CodeGen/CGStmt.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGStmtOpenMP.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGVTables.cpp vendor/llvm-project/master/clang/lib/CodeGen/CGValue.h vendor/llvm-project/master/clang/lib/CodeGen/CodeGenAction.cpp vendor/llvm-project/master/clang/lib/CodeGen/CodeGenFunction.cpp vendor/llvm-project/master/clang/lib/CodeGen/CodeGenFunction.h vendor/llvm-project/master/clang/lib/CodeGen/CodeGenModule.cpp vendor/llvm-project/master/clang/lib/CodeGen/CodeGenModule.h vendor/llvm-project/master/clang/lib/CodeGen/CodeGenPGO.cpp vendor/llvm-project/master/clang/lib/CodeGen/CodeGenTBAA.cpp vendor/llvm-project/master/clang/lib/CodeGen/ConstantEmitter.h vendor/llvm-project/master/clang/lib/CodeGen/CoverageMappingGen.cpp vendor/llvm-project/master/clang/lib/CodeGen/CoverageMappingGen.h vendor/llvm-project/master/clang/lib/CodeGen/ItaniumCXXABI.cpp vendor/llvm-project/master/clang/lib/CodeGen/MicrosoftCXXABI.cpp vendor/llvm-project/master/clang/lib/CodeGen/ModuleBuilder.cpp vendor/llvm-project/master/clang/lib/CodeGen/SanitizerMetadata.cpp vendor/llvm-project/master/clang/lib/CodeGen/TargetInfo.cpp vendor/llvm-project/master/clang/lib/Driver/Distro.cpp vendor/llvm-project/master/clang/lib/Driver/Driver.cpp vendor/llvm-project/master/clang/lib/Driver/Job.cpp vendor/llvm-project/master/clang/lib/Driver/SanitizerArgs.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChain.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/AMDGPU.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/AArch64.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/ARM.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/PPC.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/RISCV.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/RISCV.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/SystemZ.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/SystemZ.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Arch/X86.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Clang.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/CommonArgs.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/CommonArgs.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Cuda.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Darwin.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Darwin.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/FreeBSD.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/FreeBSD.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Fuchsia.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Gnu.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Gnu.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/HIP.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/HIP.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/Hexagon.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Hurd.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Hurd.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/InterfaceStubs.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Linux.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/Linux.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/MSVC.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/MinGW.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/NetBSD.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/OpenBSD.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/OpenBSD.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/PS4CPU.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/RISCVToolchain.cpp vendor/llvm-project/master/clang/lib/Driver/ToolChains/RISCVToolchain.h vendor/llvm-project/master/clang/lib/Driver/ToolChains/WebAssembly.cpp vendor/llvm-project/master/clang/lib/Driver/Types.cpp vendor/llvm-project/master/clang/lib/Driver/XRayArgs.cpp vendor/llvm-project/master/clang/lib/Format/BreakableToken.cpp vendor/llvm-project/master/clang/lib/Format/BreakableToken.h vendor/llvm-project/master/clang/lib/Format/Format.cpp vendor/llvm-project/master/clang/lib/Format/FormatToken.h vendor/llvm-project/master/clang/lib/Format/FormatTokenLexer.cpp vendor/llvm-project/master/clang/lib/Format/NamespaceEndCommentsFixer.cpp vendor/llvm-project/master/clang/lib/Format/TokenAnnotator.cpp vendor/llvm-project/master/clang/lib/Format/UnwrappedLineFormatter.cpp vendor/llvm-project/master/clang/lib/Format/UnwrappedLineParser.cpp vendor/llvm-project/master/clang/lib/Frontend/ASTUnit.cpp vendor/llvm-project/master/clang/lib/Frontend/ChainedIncludesSource.cpp vendor/llvm-project/master/clang/lib/Frontend/CompilerInstance.cpp vendor/llvm-project/master/clang/lib/Frontend/CompilerInvocation.cpp vendor/llvm-project/master/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp vendor/llvm-project/master/clang/lib/Frontend/FrontendAction.cpp vendor/llvm-project/master/clang/lib/Frontend/FrontendActions.cpp vendor/llvm-project/master/clang/lib/Frontend/InitPreprocessor.cpp vendor/llvm-project/master/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp vendor/llvm-project/master/clang/lib/Frontend/MultiplexConsumer.cpp vendor/llvm-project/master/clang/lib/Frontend/PrecompiledPreamble.cpp vendor/llvm-project/master/clang/lib/Frontend/Rewrite/FrontendActions.cpp vendor/llvm-project/master/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp vendor/llvm-project/master/clang/lib/Frontend/Rewrite/RewriteObjC.cpp vendor/llvm-project/master/clang/lib/Frontend/TextDiagnostic.cpp vendor/llvm-project/master/clang/lib/Headers/altivec.h vendor/llvm-project/master/clang/lib/Headers/arm_acle.h vendor/llvm-project/master/clang/lib/Headers/avx512bwintrin.h vendor/llvm-project/master/clang/lib/Headers/avx512fintrin.h vendor/llvm-project/master/clang/lib/Headers/avx512vlbwintrin.h vendor/llvm-project/master/clang/lib/Headers/avx512vlintrin.h vendor/llvm-project/master/clang/lib/Headers/avxintrin.h vendor/llvm-project/master/clang/lib/Headers/emmintrin.h vendor/llvm-project/master/clang/lib/Headers/immintrin.h vendor/llvm-project/master/clang/lib/Headers/intrin.h vendor/llvm-project/master/clang/lib/Headers/mwaitxintrin.h vendor/llvm-project/master/clang/lib/Headers/pmmintrin.h vendor/llvm-project/master/clang/lib/Headers/xmmintrin.h vendor/llvm-project/master/clang/lib/Index/CommentToXML.cpp vendor/llvm-project/master/clang/lib/Index/IndexDecl.cpp vendor/llvm-project/master/clang/lib/Index/IndexSymbol.cpp vendor/llvm-project/master/clang/lib/Index/IndexingAction.cpp vendor/llvm-project/master/clang/lib/Index/IndexingContext.cpp vendor/llvm-project/master/clang/lib/Index/USRGeneration.cpp vendor/llvm-project/master/clang/lib/Lex/DependencyDirectivesSourceMinimizer.cpp vendor/llvm-project/master/clang/lib/Lex/Lexer.cpp vendor/llvm-project/master/clang/lib/Lex/LiteralSupport.cpp vendor/llvm-project/master/clang/lib/Lex/ModuleMap.cpp vendor/llvm-project/master/clang/lib/Lex/PPDirectives.cpp vendor/llvm-project/master/clang/lib/Lex/PPMacroExpansion.cpp vendor/llvm-project/master/clang/lib/Lex/Pragma.cpp vendor/llvm-project/master/clang/lib/Lex/Preprocessor.cpp vendor/llvm-project/master/clang/lib/Parse/ParseAST.cpp vendor/llvm-project/master/clang/lib/Parse/ParseCXXInlineMethods.cpp vendor/llvm-project/master/clang/lib/Parse/ParseDecl.cpp vendor/llvm-project/master/clang/lib/Parse/ParseDeclCXX.cpp vendor/llvm-project/master/clang/lib/Parse/ParseExpr.cpp vendor/llvm-project/master/clang/lib/Parse/ParseExprCXX.cpp vendor/llvm-project/master/clang/lib/Parse/ParseObjc.cpp vendor/llvm-project/master/clang/lib/Parse/ParseOpenMP.cpp vendor/llvm-project/master/clang/lib/Parse/ParsePragma.cpp vendor/llvm-project/master/clang/lib/Parse/ParseStmt.cpp vendor/llvm-project/master/clang/lib/Parse/ParseStmtAsm.cpp vendor/llvm-project/master/clang/lib/Parse/ParseTemplate.cpp vendor/llvm-project/master/clang/lib/Parse/ParseTentative.cpp vendor/llvm-project/master/clang/lib/Parse/Parser.cpp vendor/llvm-project/master/clang/lib/Sema/AnalysisBasedWarnings.cpp vendor/llvm-project/master/clang/lib/Sema/JumpDiagnostics.cpp vendor/llvm-project/master/clang/lib/Sema/MultiplexExternalSemaSource.cpp vendor/llvm-project/master/clang/lib/Sema/OpenCLBuiltins.td vendor/llvm-project/master/clang/lib/Sema/Sema.cpp vendor/llvm-project/master/clang/lib/Sema/SemaAccess.cpp vendor/llvm-project/master/clang/lib/Sema/SemaAttr.cpp vendor/llvm-project/master/clang/lib/Sema/SemaCUDA.cpp vendor/llvm-project/master/clang/lib/Sema/SemaCast.cpp vendor/llvm-project/master/clang/lib/Sema/SemaChecking.cpp vendor/llvm-project/master/clang/lib/Sema/SemaCodeComplete.cpp vendor/llvm-project/master/clang/lib/Sema/SemaConcept.cpp vendor/llvm-project/master/clang/lib/Sema/SemaCoroutine.cpp vendor/llvm-project/master/clang/lib/Sema/SemaDecl.cpp vendor/llvm-project/master/clang/lib/Sema/SemaDeclAttr.cpp vendor/llvm-project/master/clang/lib/Sema/SemaDeclCXX.cpp vendor/llvm-project/master/clang/lib/Sema/SemaDeclObjC.cpp vendor/llvm-project/master/clang/lib/Sema/SemaExceptionSpec.cpp vendor/llvm-project/master/clang/lib/Sema/SemaExpr.cpp vendor/llvm-project/master/clang/lib/Sema/SemaExprCXX.cpp vendor/llvm-project/master/clang/lib/Sema/SemaExprMember.cpp vendor/llvm-project/master/clang/lib/Sema/SemaExprObjC.cpp vendor/llvm-project/master/clang/lib/Sema/SemaInit.cpp vendor/llvm-project/master/clang/lib/Sema/SemaLambda.cpp vendor/llvm-project/master/clang/lib/Sema/SemaLookup.cpp vendor/llvm-project/master/clang/lib/Sema/SemaModule.cpp vendor/llvm-project/master/clang/lib/Sema/SemaObjCProperty.cpp vendor/llvm-project/master/clang/lib/Sema/SemaOpenMP.cpp vendor/llvm-project/master/clang/lib/Sema/SemaOverload.cpp vendor/llvm-project/master/clang/lib/Sema/SemaPseudoObject.cpp vendor/llvm-project/master/clang/lib/Sema/SemaStmt.cpp vendor/llvm-project/master/clang/lib/Sema/SemaStmtAsm.cpp vendor/llvm-project/master/clang/lib/Sema/SemaTemplate.cpp vendor/llvm-project/master/clang/lib/Sema/SemaTemplateDeduction.cpp vendor/llvm-project/master/clang/lib/Sema/SemaTemplateInstantiate.cpp vendor/llvm-project/master/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/llvm-project/master/clang/lib/Sema/SemaTemplateVariadic.cpp vendor/llvm-project/master/clang/lib/Sema/SemaType.cpp vendor/llvm-project/master/clang/lib/Sema/TreeTransform.h vendor/llvm-project/master/clang/lib/Serialization/ASTCommon.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTReader.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTReaderDecl.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTReaderStmt.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTWriter.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTWriterDecl.cpp vendor/llvm-project/master/clang/lib/Serialization/ASTWriterStmt.cpp vendor/llvm-project/master/clang/lib/Serialization/GlobalModuleIndex.cpp vendor/llvm-project/master/clang/lib/Serialization/ModuleManager.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/Taint.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/Taint.h vendor/llvm-project/master/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/CallEvent.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/ProgramState.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/RegionStore.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Core/Store.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Frontend/CheckerRegistry.cpp vendor/llvm-project/master/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp vendor/llvm-project/master/clang/lib/Tooling/ASTDiff/ASTDiff.cpp vendor/llvm-project/master/clang/lib/Tooling/ArgumentsAdjusters.cpp vendor/llvm-project/master/clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp vendor/llvm-project/master/clang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp vendor/llvm-project/master/clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp vendor/llvm-project/master/clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp vendor/llvm-project/master/clang/lib/Tooling/Inclusions/HeaderIncludes.cpp vendor/llvm-project/master/clang/lib/Tooling/InterpolatingCompilationDatabase.cpp vendor/llvm-project/master/clang/lib/Tooling/JSONCompilationDatabase.cpp vendor/llvm-project/master/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp vendor/llvm-project/master/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp vendor/llvm-project/master/clang/lib/Tooling/Syntax/BuildTree.cpp vendor/llvm-project/master/clang/lib/Tooling/Syntax/Nodes.cpp vendor/llvm-project/master/clang/lib/Tooling/Syntax/Tokens.cpp vendor/llvm-project/master/clang/lib/Tooling/Syntax/Tree.cpp vendor/llvm-project/master/clang/lib/Tooling/Tooling.cpp vendor/llvm-project/master/clang/lib/Tooling/Transformer/RewriteRule.cpp vendor/llvm-project/master/clang/lib/Tooling/Transformer/Stencil.cpp vendor/llvm-project/master/clang/tools/clang-format/ClangFormat.cpp vendor/llvm-project/master/clang/tools/driver/cc1_main.cpp vendor/llvm-project/master/clang/tools/driver/cc1as_main.cpp vendor/llvm-project/master/clang/tools/driver/driver.cpp vendor/llvm-project/master/clang/utils/TableGen/ClangASTNodesEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/ClangAttrEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/ClangOpenCLBuiltinEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/ClangTypeNodesEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/NeonEmitter.cpp vendor/llvm-project/master/clang/utils/TableGen/TableGen.cpp vendor/llvm-project/master/clang/utils/TableGen/TableGenBackends.h vendor/llvm-project/master/compiler-rt/include/fuzzer/FuzzedDataProvider.h vendor/llvm-project/master/compiler-rt/include/sanitizer/asan_interface.h vendor/llvm-project/master/compiler-rt/include/sanitizer/netbsd_syscall_hooks.h vendor/llvm-project/master/compiler-rt/lib/asan/asan_allocator.cpp vendor/llvm-project/master/compiler-rt/lib/asan/asan_interface.inc vendor/llvm-project/master/compiler-rt/lib/asan/asan_interface_internal.h vendor/llvm-project/master/compiler-rt/lib/asan/asan_malloc_win.cpp vendor/llvm-project/master/compiler-rt/lib/builtins/clear_cache.c vendor/llvm-project/master/compiler-rt/lib/builtins/cpu_model.c vendor/llvm-project/master/compiler-rt/lib/builtins/ppc/fixunstfti.c vendor/llvm-project/master/compiler-rt/lib/crt/crtbegin.c vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerDefs.h vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerDriver.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerFlags.def vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerIO.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerIO.h vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerIOPosix.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerIOWindows.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtil.h vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtilDarwin.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtilFuchsia.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp vendor/llvm-project/master/compiler-rt/lib/fuzzer/FuzzerUtilWindows.cpp vendor/llvm-project/master/compiler-rt/lib/gwp_asan/definitions.h vendor/llvm-project/master/compiler-rt/lib/gwp_asan/guarded_pool_allocator.cpp vendor/llvm-project/master/compiler-rt/lib/gwp_asan/guarded_pool_allocator.h vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan.h vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_interceptors.cpp vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_interface_internal.h vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_linux.cpp vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_report.cpp vendor/llvm-project/master/compiler-rt/lib/hwasan/hwasan_tag_mismatch_aarch64.S vendor/llvm-project/master/compiler-rt/lib/lsan/lsan_allocator.cpp vendor/llvm-project/master/compiler-rt/lib/msan/msan.cpp vendor/llvm-project/master/compiler-rt/lib/msan/msan_allocator.cpp vendor/llvm-project/master/compiler-rt/lib/msan/msan_blacklist.txt vendor/llvm-project/master/compiler-rt/lib/msan/msan_interceptors.cpp vendor/llvm-project/master/compiler-rt/lib/profile/GCDAProfiling.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfiling.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfiling.h vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingBuffer.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingFile.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingInternal.h vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingMerge.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingMergeFile.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingPlatformFuchsia.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingPort.h vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingRuntime.cpp vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingUtil.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingUtil.h vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingValue.c vendor/llvm-project/master/compiler-rt/lib/profile/InstrProfilingWriter.c vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_common.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_flags.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_linux_s390.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_netbsd.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_posix.h vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_mac.cpp vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc vendor/llvm-project/master/compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/allocator_config.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/atomic_helpers.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/bytemap.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/checksum.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/checksum.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/chunk.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/combined.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/common.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/flags.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/flags.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/flags_parser.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/flags_parser.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/fuchsia.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/internal_defs.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/list.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/platform.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/primary32.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/primary64.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/quarantine.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/release.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/report.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/secondary.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/size_class_map.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/stats.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/tsd.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/tsd_exclusive.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/tsd_shared.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/vector.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/wrappers_c.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/wrappers_c.inc vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/wrappers_c_checks.h vendor/llvm-project/master/compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp vendor/llvm-project/master/compiler-rt/lib/tsan/rtl/tsan_mman.cpp vendor/llvm-project/master/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cpp vendor/llvm-project/master/libcxx/CREDITS.TXT vendor/llvm-project/master/libcxx/include/__bit_reference vendor/llvm-project/master/libcxx/include/__config vendor/llvm-project/master/libcxx/include/__debug vendor/llvm-project/master/libcxx/include/__functional_03 vendor/llvm-project/master/libcxx/include/__hash_table vendor/llvm-project/master/libcxx/include/__mutex_base vendor/llvm-project/master/libcxx/include/__split_buffer vendor/llvm-project/master/libcxx/include/__string vendor/llvm-project/master/libcxx/include/__threading_support vendor/llvm-project/master/libcxx/include/__tree vendor/llvm-project/master/libcxx/include/algorithm vendor/llvm-project/master/libcxx/include/bit vendor/llvm-project/master/libcxx/include/chrono vendor/llvm-project/master/libcxx/include/cstdlib vendor/llvm-project/master/libcxx/include/ctime vendor/llvm-project/master/libcxx/include/deque vendor/llvm-project/master/libcxx/include/experimental/functional vendor/llvm-project/master/libcxx/include/experimental/iterator vendor/llvm-project/master/libcxx/include/experimental/propagate_const vendor/llvm-project/master/libcxx/include/experimental/type_traits vendor/llvm-project/master/libcxx/include/ext/hash_map vendor/llvm-project/master/libcxx/include/filesystem vendor/llvm-project/master/libcxx/include/forward_list vendor/llvm-project/master/libcxx/include/future vendor/llvm-project/master/libcxx/include/iterator vendor/llvm-project/master/libcxx/include/list vendor/llvm-project/master/libcxx/include/math.h vendor/llvm-project/master/libcxx/include/memory vendor/llvm-project/master/libcxx/include/mutex vendor/llvm-project/master/libcxx/include/numeric vendor/llvm-project/master/libcxx/include/queue vendor/llvm-project/master/libcxx/include/random vendor/llvm-project/master/libcxx/include/regex vendor/llvm-project/master/libcxx/include/span vendor/llvm-project/master/libcxx/include/string vendor/llvm-project/master/libcxx/include/thread vendor/llvm-project/master/libcxx/include/tuple vendor/llvm-project/master/libcxx/include/type_traits vendor/llvm-project/master/libcxx/include/valarray vendor/llvm-project/master/libcxx/include/vector vendor/llvm-project/master/libcxx/include/version vendor/llvm-project/master/libcxx/src/algorithm.cpp vendor/llvm-project/master/libcxx/src/chrono.cpp vendor/llvm-project/master/libcxx/src/condition_variable.cpp vendor/llvm-project/master/libcxx/src/debug.cpp vendor/llvm-project/master/libcxx/src/experimental/memory_resource.cpp vendor/llvm-project/master/libcxx/src/filesystem/operations.cpp vendor/llvm-project/master/libcxx/src/locale.cpp vendor/llvm-project/master/libcxx/src/memory.cpp vendor/llvm-project/master/libcxx/src/mutex.cpp vendor/llvm-project/master/libcxx/src/mutex_destructor.cpp vendor/llvm-project/master/libcxx/src/regex.cpp vendor/llvm-project/master/libcxx/src/shared_mutex.cpp vendor/llvm-project/master/libcxx/src/thread.cpp vendor/llvm-project/master/libunwind/include/__libunwind_config.h vendor/llvm-project/master/libunwind/include/libunwind.h vendor/llvm-project/master/libunwind/src/AddressSpace.hpp vendor/llvm-project/master/libunwind/src/DwarfInstructions.hpp vendor/llvm-project/master/libunwind/src/RWMutex.hpp vendor/llvm-project/master/libunwind/src/Registers.hpp vendor/llvm-project/master/libunwind/src/UnwindCursor.hpp vendor/llvm-project/master/libunwind/src/UnwindLevel1-gcc-ext.c vendor/llvm-project/master/libunwind/src/UnwindRegistersRestore.S vendor/llvm-project/master/libunwind/src/UnwindRegistersSave.S vendor/llvm-project/master/libunwind/src/config.h vendor/llvm-project/master/libunwind/src/libunwind.cpp vendor/llvm-project/master/lld/COFF/Chunks.h vendor/llvm-project/master/lld/COFF/Config.h vendor/llvm-project/master/lld/COFF/DebugTypes.cpp vendor/llvm-project/master/lld/COFF/Driver.cpp vendor/llvm-project/master/lld/COFF/DriverUtils.cpp vendor/llvm-project/master/lld/COFF/InputFiles.cpp vendor/llvm-project/master/lld/COFF/InputFiles.h vendor/llvm-project/master/lld/COFF/MinGW.h vendor/llvm-project/master/lld/COFF/Options.td vendor/llvm-project/master/lld/COFF/PDB.cpp vendor/llvm-project/master/lld/COFF/SymbolTable.cpp vendor/llvm-project/master/lld/COFF/Symbols.h vendor/llvm-project/master/lld/COFF/Writer.cpp vendor/llvm-project/master/lld/Common/ErrorHandler.cpp vendor/llvm-project/master/lld/Common/Filesystem.cpp vendor/llvm-project/master/lld/ELF/AArch64ErrataFix.cpp vendor/llvm-project/master/lld/ELF/ARMErrataFix.cpp vendor/llvm-project/master/lld/ELF/Arch/AArch64.cpp vendor/llvm-project/master/lld/ELF/Arch/ARM.cpp vendor/llvm-project/master/lld/ELF/Arch/Hexagon.cpp vendor/llvm-project/master/lld/ELF/Arch/Mips.cpp vendor/llvm-project/master/lld/ELF/Arch/PPC.cpp vendor/llvm-project/master/lld/ELF/Arch/PPC64.cpp vendor/llvm-project/master/lld/ELF/Arch/RISCV.cpp vendor/llvm-project/master/lld/ELF/Arch/SPARCV9.cpp vendor/llvm-project/master/lld/ELF/Arch/X86.cpp vendor/llvm-project/master/lld/ELF/Arch/X86_64.cpp vendor/llvm-project/master/lld/ELF/CallGraphSort.cpp vendor/llvm-project/master/lld/ELF/Config.h vendor/llvm-project/master/lld/ELF/Driver.cpp vendor/llvm-project/master/lld/ELF/DriverUtils.cpp vendor/llvm-project/master/lld/ELF/ICF.cpp vendor/llvm-project/master/lld/ELF/InputFiles.cpp vendor/llvm-project/master/lld/ELF/InputFiles.h vendor/llvm-project/master/lld/ELF/InputSection.cpp vendor/llvm-project/master/lld/ELF/InputSection.h vendor/llvm-project/master/lld/ELF/LTO.cpp vendor/llvm-project/master/lld/ELF/LinkerScript.cpp vendor/llvm-project/master/lld/ELF/LinkerScript.h vendor/llvm-project/master/lld/ELF/MapFile.cpp vendor/llvm-project/master/lld/ELF/MarkLive.cpp vendor/llvm-project/master/lld/ELF/Options.td vendor/llvm-project/master/lld/ELF/OutputSections.cpp vendor/llvm-project/master/lld/ELF/Relocations.cpp vendor/llvm-project/master/lld/ELF/Relocations.h vendor/llvm-project/master/lld/ELF/SymbolTable.cpp vendor/llvm-project/master/lld/ELF/SymbolTable.h vendor/llvm-project/master/lld/ELF/Symbols.cpp vendor/llvm-project/master/lld/ELF/Symbols.h vendor/llvm-project/master/lld/ELF/SyntheticSections.cpp vendor/llvm-project/master/lld/ELF/SyntheticSections.h vendor/llvm-project/master/lld/ELF/Target.cpp vendor/llvm-project/master/lld/ELF/Target.h vendor/llvm-project/master/lld/ELF/Thunks.cpp vendor/llvm-project/master/lld/ELF/Thunks.h vendor/llvm-project/master/lld/ELF/Writer.cpp vendor/llvm-project/master/lld/docs/Driver.rst vendor/llvm-project/master/lld/docs/NewLLD.rst vendor/llvm-project/master/lld/docs/WebAssembly.rst vendor/llvm-project/master/lld/docs/conf.py vendor/llvm-project/master/lld/docs/index.rst vendor/llvm-project/master/lld/docs/ld.lld.1 vendor/llvm-project/master/lld/docs/windows_support.rst vendor/llvm-project/master/lld/include/lld/Common/Driver.h vendor/llvm-project/master/lld/include/lld/Common/ErrorHandler.h vendor/llvm-project/master/lld/include/lld/Common/LLVM.h vendor/llvm-project/master/lld/include/lld/Core/Atom.h vendor/llvm-project/master/lld/include/lld/Core/Error.h vendor/llvm-project/master/lld/include/lld/Core/Instrumentation.h vendor/llvm-project/master/lld/include/lld/Core/Reference.h vendor/llvm-project/master/lld/include/lld/Core/UndefinedAtom.h vendor/llvm-project/master/lld/include/lld/ReaderWriter/MachOLinkingContext.h vendor/llvm-project/master/lld/lib/Core/Resolver.cpp vendor/llvm-project/master/lld/lib/Core/SymbolTable.cpp vendor/llvm-project/master/lld/lib/Driver/DarwinLdDriver.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/File.h vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/GOTPass.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/LayoutPass.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp vendor/llvm-project/master/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp vendor/llvm-project/master/lld/tools/lld/lld.cpp vendor/llvm-project/master/lldb/include/lldb/API/SBBreakpoint.h vendor/llvm-project/master/lldb/include/lldb/API/SBBreakpointLocation.h vendor/llvm-project/master/lldb/include/lldb/API/SBBreakpointName.h vendor/llvm-project/master/lldb/include/lldb/API/SBReproducer.h vendor/llvm-project/master/lldb/include/lldb/API/SBStructuredData.h vendor/llvm-project/master/lldb/include/lldb/API/SBValue.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/Breakpoint.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointID.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointList.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointLocation.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointLocationCollection.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointLocationList.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointOptions.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointResolver.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/BreakpointSite.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/Watchpoint.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/WatchpointList.h vendor/llvm-project/master/lldb/include/lldb/Breakpoint/WatchpointOptions.h vendor/llvm-project/master/lldb/include/lldb/Core/Address.h vendor/llvm-project/master/lldb/include/lldb/Core/AddressRange.h vendor/llvm-project/master/lldb/include/lldb/Core/ClangForward.h vendor/llvm-project/master/lldb/include/lldb/Core/Debugger.h vendor/llvm-project/master/lldb/include/lldb/Core/Disassembler.h vendor/llvm-project/master/lldb/include/lldb/Core/FormatEntity.h vendor/llvm-project/master/lldb/include/lldb/Core/Highlighter.h vendor/llvm-project/master/lldb/include/lldb/Core/IOHandler.h vendor/llvm-project/master/lldb/include/lldb/Core/Mangled.h vendor/llvm-project/master/lldb/include/lldb/Core/Module.h vendor/llvm-project/master/lldb/include/lldb/Core/ModuleChild.h vendor/llvm-project/master/lldb/include/lldb/Core/ModuleList.h vendor/llvm-project/master/lldb/include/lldb/Core/ModuleSpec.h vendor/llvm-project/master/lldb/include/lldb/Core/PropertiesBase.td vendor/llvm-project/master/lldb/include/lldb/Core/SearchFilter.h vendor/llvm-project/master/lldb/include/lldb/Core/SourceManager.h vendor/llvm-project/master/lldb/include/lldb/Core/StreamFile.h vendor/llvm-project/master/lldb/include/lldb/Core/ThreadSafeDenseMap.h vendor/llvm-project/master/lldb/include/lldb/Core/ValueObject.h vendor/llvm-project/master/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/DataVisualization.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/FormatCache.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/FormatClasses.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/FormatManager.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/FormattersContainer.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/LanguageCategory.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/TypeCategory.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/TypeCategoryMap.h vendor/llvm-project/master/lldb/include/lldb/DataFormatters/ValueObjectPrinter.h vendor/llvm-project/master/lldb/include/lldb/Expression/DWARFExpression.h vendor/llvm-project/master/lldb/include/lldb/Expression/Expression.h vendor/llvm-project/master/lldb/include/lldb/Expression/ExpressionParser.h vendor/llvm-project/master/lldb/include/lldb/Expression/ExpressionSourceCode.h vendor/llvm-project/master/lldb/include/lldb/Expression/ExpressionVariable.h vendor/llvm-project/master/lldb/include/lldb/Expression/FunctionCaller.h vendor/llvm-project/master/lldb/include/lldb/Expression/IRExecutionUnit.h vendor/llvm-project/master/lldb/include/lldb/Expression/LLVMUserExpression.h vendor/llvm-project/master/lldb/include/lldb/Expression/REPL.h vendor/llvm-project/master/lldb/include/lldb/Expression/UserExpression.h vendor/llvm-project/master/lldb/include/lldb/Expression/UtilityFunction.h vendor/llvm-project/master/lldb/include/lldb/Host/Config.h.cmake vendor/llvm-project/master/lldb/include/lldb/Host/Editline.h vendor/llvm-project/master/lldb/include/lldb/Host/File.h vendor/llvm-project/master/lldb/include/lldb/Host/HostInfoBase.h vendor/llvm-project/master/lldb/include/lldb/Host/HostProcess.h vendor/llvm-project/master/lldb/include/lldb/Host/PseudoTerminal.h vendor/llvm-project/master/lldb/include/lldb/Host/SocketAddress.h vendor/llvm-project/master/lldb/include/lldb/Host/Terminal.h vendor/llvm-project/master/lldb/include/lldb/Host/XML.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/CommandInterpreter.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/CommandObject.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/CommandReturnObject.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/OptionGroupPythonClassWithDict.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/OptionValue.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/OptionValueProperties.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/Options.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/Property.h vendor/llvm-project/master/lldb/include/lldb/Interpreter/ScriptInterpreter.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Block.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangASTContext.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangASTImporter.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ClangUtil.h vendor/llvm-project/master/lldb/include/lldb/Symbol/CompileUnit.h vendor/llvm-project/master/lldb/include/lldb/Symbol/CompilerDecl.h vendor/llvm-project/master/lldb/include/lldb/Symbol/CompilerDeclContext.h vendor/llvm-project/master/lldb/include/lldb/Symbol/CompilerType.h vendor/llvm-project/master/lldb/include/lldb/Symbol/DebugMacros.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Declaration.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Function.h vendor/llvm-project/master/lldb/include/lldb/Symbol/LineEntry.h vendor/llvm-project/master/lldb/include/lldb/Symbol/LineTable.h vendor/llvm-project/master/lldb/include/lldb/Symbol/ObjectFile.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Symbol.h vendor/llvm-project/master/lldb/include/lldb/Symbol/SymbolContext.h vendor/llvm-project/master/lldb/include/lldb/Symbol/SymbolFile.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Symtab.h vendor/llvm-project/master/lldb/include/lldb/Symbol/Type.h vendor/llvm-project/master/lldb/include/lldb/Symbol/TypeSystem.h vendor/llvm-project/master/lldb/include/lldb/Symbol/VariableList.h vendor/llvm-project/master/lldb/include/lldb/Target/ABI.h vendor/llvm-project/master/lldb/include/lldb/Target/Language.h vendor/llvm-project/master/lldb/include/lldb/Target/MemoryRegionInfo.h vendor/llvm-project/master/lldb/include/lldb/Target/Platform.h vendor/llvm-project/master/lldb/include/lldb/Target/Process.h vendor/llvm-project/master/lldb/include/lldb/Target/Queue.h vendor/llvm-project/master/lldb/include/lldb/Target/StackFrame.h vendor/llvm-project/master/lldb/include/lldb/Target/Target.h vendor/llvm-project/master/lldb/include/lldb/Target/TargetList.h vendor/llvm-project/master/lldb/include/lldb/Target/Thread.h vendor/llvm-project/master/lldb/include/lldb/Target/ThreadPlanStepOut.h vendor/llvm-project/master/lldb/include/lldb/Target/ThreadPlanStepRange.h vendor/llvm-project/master/lldb/include/lldb/Utility/ArchSpec.h vendor/llvm-project/master/lldb/include/lldb/Utility/Args.h vendor/llvm-project/master/lldb/include/lldb/Utility/Baton.h vendor/llvm-project/master/lldb/include/lldb/Utility/Broadcaster.h vendor/llvm-project/master/lldb/include/lldb/Utility/Connection.h vendor/llvm-project/master/lldb/include/lldb/Utility/ConstString.h vendor/llvm-project/master/lldb/include/lldb/Utility/DataEncoder.h vendor/llvm-project/master/lldb/include/lldb/Utility/DataExtractor.h vendor/llvm-project/master/lldb/include/lldb/Utility/FileSpec.h vendor/llvm-project/master/lldb/include/lldb/Utility/Flags.h vendor/llvm-project/master/lldb/include/lldb/Utility/GDBRemote.h vendor/llvm-project/master/lldb/include/lldb/Utility/Log.h vendor/llvm-project/master/lldb/include/lldb/Utility/RangeMap.h vendor/llvm-project/master/lldb/include/lldb/Utility/Reproducer.h vendor/llvm-project/master/lldb/include/lldb/Utility/Scalar.h vendor/llvm-project/master/lldb/include/lldb/Utility/Status.h vendor/llvm-project/master/lldb/include/lldb/Utility/Stream.h vendor/llvm-project/master/lldb/include/lldb/Utility/StringExtractorGDBRemote.h vendor/llvm-project/master/lldb/include/lldb/Utility/VMRange.h vendor/llvm-project/master/lldb/include/lldb/lldb-enumerations.h vendor/llvm-project/master/lldb/include/lldb/lldb-forward.h vendor/llvm-project/master/lldb/include/lldb/lldb-private-interfaces.h vendor/llvm-project/master/lldb/source/API/SBBreakpoint.cpp vendor/llvm-project/master/lldb/source/API/SBBreakpointLocation.cpp vendor/llvm-project/master/lldb/source/API/SBBreakpointName.cpp vendor/llvm-project/master/lldb/source/API/SBCompileUnit.cpp vendor/llvm-project/master/lldb/source/API/SBDebugger.cpp vendor/llvm-project/master/lldb/source/API/SBEvent.cpp vendor/llvm-project/master/lldb/source/API/SBFile.cpp vendor/llvm-project/master/lldb/source/API/SBFileSpec.cpp vendor/llvm-project/master/lldb/source/API/SBFrame.cpp vendor/llvm-project/master/lldb/source/API/SBHostOS.cpp vendor/llvm-project/master/lldb/source/API/SBModule.cpp vendor/llvm-project/master/lldb/source/API/SBReproducer.cpp vendor/llvm-project/master/lldb/source/API/SBTarget.cpp vendor/llvm-project/master/lldb/source/API/SBThread.cpp vendor/llvm-project/master/lldb/source/API/SBType.cpp vendor/llvm-project/master/lldb/source/API/SBValue.cpp vendor/llvm-project/master/lldb/source/API/SystemInitializerFull.cpp vendor/llvm-project/master/lldb/source/Breakpoint/Breakpoint.cpp vendor/llvm-project/master/lldb/source/Breakpoint/BreakpointList.cpp vendor/llvm-project/master/lldb/source/Breakpoint/BreakpointLocation.cpp vendor/llvm-project/master/lldb/source/Breakpoint/BreakpointOptions.cpp vendor/llvm-project/master/lldb/source/Breakpoint/BreakpointResolverFileRegex.cpp vendor/llvm-project/master/lldb/source/Breakpoint/WatchpointOptions.cpp vendor/llvm-project/master/lldb/source/Commands/CommandCompletions.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectApropos.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectBreakpoint.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectBreakpoint.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectBreakpointCommand.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectBreakpointCommand.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectCommands.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectCommands.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectDisassemble.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectExpression.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectExpression.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectFrame.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectFrame.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectGUI.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectHelp.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectLanguage.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectLanguage.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectLog.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectLog.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectMemory.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectMultiword.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectPlatform.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectPlatform.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectPlugin.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectPlugin.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectProcess.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectRegister.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectReproducer.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectReproducer.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectSettings.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectSettings.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectSource.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectSource.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectStats.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectStats.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectTarget.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectTarget.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectThread.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectType.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectType.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectVersion.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectWatchpoint.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectWatchpoint.h vendor/llvm-project/master/lldb/source/Commands/CommandObjectWatchpointCommand.cpp vendor/llvm-project/master/lldb/source/Commands/CommandObjectWatchpointCommand.h vendor/llvm-project/master/lldb/source/Commands/Options.td vendor/llvm-project/master/lldb/source/Core/Address.cpp vendor/llvm-project/master/lldb/source/Core/AddressRange.cpp vendor/llvm-project/master/lldb/source/Core/AddressResolverFileLine.cpp vendor/llvm-project/master/lldb/source/Core/Debugger.cpp vendor/llvm-project/master/lldb/source/Core/Disassembler.cpp vendor/llvm-project/master/lldb/source/Core/DumpDataExtractor.cpp vendor/llvm-project/master/lldb/source/Core/FileLineResolver.cpp vendor/llvm-project/master/lldb/source/Core/FileSpecList.cpp vendor/llvm-project/master/lldb/source/Core/FormatEntity.cpp vendor/llvm-project/master/lldb/source/Core/IOHandler.cpp vendor/llvm-project/master/lldb/source/Core/Mangled.cpp vendor/llvm-project/master/lldb/source/Core/Module.cpp vendor/llvm-project/master/lldb/source/Core/ModuleList.cpp vendor/llvm-project/master/lldb/source/Core/PluginManager.cpp vendor/llvm-project/master/lldb/source/Core/SearchFilter.cpp vendor/llvm-project/master/lldb/source/Core/Section.cpp vendor/llvm-project/master/lldb/source/Core/SourceManager.cpp vendor/llvm-project/master/lldb/source/Core/StreamFile.cpp vendor/llvm-project/master/lldb/source/Core/Value.cpp vendor/llvm-project/master/lldb/source/Core/ValueObject.cpp vendor/llvm-project/master/lldb/source/Core/ValueObjectSyntheticFilter.cpp vendor/llvm-project/master/lldb/source/Core/ValueObjectVariable.cpp vendor/llvm-project/master/lldb/source/DataFormatters/DataVisualization.cpp vendor/llvm-project/master/lldb/source/DataFormatters/FormatCache.cpp vendor/llvm-project/master/lldb/source/DataFormatters/FormatClasses.cpp vendor/llvm-project/master/lldb/source/DataFormatters/FormatManager.cpp vendor/llvm-project/master/lldb/source/DataFormatters/LanguageCategory.cpp vendor/llvm-project/master/lldb/source/DataFormatters/TypeCategory.cpp vendor/llvm-project/master/lldb/source/DataFormatters/TypeCategoryMap.cpp vendor/llvm-project/master/lldb/source/DataFormatters/ValueObjectPrinter.cpp vendor/llvm-project/master/lldb/source/Expression/DWARFExpression.cpp vendor/llvm-project/master/lldb/source/Expression/Expression.cpp vendor/llvm-project/master/lldb/source/Expression/FunctionCaller.cpp vendor/llvm-project/master/lldb/source/Expression/IRExecutionUnit.cpp vendor/llvm-project/master/lldb/source/Expression/IRInterpreter.cpp vendor/llvm-project/master/lldb/source/Expression/IRMemoryMap.cpp vendor/llvm-project/master/lldb/source/Expression/LLVMUserExpression.cpp vendor/llvm-project/master/lldb/source/Expression/REPL.cpp vendor/llvm-project/master/lldb/source/Expression/UserExpression.cpp vendor/llvm-project/master/lldb/source/Expression/UtilityFunction.cpp vendor/llvm-project/master/lldb/source/Host/common/Editline.cpp vendor/llvm-project/master/lldb/source/Host/common/File.cpp vendor/llvm-project/master/lldb/source/Host/common/Host.cpp vendor/llvm-project/master/lldb/source/Host/common/HostInfoBase.cpp vendor/llvm-project/master/lldb/source/Host/common/MainLoop.cpp vendor/llvm-project/master/lldb/source/Host/common/NativeProcessProtocol.cpp vendor/llvm-project/master/lldb/source/Host/common/PseudoTerminal.cpp vendor/llvm-project/master/lldb/source/Host/common/Socket.cpp vendor/llvm-project/master/lldb/source/Host/common/SocketAddress.cpp vendor/llvm-project/master/lldb/source/Host/common/TCPSocket.cpp vendor/llvm-project/master/lldb/source/Host/common/Terminal.cpp vendor/llvm-project/master/lldb/source/Host/common/UDPSocket.cpp vendor/llvm-project/master/lldb/source/Host/common/XML.cpp vendor/llvm-project/master/lldb/source/Host/netbsd/Host.cpp vendor/llvm-project/master/lldb/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/llvm-project/master/lldb/source/Host/posix/PipePosix.cpp vendor/llvm-project/master/lldb/source/Interpreter/CommandInterpreter.cpp vendor/llvm-project/master/lldb/source/Interpreter/CommandObjectScript.cpp vendor/llvm-project/master/lldb/source/Interpreter/OptionArgParser.cpp vendor/llvm-project/master/lldb/source/Interpreter/OptionGroupPythonClassWithDict.cpp vendor/llvm-project/master/lldb/source/Interpreter/OptionGroupValueObjectDisplay.cpp vendor/llvm-project/master/lldb/source/Interpreter/OptionValueFileSpecList.cpp vendor/llvm-project/master/lldb/source/Interpreter/OptionValueProperties.cpp vendor/llvm-project/master/lldb/source/Interpreter/Property.cpp vendor/llvm-project/master/lldb/source/Interpreter/ScriptInterpreter.cpp vendor/llvm-project/master/lldb/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp vendor/llvm-project/master/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangDeclVendor.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionSourceCode.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangPersistentVariables.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/IRDynamicChecks.h vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp vendor/llvm-project/master/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h vendor/llvm-project/master/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp vendor/llvm-project/master/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp vendor/llvm-project/master/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp vendor/llvm-project/master/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h vendor/llvm-project/master/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ClangCommon/ClangHighlighter.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/Cocoa.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSArray.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSError.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSException.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSIndexPath.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/NSString.cpp vendor/llvm-project/master/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTrampolineHandler.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.h vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp vendor/llvm-project/master/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp vendor/llvm-project/master/lldb/source/Plugins/ObjectFile/Breakpad/BreakpadRecords.cpp vendor/llvm-project/master/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp vendor/llvm-project/master/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp vendor/llvm-project/master/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h vendor/llvm-project/master/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h vendor/llvm-project/master/lldb/source/Plugins/Process/POSIX/CrashReason.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_i386.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_x86_64.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h vendor/llvm-project/master/lldb/source/Plugins/Process/Utility/lldb-x86-register-enums.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationReplayServer.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemoteProperties.td vendor/llvm-project/master/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/minidump/MinidumpParser.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/minidump/MinidumpParser.h vendor/llvm-project/master/lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp vendor/llvm-project/master/lldb/source/Plugins/Process/minidump/ProcessMinidump.h vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h vendor/llvm-project/master/lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFContext.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFDeclContext.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFTypeUnit.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp vendor/llvm-project/master/lldb/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.h vendor/llvm-project/master/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp vendor/llvm-project/master/lldb/source/Symbol/Block.cpp vendor/llvm-project/master/lldb/source/Symbol/ClangASTContext.cpp vendor/llvm-project/master/lldb/source/Symbol/ClangASTImporter.cpp vendor/llvm-project/master/lldb/source/Symbol/ClangExternalASTSourceCallbacks.cpp vendor/llvm-project/master/lldb/source/Symbol/ClangUtil.cpp vendor/llvm-project/master/lldb/source/Symbol/CompileUnit.cpp vendor/llvm-project/master/lldb/source/Symbol/CompilerDecl.cpp vendor/llvm-project/master/lldb/source/Symbol/CompilerDeclContext.cpp vendor/llvm-project/master/lldb/source/Symbol/CompilerType.cpp vendor/llvm-project/master/lldb/source/Symbol/Declaration.cpp vendor/llvm-project/master/lldb/source/Symbol/FuncUnwinders.cpp vendor/llvm-project/master/lldb/source/Symbol/Function.cpp vendor/llvm-project/master/lldb/source/Symbol/LineEntry.cpp vendor/llvm-project/master/lldb/source/Symbol/LineTable.cpp vendor/llvm-project/master/lldb/source/Symbol/LocateSymbolFile.cpp vendor/llvm-project/master/lldb/source/Symbol/LocateSymbolFileMacOSX.cpp vendor/llvm-project/master/lldb/source/Symbol/ObjectFile.cpp vendor/llvm-project/master/lldb/source/Symbol/Symbol.cpp vendor/llvm-project/master/lldb/source/Symbol/SymbolContext.cpp vendor/llvm-project/master/lldb/source/Symbol/SymbolFile.cpp vendor/llvm-project/master/lldb/source/Symbol/Symtab.cpp vendor/llvm-project/master/lldb/source/Symbol/Type.cpp vendor/llvm-project/master/lldb/source/Symbol/TypeSystem.cpp vendor/llvm-project/master/lldb/source/Symbol/Variable.cpp vendor/llvm-project/master/lldb/source/Target/ABI.cpp vendor/llvm-project/master/lldb/source/Target/Language.cpp vendor/llvm-project/master/lldb/source/Target/LanguageRuntime.cpp vendor/llvm-project/master/lldb/source/Target/Platform.cpp vendor/llvm-project/master/lldb/source/Target/Process.cpp vendor/llvm-project/master/lldb/source/Target/StackFrame.cpp vendor/llvm-project/master/lldb/source/Target/StackFrameList.cpp vendor/llvm-project/master/lldb/source/Target/StackFrameRecognizer.cpp vendor/llvm-project/master/lldb/source/Target/Target.cpp vendor/llvm-project/master/lldb/source/Target/TargetList.cpp vendor/llvm-project/master/lldb/source/Target/TargetProperties.td vendor/llvm-project/master/lldb/source/Target/ThreadPlanRunToAddress.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepInRange.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepInstruction.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepOut.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepOverRange.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepRange.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanStepThrough.cpp vendor/llvm-project/master/lldb/source/Target/ThreadPlanTracer.cpp vendor/llvm-project/master/lldb/source/Utility/ArchSpec.cpp vendor/llvm-project/master/lldb/source/Utility/Baton.cpp vendor/llvm-project/master/lldb/source/Utility/Broadcaster.cpp vendor/llvm-project/master/lldb/source/Utility/ConstString.cpp vendor/llvm-project/master/lldb/source/Utility/DataBufferLLVM.cpp vendor/llvm-project/master/lldb/source/Utility/DataEncoder.cpp vendor/llvm-project/master/lldb/source/Utility/DataExtractor.cpp vendor/llvm-project/master/lldb/source/Utility/Environment.cpp vendor/llvm-project/master/lldb/source/Utility/FileSpec.cpp vendor/llvm-project/master/lldb/source/Utility/GDBRemote.cpp vendor/llvm-project/master/lldb/source/Utility/LLDBAssert.cpp vendor/llvm-project/master/lldb/source/Utility/ProcessInfo.cpp vendor/llvm-project/master/lldb/source/Utility/RegisterValue.cpp vendor/llvm-project/master/lldb/source/Utility/Reproducer.cpp vendor/llvm-project/master/lldb/source/Utility/Scalar.cpp vendor/llvm-project/master/lldb/source/Utility/Status.cpp vendor/llvm-project/master/lldb/source/Utility/Stream.cpp vendor/llvm-project/master/lldb/source/Utility/StreamString.cpp vendor/llvm-project/master/lldb/source/Utility/StructuredData.cpp vendor/llvm-project/master/lldb/source/Utility/VMRange.cpp vendor/llvm-project/master/lldb/tools/driver/Driver.cpp vendor/llvm-project/master/lldb/tools/driver/Options.td vendor/llvm-project/master/lldb/tools/lldb-server/lldb-gdbserver.cpp vendor/llvm-project/master/lldb/tools/lldb-server/lldb-server.cpp vendor/llvm-project/master/lldb/utils/TableGen/LLDBPropertyDefEmitter.cpp vendor/llvm-project/master/llvm/include/llvm-c/Analysis.h vendor/llvm-project/master/llvm/include/llvm-c/BitReader.h vendor/llvm-project/master/llvm/include/llvm-c/BitWriter.h vendor/llvm-project/master/llvm/include/llvm-c/Comdat.h vendor/llvm-project/master/llvm/include/llvm-c/Core.h vendor/llvm-project/master/llvm/include/llvm-c/DebugInfo.h vendor/llvm-project/master/llvm/include/llvm-c/Disassembler.h vendor/llvm-project/master/llvm/include/llvm-c/Error.h vendor/llvm-project/master/llvm/include/llvm-c/ErrorHandling.h vendor/llvm-project/master/llvm/include/llvm-c/ExecutionEngine.h vendor/llvm-project/master/llvm/include/llvm-c/IRReader.h vendor/llvm-project/master/llvm/include/llvm-c/Initialization.h vendor/llvm-project/master/llvm/include/llvm-c/LinkTimeOptimizer.h vendor/llvm-project/master/llvm/include/llvm-c/Linker.h vendor/llvm-project/master/llvm/include/llvm-c/Object.h vendor/llvm-project/master/llvm/include/llvm-c/OrcBindings.h vendor/llvm-project/master/llvm/include/llvm-c/Remarks.h vendor/llvm-project/master/llvm/include/llvm-c/Support.h vendor/llvm-project/master/llvm/include/llvm-c/Target.h vendor/llvm-project/master/llvm/include/llvm-c/TargetMachine.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/AggressiveInstCombine.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/Coroutines.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/IPO.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/InstCombine.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/PassManagerBuilder.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/Scalar.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/Utils.h vendor/llvm-project/master/llvm/include/llvm-c/Transforms/Vectorize.h vendor/llvm-project/master/llvm/include/llvm-c/Types.h vendor/llvm-project/master/llvm/include/llvm-c/lto.h vendor/llvm-project/master/llvm/include/llvm/ADT/APFloat.h vendor/llvm-project/master/llvm/include/llvm/ADT/APInt.h vendor/llvm-project/master/llvm/include/llvm/ADT/ArrayRef.h vendor/llvm-project/master/llvm/include/llvm/ADT/BitVector.h vendor/llvm-project/master/llvm/include/llvm/ADT/DenseMap.h vendor/llvm-project/master/llvm/include/llvm/ADT/DirectedGraph.h vendor/llvm-project/master/llvm/include/llvm/ADT/FoldingSet.h vendor/llvm-project/master/llvm/include/llvm/ADT/Hashing.h vendor/llvm-project/master/llvm/include/llvm/ADT/ImmutableSet.h vendor/llvm-project/master/llvm/include/llvm/ADT/Optional.h vendor/llvm-project/master/llvm/include/llvm/ADT/PointerUnion.h vendor/llvm-project/master/llvm/include/llvm/ADT/SCCIterator.h vendor/llvm-project/master/llvm/include/llvm/ADT/STLExtras.h vendor/llvm-project/master/llvm/include/llvm/ADT/SmallPtrSet.h vendor/llvm-project/master/llvm/include/llvm/ADT/SmallSet.h vendor/llvm-project/master/llvm/include/llvm/ADT/SmallVector.h vendor/llvm-project/master/llvm/include/llvm/ADT/Statistic.h vendor/llvm-project/master/llvm/include/llvm/ADT/StringRef.h vendor/llvm-project/master/llvm/include/llvm/ADT/Triple.h vendor/llvm-project/master/llvm/include/llvm/ADT/Twine.h vendor/llvm-project/master/llvm/include/llvm/ADT/iterator.h vendor/llvm-project/master/llvm/include/llvm/ADT/iterator_range.h vendor/llvm-project/master/llvm/include/llvm/Analysis/AliasAnalysis.h vendor/llvm-project/master/llvm/include/llvm/Analysis/AliasSetTracker.h vendor/llvm-project/master/llvm/include/llvm/Analysis/BranchProbabilityInfo.h vendor/llvm-project/master/llvm/include/llvm/Analysis/DDG.h vendor/llvm-project/master/llvm/include/llvm/Analysis/DependenceAnalysis.h vendor/llvm-project/master/llvm/include/llvm/Analysis/DependenceGraphBuilder.h vendor/llvm-project/master/llvm/include/llvm/Analysis/GlobalsModRef.h vendor/llvm-project/master/llvm/include/llvm/Analysis/GuardUtils.h vendor/llvm-project/master/llvm/include/llvm/Analysis/InstructionSimplify.h vendor/llvm-project/master/llvm/include/llvm/Analysis/IntervalPartition.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LazyValueInfo.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LoopAccessAnalysis.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LoopInfo.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LoopInfoImpl.h vendor/llvm-project/master/llvm/include/llvm/Analysis/LoopPass.h vendor/llvm-project/master/llvm/include/llvm/Analysis/MemorySSA.h vendor/llvm-project/master/llvm/include/llvm/Analysis/MustExecute.h vendor/llvm-project/master/llvm/include/llvm/Analysis/PhiValues.h vendor/llvm-project/master/llvm/include/llvm/Analysis/PostDominators.h vendor/llvm-project/master/llvm/include/llvm/Analysis/PtrUseVisitor.h vendor/llvm-project/master/llvm/include/llvm/Analysis/ScalarEvolution.h vendor/llvm-project/master/llvm/include/llvm/Analysis/TargetLibraryInfo.h vendor/llvm-project/master/llvm/include/llvm/Analysis/TargetTransformInfo.h vendor/llvm-project/master/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h vendor/llvm-project/master/llvm/include/llvm/Analysis/Utils/Local.h vendor/llvm-project/master/llvm/include/llvm/Analysis/ValueTracking.h vendor/llvm-project/master/llvm/include/llvm/Analysis/VecFuncs.def vendor/llvm-project/master/llvm/include/llvm/Analysis/VectorUtils.h vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/COFF.h vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/Dwarf.def vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/Dwarf.h vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/ELF.h vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/MinidumpConstants.def vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/Wasm.h vendor/llvm-project/master/llvm/include/llvm/BinaryFormat/XCOFF.h vendor/llvm-project/master/llvm/include/llvm/Bitcode/BitcodeWriter.h vendor/llvm-project/master/llvm/include/llvm/Bitcode/LLVMBitCodes.h vendor/llvm-project/master/llvm/include/llvm/Bitstream/BitstreamReader.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/AsmPrinter.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/BasicTTIImpl.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/CommandFlags.inc vendor/llvm-project/master/llvm/include/llvm/CodeGen/DFAPacketizer.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/DIE.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/FastISel.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/FaultMaps.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/Localizer.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/GlobalISel/Utils.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/ISDOpcodes.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveInterval.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveIntervalUnion.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveIntervals.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LivePhysRegs.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveRegUnits.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveStacks.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LiveVariables.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/LowLevelType.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MIRParser/MIParser.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MIRParser/MIRParser.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineCombinerPattern.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineDominators.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineFrameInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineFunction.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineInstr.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineInstrBuilder.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineInstrBundle.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineLoopInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineLoopUtils.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineMemOperand.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineOperand.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineOutliner.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachinePipeliner.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/MachineScheduler.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/ModuloSchedule.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/ParallelCG.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/Passes.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/PseudoSourceValue.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/ReachingDefAnalysis.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/RegisterUsageInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/SelectionDAG.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/SelectionDAGISel.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/SelectionDAGNodes.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/SlotIndexes.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/StackMaps.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/StackProtector.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/SwitchLoweringUtils.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TailDuplicator.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetCallingConv.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetFrameLowering.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetInstrInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetLowering.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetSchedule.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h vendor/llvm-project/master/llvm/include/llvm/CodeGen/ValueTypes.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/CodeView/TypeRecordHelpers.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFAddressRange.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRnglists.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/FunctionInfo.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/GsymCreator.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/GsymReader.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/InlineInfo.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/LineTable.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/GSYM/Range.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/PDB/Native/DbiModuleList.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/PDB/Native/HashTable.h vendor/llvm-project/master/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h vendor/llvm-project/master/llvm/include/llvm/Demangle/ItaniumDemangle.h vendor/llvm-project/master/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h vendor/llvm-project/master/llvm/include/llvm/Demangle/Utility.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/JITSymbol.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/Core.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/LLJIT.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/OrcABISupport.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h vendor/llvm-project/master/llvm/include/llvm/ExecutionEngine/Orc/Speculation.h vendor/llvm-project/master/llvm/include/llvm/IR/Argument.h vendor/llvm-project/master/llvm/include/llvm/IR/Attributes.td vendor/llvm-project/master/llvm/include/llvm/IR/AutoUpgrade.h vendor/llvm-project/master/llvm/include/llvm/IR/CallSite.h vendor/llvm-project/master/llvm/include/llvm/IR/CallingConv.h vendor/llvm-project/master/llvm/include/llvm/IR/Constant.h vendor/llvm-project/master/llvm/include/llvm/IR/ConstantRange.h vendor/llvm-project/master/llvm/include/llvm/IR/Constants.h vendor/llvm-project/master/llvm/include/llvm/IR/DIBuilder.h vendor/llvm-project/master/llvm/include/llvm/IR/DebugInfoFlags.def vendor/llvm-project/master/llvm/include/llvm/IR/DebugInfoMetadata.h vendor/llvm-project/master/llvm/include/llvm/IR/Dominators.h vendor/llvm-project/master/llvm/include/llvm/IR/Function.h vendor/llvm-project/master/llvm/include/llvm/IR/GlobalValue.h vendor/llvm-project/master/llvm/include/llvm/IR/IRBuilder.h vendor/llvm-project/master/llvm/include/llvm/IR/IRPrintingPasses.h vendor/llvm-project/master/llvm/include/llvm/IR/InstVisitor.h vendor/llvm-project/master/llvm/include/llvm/IR/InstrTypes.h vendor/llvm-project/master/llvm/include/llvm/IR/Instruction.def vendor/llvm-project/master/llvm/include/llvm/IR/Instruction.h vendor/llvm-project/master/llvm/include/llvm/IR/Instructions.h vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicInst.h vendor/llvm-project/master/llvm/include/llvm/IR/Intrinsics.h vendor/llvm-project/master/llvm/include/llvm/IR/Intrinsics.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsAArch64.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsAMDGPU.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsARM.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsNVVM.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsRISCV.td vendor/llvm-project/master/llvm/include/llvm/IR/IntrinsicsWebAssembly.td vendor/llvm-project/master/llvm/include/llvm/IR/LLVMContext.h vendor/llvm-project/master/llvm/include/llvm/IR/LegacyPassManager.h vendor/llvm-project/master/llvm/include/llvm/IR/LegacyPassManagers.h vendor/llvm-project/master/llvm/include/llvm/IR/Metadata.h vendor/llvm-project/master/llvm/include/llvm/IR/Module.h vendor/llvm-project/master/llvm/include/llvm/IR/ModuleSummaryIndex.h vendor/llvm-project/master/llvm/include/llvm/IR/NoFolder.h vendor/llvm-project/master/llvm/include/llvm/IR/Operator.h vendor/llvm-project/master/llvm/include/llvm/IR/PassManager.h vendor/llvm-project/master/llvm/include/llvm/IR/PatternMatch.h vendor/llvm-project/master/llvm/include/llvm/IR/RemarkStreamer.h vendor/llvm-project/master/llvm/include/llvm/IR/RuntimeLibcalls.def vendor/llvm-project/master/llvm/include/llvm/IR/ValueHandle.h vendor/llvm-project/master/llvm/include/llvm/InitializePasses.h vendor/llvm-project/master/llvm/include/llvm/LTO/Config.h vendor/llvm-project/master/llvm/include/llvm/LTO/LTO.h vendor/llvm-project/master/llvm/include/llvm/LTO/LTOBackend.h vendor/llvm-project/master/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h vendor/llvm-project/master/llvm/include/llvm/LinkAllPasses.h vendor/llvm-project/master/llvm/include/llvm/MC/MCAsmBackend.h vendor/llvm-project/master/llvm/include/llvm/MC/MCAsmInfo.h vendor/llvm-project/master/llvm/include/llvm/MC/MCAsmInfoELF.h vendor/llvm-project/master/llvm/include/llvm/MC/MCAsmInfoXCOFF.h vendor/llvm-project/master/llvm/include/llvm/MC/MCAssembler.h vendor/llvm-project/master/llvm/include/llvm/MC/MCCodeEmitter.h vendor/llvm-project/master/llvm/include/llvm/MC/MCDisassembler/MCDisassembler.h vendor/llvm-project/master/llvm/include/llvm/MC/MCDwarf.h vendor/llvm-project/master/llvm/include/llvm/MC/MCELFStreamer.h vendor/llvm-project/master/llvm/include/llvm/MC/MCFragment.h vendor/llvm-project/master/llvm/include/llvm/MC/MCInst.h vendor/llvm-project/master/llvm/include/llvm/MC/MCInstPrinter.h vendor/llvm-project/master/llvm/include/llvm/MC/MCInstrDesc.h vendor/llvm-project/master/llvm/include/llvm/MC/MCMachObjectWriter.h vendor/llvm-project/master/llvm/include/llvm/MC/MCObjectFileInfo.h vendor/llvm-project/master/llvm/include/llvm/MC/MCObjectStreamer.h vendor/llvm-project/master/llvm/include/llvm/MC/MCParser/AsmCond.h vendor/llvm-project/master/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h vendor/llvm-project/master/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h vendor/llvm-project/master/llvm/include/llvm/MC/MCRegisterInfo.h vendor/llvm-project/master/llvm/include/llvm/MC/MCSection.h vendor/llvm-project/master/llvm/include/llvm/MC/MCSectionXCOFF.h vendor/llvm-project/master/llvm/include/llvm/MC/MCStreamer.h vendor/llvm-project/master/llvm/include/llvm/MC/MCSymbol.h vendor/llvm-project/master/llvm/include/llvm/MC/MCSymbolWasm.h vendor/llvm-project/master/llvm/include/llvm/MC/MCSymbolXCOFF.h vendor/llvm-project/master/llvm/include/llvm/MC/MCTargetOptions.h vendor/llvm-project/master/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.inc vendor/llvm-project/master/llvm/include/llvm/MC/MCXCOFFStreamer.h vendor/llvm-project/master/llvm/include/llvm/Object/ELF.h vendor/llvm-project/master/llvm/include/llvm/Object/ELFObjectFile.h vendor/llvm-project/master/llvm/include/llvm/Object/MachO.h vendor/llvm-project/master/llvm/include/llvm/Object/ObjectFile.h vendor/llvm-project/master/llvm/include/llvm/Object/Wasm.h vendor/llvm-project/master/llvm/include/llvm/Object/XCOFFObjectFile.h vendor/llvm-project/master/llvm/include/llvm/ObjectYAML/DWARFYAML.h vendor/llvm-project/master/llvm/include/llvm/ObjectYAML/ELFYAML.h vendor/llvm-project/master/llvm/include/llvm/ObjectYAML/YAML.h vendor/llvm-project/master/llvm/include/llvm/Pass.h vendor/llvm-project/master/llvm/include/llvm/Passes/PassBuilder.h vendor/llvm-project/master/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h vendor/llvm-project/master/llvm/include/llvm/ProfileData/InstrProf.h vendor/llvm-project/master/llvm/include/llvm/ProfileData/InstrProfData.inc vendor/llvm-project/master/llvm/include/llvm/ProfileData/SampleProf.h vendor/llvm-project/master/llvm/include/llvm/ProfileData/SampleProfReader.h vendor/llvm-project/master/llvm/include/llvm/ProfileData/SampleProfWriter.h vendor/llvm-project/master/llvm/include/llvm/Remarks/Remark.h vendor/llvm-project/master/llvm/include/llvm/Remarks/RemarkFormat.h vendor/llvm-project/master/llvm/include/llvm/Support/AArch64TargetParser.def vendor/llvm-project/master/llvm/include/llvm/Support/AArch64TargetParser.h vendor/llvm-project/master/llvm/include/llvm/Support/AMDGPUMetadata.h vendor/llvm-project/master/llvm/include/llvm/Support/ARMTargetParser.def vendor/llvm-project/master/llvm/include/llvm/Support/Allocator.h vendor/llvm-project/master/llvm/include/llvm/Support/Automaton.h vendor/llvm-project/master/llvm/include/llvm/Support/BinaryStreamArray.h vendor/llvm-project/master/llvm/include/llvm/Support/BinaryStreamReader.h vendor/llvm-project/master/llvm/include/llvm/Support/BinaryStreamRef.h vendor/llvm-project/master/llvm/include/llvm/Support/CodeGen.h vendor/llvm-project/master/llvm/include/llvm/Support/CommandLine.h vendor/llvm-project/master/llvm/include/llvm/Support/Compiler.h vendor/llvm-project/master/llvm/include/llvm/Support/CrashRecoveryContext.h vendor/llvm-project/master/llvm/include/llvm/Support/DataExtractor.h vendor/llvm-project/master/llvm/include/llvm/Support/Error.h vendor/llvm-project/master/llvm/include/llvm/Support/FileCheck.h vendor/llvm-project/master/llvm/include/llvm/Support/FileCollector.h vendor/llvm-project/master/llvm/include/llvm/Support/FileOutputBuffer.h vendor/llvm-project/master/llvm/include/llvm/Support/FormatVariadic.h vendor/llvm-project/master/llvm/include/llvm/Support/GenericDomTree.h vendor/llvm-project/master/llvm/include/llvm/Support/InitLLVM.h vendor/llvm-project/master/llvm/include/llvm/Support/JSON.h vendor/llvm-project/master/llvm/include/llvm/Support/KnownBits.h vendor/llvm-project/master/llvm/include/llvm/Support/LineIterator.h vendor/llvm-project/master/llvm/include/llvm/Support/LockFileManager.h vendor/llvm-project/master/llvm/include/llvm/Support/LowLevelTypeImpl.h vendor/llvm-project/master/llvm/include/llvm/Support/MachineValueType.h vendor/llvm-project/master/llvm/include/llvm/Support/MathExtras.h vendor/llvm-project/master/llvm/include/llvm/Support/Memory.h vendor/llvm-project/master/llvm/include/llvm/Support/Path.h vendor/llvm-project/master/llvm/include/llvm/Support/Signals.h vendor/llvm-project/master/llvm/include/llvm/Support/SourceMgr.h vendor/llvm-project/master/llvm/include/llvm/Support/SpecialCaseList.h vendor/llvm-project/master/llvm/include/llvm/Support/TargetOpcodes.def vendor/llvm-project/master/llvm/include/llvm/Support/TargetRegistry.h vendor/llvm-project/master/llvm/include/llvm/Support/Threading.h vendor/llvm-project/master/llvm/include/llvm/Support/TimeProfiler.h vendor/llvm-project/master/llvm/include/llvm/Support/Timer.h vendor/llvm-project/master/llvm/include/llvm/Support/TypeSize.h vendor/llvm-project/master/llvm/include/llvm/Support/VersionTuple.h vendor/llvm-project/master/llvm/include/llvm/Support/VirtualFileSystem.h vendor/llvm-project/master/llvm/include/llvm/Support/YAMLTraits.h vendor/llvm-project/master/llvm/include/llvm/Support/raw_ostream.h vendor/llvm-project/master/llvm/include/llvm/TableGen/Record.h vendor/llvm-project/master/llvm/include/llvm/Target/GenericOpcodes.td vendor/llvm-project/master/llvm/include/llvm/Target/GlobalISel/Combine.td vendor/llvm-project/master/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td vendor/llvm-project/master/llvm/include/llvm/Target/GlobalISel/Target.td vendor/llvm-project/master/llvm/include/llvm/Target/Target.td vendor/llvm-project/master/llvm/include/llvm/Target/TargetCallingConv.td vendor/llvm-project/master/llvm/include/llvm/Target/TargetMachine.h vendor/llvm-project/master/llvm/include/llvm/Target/TargetOptions.h vendor/llvm-project/master/llvm/include/llvm/Target/TargetSelectionDAG.td vendor/llvm-project/master/llvm/include/llvm/Transforms/Coroutines.h vendor/llvm-project/master/llvm/include/llvm/Transforms/IPO/Attributor.h vendor/llvm-project/master/llvm/include/llvm/Transforms/IPO/FunctionImport.h vendor/llvm-project/master/llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h vendor/llvm-project/master/llvm/include/llvm/Transforms/InstCombine/InstCombine.h vendor/llvm-project/master/llvm/include/llvm/Transforms/InstCombine/InstCombineWorklist.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/GVN.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/JumpThreading.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/LICM.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/FunctionImportUtils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/GuardUtils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/Local.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/LoopUtils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/ModuleUtils.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/SizeOpts.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Vectorize.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h vendor/llvm-project/master/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h vendor/llvm-project/master/llvm/include/llvm/XRay/FDRRecords.h vendor/llvm-project/master/llvm/include/llvm/module.modulemap vendor/llvm-project/master/llvm/lib/Analysis/AliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp vendor/llvm-project/master/llvm/lib/Analysis/AliasSetTracker.cpp vendor/llvm-project/master/llvm/lib/Analysis/AssumptionCache.cpp vendor/llvm-project/master/llvm/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/BlockFrequencyInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/BranchProbabilityInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/CFGPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/CallGraph.cpp vendor/llvm-project/master/llvm/lib/Analysis/CallPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/ConstantFolding.cpp vendor/llvm-project/master/llvm/lib/Analysis/CostModel.cpp vendor/llvm-project/master/llvm/lib/Analysis/DDG.cpp vendor/llvm-project/master/llvm/lib/Analysis/Delinearization.cpp vendor/llvm-project/master/llvm/lib/Analysis/DemandedBits.cpp vendor/llvm-project/master/llvm/lib/Analysis/DependenceAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/DependenceGraphBuilder.cpp vendor/llvm-project/master/llvm/lib/Analysis/DomPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/DomTreeUpdater.cpp vendor/llvm-project/master/llvm/lib/Analysis/DominanceFrontier.cpp vendor/llvm-project/master/llvm/lib/Analysis/GlobalsModRef.cpp vendor/llvm-project/master/llvm/lib/Analysis/GuardUtils.cpp vendor/llvm-project/master/llvm/lib/Analysis/IVDescriptors.cpp vendor/llvm-project/master/llvm/lib/Analysis/IVUsers.cpp vendor/llvm-project/master/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/InlineCost.cpp vendor/llvm-project/master/llvm/lib/Analysis/InstCount.cpp vendor/llvm-project/master/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp vendor/llvm-project/master/llvm/lib/Analysis/InstructionSimplify.cpp vendor/llvm-project/master/llvm/lib/Analysis/IntervalPartition.cpp vendor/llvm-project/master/llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/LazyValueInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/Lint.cpp vendor/llvm-project/master/llvm/lib/Analysis/Loads.cpp vendor/llvm-project/master/llvm/lib/Analysis/LoopAccessAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/LoopCacheAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/LoopInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/LoopPass.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemDepPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemDerefPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemoryBuiltins.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemoryLocation.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemorySSA.cpp vendor/llvm-project/master/llvm/lib/Analysis/MemorySSAUpdater.cpp vendor/llvm-project/master/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/MustExecute.cpp vendor/llvm-project/master/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp vendor/llvm-project/master/llvm/lib/Analysis/PhiValues.cpp vendor/llvm-project/master/llvm/lib/Analysis/PostDominators.cpp vendor/llvm-project/master/llvm/lib/Analysis/ProfileSummaryInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/RegionInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/RegionPrinter.cpp vendor/llvm-project/master/llvm/lib/Analysis/ScalarEvolution.cpp vendor/llvm-project/master/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm-project/master/llvm/lib/Analysis/ScopedNoAliasAA.cpp vendor/llvm-project/master/llvm/lib/Analysis/StackSafetyAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/TargetLibraryInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/TargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp vendor/llvm-project/master/llvm/lib/Analysis/VFABIDemangling.cpp vendor/llvm-project/master/llvm/lib/Analysis/ValueTracking.cpp vendor/llvm-project/master/llvm/lib/Analysis/VectorUtils.cpp vendor/llvm-project/master/llvm/lib/AsmParser/LLLexer.cpp vendor/llvm-project/master/llvm/lib/AsmParser/LLParser.cpp vendor/llvm-project/master/llvm/lib/AsmParser/LLParser.h vendor/llvm-project/master/llvm/lib/AsmParser/LLToken.h vendor/llvm-project/master/llvm/lib/BinaryFormat/AMDGPUMetadataVerifier.cpp vendor/llvm-project/master/llvm/lib/BinaryFormat/Dwarf.cpp vendor/llvm-project/master/llvm/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm-project/master/llvm/lib/Bitcode/Reader/MetadataLoader.cpp vendor/llvm-project/master/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm-project/master/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp vendor/llvm-project/master/llvm/lib/Bitstream/Reader/BitstreamReader.cpp vendor/llvm-project/master/llvm/lib/CodeGen/Analysis.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DIE.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp vendor/llvm-project/master/llvm/lib/CodeGen/AsmPrinter/WinCFGuard.h vendor/llvm-project/master/llvm/lib/CodeGen/AtomicExpandPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/BranchFolding.cpp vendor/llvm-project/master/llvm/lib/CodeGen/BranchFolding.h vendor/llvm-project/master/llvm/lib/CodeGen/BranchRelaxation.cpp vendor/llvm-project/master/llvm/lib/CodeGen/BreakFalseDeps.cpp vendor/llvm-project/master/llvm/lib/CodeGen/CFIInstrInserter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/CodeGen.cpp vendor/llvm-project/master/llvm/lib/CodeGen/CodeGenPrepare.cpp vendor/llvm-project/master/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp vendor/llvm-project/master/llvm/lib/CodeGen/DFAPacketizer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp vendor/llvm-project/master/llvm/lib/CodeGen/DwarfEHPrepare.cpp vendor/llvm-project/master/llvm/lib/CodeGen/EarlyIfConversion.cpp vendor/llvm-project/master/llvm/lib/CodeGen/EdgeBundles.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ExpandMemCmp.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ExpandReductions.cpp vendor/llvm-project/master/llvm/lib/CodeGen/FEntryInserter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/FaultMaps.cpp vendor/llvm-project/master/llvm/lib/CodeGen/FinalizeISel.cpp vendor/llvm-project/master/llvm/lib/CodeGen/FuncletLayout.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GCMetadata.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GCRootLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/Localizer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalISel/Utils.cpp vendor/llvm-project/master/llvm/lib/CodeGen/GlobalMerge.cpp vendor/llvm-project/master/llvm/lib/CodeGen/HardwareLoops.cpp vendor/llvm-project/master/llvm/lib/CodeGen/IfConversion.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ImplicitNullChecks.cpp vendor/llvm-project/master/llvm/lib/CodeGen/IndirectBrExpandPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/InlineSpiller.cpp vendor/llvm-project/master/llvm/lib/CodeGen/InterleavedAccessPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/IntrinsicLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LLVMTargetMachine.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveDebugValues.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveDebugVariables.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveInterval.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveIntervals.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LivePhysRegs.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveRangeShrink.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveRegMatrix.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LiveRegUnits.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LowLevelType.cpp vendor/llvm-project/master/llvm/lib/CodeGen/LowerEmuTLS.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRNamerPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRParser/MILexer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRParser/MILexer.h vendor/llvm-project/master/llvm/lib/CodeGen/MIRParser/MIParser.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRParser/MIRParser.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRPrinter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRPrintingPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRVRegNamerUtils.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MIRVRegNamerUtils.h vendor/llvm-project/master/llvm/lib/CodeGen/MachineBasicBlock.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineBlockPlacement.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineCSE.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineCombiner.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineCopyPropagation.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineDominanceFrontier.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineDominators.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineFrameInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineFunction.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineInstr.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineInstrBundle.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineLICM.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineLoopInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineLoopUtils.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineModuleInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineOperand.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineOutliner.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachinePipeliner.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachinePostDominators.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineRegionInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineScheduler.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineSink.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineTraceMetrics.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MachineVerifier.cpp vendor/llvm-project/master/llvm/lib/CodeGen/MacroFusion.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ModuloSchedule.cpp vendor/llvm-project/master/llvm/lib/CodeGen/OptimizePHIs.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ParallelCG.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PatchableFunction.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PeepholeOptimizer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PostRASchedulerList.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ProcessImplicitDefs.cpp vendor/llvm-project/master/llvm/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ReachingDefAnalysis.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegAllocFast.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegAllocGreedy.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegUsageInfoCollector.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegisterClassInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegisterCoalescer.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RegisterScavenging.cpp vendor/llvm-project/master/llvm/lib/CodeGen/RenameIndependentSubregs.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SafeStack.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ShadowStackGCLowering.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ShrinkWrap.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SjLjEHPrepare.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SlotIndexes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SpillPlacement.cpp vendor/llvm-project/master/llvm/lib/CodeGen/StackColoring.cpp vendor/llvm-project/master/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp vendor/llvm-project/master/llvm/lib/CodeGen/StackMaps.cpp vendor/llvm-project/master/llvm/lib/CodeGen/StackProtector.cpp vendor/llvm-project/master/llvm/lib/CodeGen/StackSlotColoring.cpp vendor/llvm-project/master/llvm/lib/CodeGen/SwitchLoweringUtils.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TailDuplication.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TailDuplicator.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetInstrInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetLoweringBase.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetOptionsImpl.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetPassConfig.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TargetSubtargetInfo.cpp vendor/llvm-project/master/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp vendor/llvm-project/master/llvm/lib/CodeGen/UnreachableBlockElim.cpp vendor/llvm-project/master/llvm/lib/CodeGen/ValueTypes.cpp vendor/llvm-project/master/llvm/lib/CodeGen/WasmEHPrepare.cpp vendor/llvm-project/master/llvm/lib/CodeGen/WinEHPrepare.cpp vendor/llvm-project/master/llvm/lib/CodeGen/XRayInstrumentation.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/CodeView/SymbolRecordHelpers.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFAddressRange.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDebugRnglists.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/FunctionInfo.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/GsymReader.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/InlineInfo.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/LineTable.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/GSYM/Range.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptor.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp vendor/llvm-project/master/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp vendor/llvm-project/master/llvm/lib/Demangle/ItaniumDemangle.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/JITLink.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/CompileUtils.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/Core.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/LLJIT.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/Legacy.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp vendor/llvm-project/master/llvm/lib/ExecutionEngine/TargetSelect.cpp vendor/llvm-project/master/llvm/lib/IR/AbstractCallSite.cpp vendor/llvm-project/master/llvm/lib/IR/AsmWriter.cpp vendor/llvm-project/master/llvm/lib/IR/Attributes.cpp vendor/llvm-project/master/llvm/lib/IR/AutoUpgrade.cpp vendor/llvm-project/master/llvm/lib/IR/ConstantFold.cpp vendor/llvm-project/master/llvm/lib/IR/ConstantRange.cpp vendor/llvm-project/master/llvm/lib/IR/Constants.cpp vendor/llvm-project/master/llvm/lib/IR/ConstantsContext.h vendor/llvm-project/master/llvm/lib/IR/Core.cpp vendor/llvm-project/master/llvm/lib/IR/DIBuilder.cpp vendor/llvm-project/master/llvm/lib/IR/DataLayout.cpp vendor/llvm-project/master/llvm/lib/IR/DebugInfo.cpp vendor/llvm-project/master/llvm/lib/IR/DebugInfoMetadata.cpp vendor/llvm-project/master/llvm/lib/IR/Dominators.cpp vendor/llvm-project/master/llvm/lib/IR/Function.cpp vendor/llvm-project/master/llvm/lib/IR/IRBuilder.cpp vendor/llvm-project/master/llvm/lib/IR/IRPrintingPasses.cpp vendor/llvm-project/master/llvm/lib/IR/Instruction.cpp vendor/llvm-project/master/llvm/lib/IR/Instructions.cpp vendor/llvm-project/master/llvm/lib/IR/IntrinsicInst.cpp vendor/llvm-project/master/llvm/lib/IR/LLVMContext.cpp vendor/llvm-project/master/llvm/lib/IR/LLVMContextImpl.h vendor/llvm-project/master/llvm/lib/IR/LegacyPassManager.cpp vendor/llvm-project/master/llvm/lib/IR/Metadata.cpp vendor/llvm-project/master/llvm/lib/IR/Module.cpp vendor/llvm-project/master/llvm/lib/IR/ModuleSummaryIndex.cpp vendor/llvm-project/master/llvm/lib/IR/Pass.cpp vendor/llvm-project/master/llvm/lib/IR/RemarkStreamer.cpp vendor/llvm-project/master/llvm/lib/IR/SafepointIRVerifier.cpp vendor/llvm-project/master/llvm/lib/IR/TypeFinder.cpp vendor/llvm-project/master/llvm/lib/IR/User.cpp vendor/llvm-project/master/llvm/lib/IR/Value.cpp vendor/llvm-project/master/llvm/lib/IR/Verifier.cpp vendor/llvm-project/master/llvm/lib/LTO/LTO.cpp vendor/llvm-project/master/llvm/lib/LTO/LTOBackend.cpp vendor/llvm-project/master/llvm/lib/LTO/LTOCodeGenerator.cpp vendor/llvm-project/master/llvm/lib/LTO/SummaryBasedOptimizations.cpp vendor/llvm-project/master/llvm/lib/LTO/ThinLTOCodeGenerator.cpp vendor/llvm-project/master/llvm/lib/Linker/IRMover.cpp vendor/llvm-project/master/llvm/lib/MC/ELFObjectWriter.cpp vendor/llvm-project/master/llvm/lib/MC/MCAsmBackend.cpp vendor/llvm-project/master/llvm/lib/MC/MCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/MC/MCAsmInfoELF.cpp vendor/llvm-project/master/llvm/lib/MC/MCAsmInfoXCOFF.cpp vendor/llvm-project/master/llvm/lib/MC/MCAsmStreamer.cpp vendor/llvm-project/master/llvm/lib/MC/MCAssembler.cpp vendor/llvm-project/master/llvm/lib/MC/MCContext.cpp vendor/llvm-project/master/llvm/lib/MC/MCDisassembler/Disassembler.cpp vendor/llvm-project/master/llvm/lib/MC/MCDisassembler/MCDisassembler.cpp vendor/llvm-project/master/llvm/lib/MC/MCDwarf.cpp vendor/llvm-project/master/llvm/lib/MC/MCELFStreamer.cpp vendor/llvm-project/master/llvm/lib/MC/MCExpr.cpp vendor/llvm-project/master/llvm/lib/MC/MCFragment.cpp vendor/llvm-project/master/llvm/lib/MC/MCInstPrinter.cpp vendor/llvm-project/master/llvm/lib/MC/MCObjectFileInfo.cpp vendor/llvm-project/master/llvm/lib/MC/MCObjectStreamer.cpp vendor/llvm-project/master/llvm/lib/MC/MCParser/AsmParser.cpp vendor/llvm-project/master/llvm/lib/MC/MCParser/COFFAsmParser.cpp vendor/llvm-project/master/llvm/lib/MC/MCSection.cpp vendor/llvm-project/master/llvm/lib/MC/MCSectionXCOFF.cpp vendor/llvm-project/master/llvm/lib/MC/MCStreamer.cpp vendor/llvm-project/master/llvm/lib/MC/MCSymbolELF.cpp vendor/llvm-project/master/llvm/lib/MC/MCTargetOptions.cpp vendor/llvm-project/master/llvm/lib/MC/MCValue.cpp vendor/llvm-project/master/llvm/lib/MC/MCXCOFFStreamer.cpp vendor/llvm-project/master/llvm/lib/MC/WasmObjectWriter.cpp vendor/llvm-project/master/llvm/lib/MC/XCOFFObjectWriter.cpp vendor/llvm-project/master/llvm/lib/MCA/HardwareUnits/ResourceManager.cpp vendor/llvm-project/master/llvm/lib/MCA/InstrBuilder.cpp vendor/llvm-project/master/llvm/lib/MCA/Stages/InstructionTables.cpp vendor/llvm-project/master/llvm/lib/Object/ELF.cpp vendor/llvm-project/master/llvm/lib/Object/MachOObjectFile.cpp vendor/llvm-project/master/llvm/lib/Object/ModuleSymbolTable.cpp vendor/llvm-project/master/llvm/lib/Object/ObjectFile.cpp vendor/llvm-project/master/llvm/lib/Object/RelocationResolver.cpp vendor/llvm-project/master/llvm/lib/Object/WasmObjectFile.cpp vendor/llvm-project/master/llvm/lib/Object/XCOFFObjectFile.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/COFFEmitter.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/DWARFEmitter.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/ELFEmitter.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/ELFYAML.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/MachOEmitter.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/MinidumpYAML.cpp vendor/llvm-project/master/llvm/lib/ObjectYAML/YAML.cpp vendor/llvm-project/master/llvm/lib/Passes/PassBuilder.cpp vendor/llvm-project/master/llvm/lib/Passes/PassRegistry.def vendor/llvm-project/master/llvm/lib/ProfileData/GCOV.cpp vendor/llvm-project/master/llvm/lib/ProfileData/InstrProfReader.cpp vendor/llvm-project/master/llvm/lib/Remarks/BitstreamRemarkParser.cpp vendor/llvm-project/master/llvm/lib/Remarks/BitstreamRemarkParser.h vendor/llvm-project/master/llvm/lib/Remarks/RemarkFormat.cpp vendor/llvm-project/master/llvm/lib/Support/AArch64TargetParser.cpp vendor/llvm-project/master/llvm/lib/Support/AMDGPUMetadata.cpp vendor/llvm-project/master/llvm/lib/Support/APFloat.cpp vendor/llvm-project/master/llvm/lib/Support/APInt.cpp vendor/llvm-project/master/llvm/lib/Support/ARMAttributeParser.cpp vendor/llvm-project/master/llvm/lib/Support/ARMTargetParser.cpp vendor/llvm-project/master/llvm/lib/Support/BinaryStreamReader.cpp vendor/llvm-project/master/llvm/lib/Support/CRC.cpp vendor/llvm-project/master/llvm/lib/Support/CommandLine.cpp vendor/llvm-project/master/llvm/lib/Support/Compression.cpp vendor/llvm-project/master/llvm/lib/Support/CrashRecoveryContext.cpp vendor/llvm-project/master/llvm/lib/Support/DebugCounter.cpp vendor/llvm-project/master/llvm/lib/Support/Error.cpp vendor/llvm-project/master/llvm/lib/Support/FileCheck.cpp vendor/llvm-project/master/llvm/lib/Support/FileCheckImpl.h vendor/llvm-project/master/llvm/lib/Support/FileOutputBuffer.cpp vendor/llvm-project/master/llvm/lib/Support/Host.cpp vendor/llvm-project/master/llvm/lib/Support/InitLLVM.cpp vendor/llvm-project/master/llvm/lib/Support/ItaniumManglingCanonicalizer.cpp vendor/llvm-project/master/llvm/lib/Support/KnownBits.cpp vendor/llvm-project/master/llvm/lib/Support/LockFileManager.cpp vendor/llvm-project/master/llvm/lib/Support/Parallel.cpp vendor/llvm-project/master/llvm/lib/Support/Path.cpp vendor/llvm-project/master/llvm/lib/Support/SHA1.cpp vendor/llvm-project/master/llvm/lib/Support/Signals.cpp vendor/llvm-project/master/llvm/lib/Support/SpecialCaseList.cpp vendor/llvm-project/master/llvm/lib/Support/Statistic.cpp vendor/llvm-project/master/llvm/lib/Support/StringRef.cpp vendor/llvm-project/master/llvm/lib/Support/TargetParser.cpp vendor/llvm-project/master/llvm/lib/Support/Threading.cpp vendor/llvm-project/master/llvm/lib/Support/TimeProfiler.cpp vendor/llvm-project/master/llvm/lib/Support/Timer.cpp vendor/llvm-project/master/llvm/lib/Support/Triple.cpp vendor/llvm-project/master/llvm/lib/Support/Unix/Memory.inc vendor/llvm-project/master/llvm/lib/Support/Unix/Path.inc vendor/llvm-project/master/llvm/lib/Support/Unix/Signals.inc vendor/llvm-project/master/llvm/lib/Support/Unix/Threading.inc vendor/llvm-project/master/llvm/lib/Support/Unix/Unix.h vendor/llvm-project/master/llvm/lib/Support/VirtualFileSystem.cpp vendor/llvm-project/master/llvm/lib/Support/Windows/Memory.inc vendor/llvm-project/master/llvm/lib/Support/Windows/Process.inc vendor/llvm-project/master/llvm/lib/Support/Windows/Program.inc vendor/llvm-project/master/llvm/lib/Support/Windows/Signals.inc vendor/llvm-project/master/llvm/lib/Support/Windows/Threading.inc vendor/llvm-project/master/llvm/lib/Support/Windows/WindowsSupport.h vendor/llvm-project/master/llvm/lib/Support/YAMLParser.cpp vendor/llvm-project/master/llvm/lib/Support/YAMLTraits.cpp vendor/llvm-project/master/llvm/lib/Support/raw_ostream.cpp vendor/llvm-project/master/llvm/lib/TableGen/Main.cpp vendor/llvm-project/master/llvm/lib/TableGen/Record.cpp vendor/llvm-project/master/llvm/lib/TableGen/TGLexer.cpp vendor/llvm-project/master/llvm/lib/TableGen/TGLexer.h vendor/llvm-project/master/llvm/lib/TableGen/TGParser.cpp vendor/llvm-project/master/llvm/lib/TableGen/TGParser.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64CallLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64CallingConvention.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64CallingConvention.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64FastISel.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64FrameLowering.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64ISelLowering.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstrAtomics.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstrFormats.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64PreLegalizerCombiner.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64RegisterInfo.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedExynosM3.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedExynosM4.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedPredExynos.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedPredicates.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64StackOffset.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64StackTagging.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64Subtarget.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64Subtarget.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64SystemOperands.td vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h vendor/llvm-project/master/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h vendor/llvm-project/master/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/SVEInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPU.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUGISel.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPURegisterBanks.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUSearchableTables.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/BUFInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/DSInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/FLATInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/MIMGInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/R600AsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/R600InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/R600Instructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIISelLowering.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIMachineScheduler.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIRegisterInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIRegisterInfo.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SMInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/SOPInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h vendor/llvm-project/master/llvm/lib/Target/AMDGPU/VOP1Instructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/VOP2Instructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/VOP3Instructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/VOP3PInstructions.td vendor/llvm-project/master/llvm/lib/Target/AMDGPU/VOPCInstructions.td vendor/llvm-project/master/llvm/lib/Target/ARC/ARCAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCBranchFinalize.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/ARC/ARCOptAddrMode.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/ARCTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/ARC/MCTargetDesc/ARCMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/ARC/TargetInfo/ARCTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/A15SDOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARM.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARM.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMCallLowering.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMCallingConv.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMCallingConv.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMCallingConv.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMFastISel.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMFrameLowering.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMHazardRecognizer.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMISelLowering.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstrMVE.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstrNEON.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstrVFP.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMInstructionSelector.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMParallelDSP.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMPredicates.td vendor/llvm-project/master/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMRegisterBankInfo.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMSubtarget.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMTargetMachine.h vendor/llvm-project/master/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/ARMTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h vendor/llvm-project/master/llvm/lib/Target/ARM/MVETailPredication.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/MVEVPTBlockPass.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/Thumb1InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/ARM/Thumb2InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/ARM/Utils/ARMBaseInfo.h vendor/llvm-project/master/llvm/lib/Target/AVR/AVRAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/AVRISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/AVRISelLowering.h vendor/llvm-project/master/llvm/lib/Target/AVR/AVRInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/AVR/AVRInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/AVRInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/AVR/AVRInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/AVR/AVRTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/Disassembler/AVRDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRMCCodeEmitter.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/AsmParser/BPFAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFAbstractMemberAccess.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/BPF/BPFInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/BPF/BPFMIPeephole.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFMISimplifyPatchable.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BPFTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BTF.h vendor/llvm-project/master/llvm/lib/Target/BPF/BTFDebug.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/BTFDebug.h vendor/llvm-project/master/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/MCTargetDesc/BPFInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/BPF/MCTargetDesc/BPFMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/BitTracker.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonDepMapAsm2Intrin.td vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonGenMux.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelLowering.h vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonIntrinsics.td vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonOptimizeSZextends.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonPatterns.td vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonPseudo.td vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonVExtract.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCompound.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/RDFLiveness.cpp vendor/llvm-project/master/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/Disassembler/LanaiDisassembler.h vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiISelLowering.h vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/MCTargetDesc/LanaiInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/AsmParser/MSP430AsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/Disassembler/MSP430Disassembler.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MCTargetDesc/MSP430InstPrinter.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430ISelLowering.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430MachineFunctionInfo.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430Subtarget.h vendor/llvm-project/master/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.h vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td vendor/llvm-project/master/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/MicroMipsInstrFPU.td vendor/llvm-project/master/llvm/lib/Target/Mips/MicroMipsInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/Mips.td vendor/llvm-project/master/llvm/lib/Target/Mips/Mips16ISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/Mips16InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/Mips16InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/Mips/Mips16InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/Mips32r6InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/Mips64InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/Mips64r6InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsCallLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsCallingConv.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsCondMov.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsDSPInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsExpandPseudo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsISelLowering.h vendor/llvm-project/master/llvm/lib/Target/Mips/MipsInstrFPU.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsInstructionSelector.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsLegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsMCInstLower.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsMCInstLower.h vendor/llvm-project/master/llvm/lib/Target/Mips/MipsMSAInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsRegisterBankInfo.h vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSEISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSEInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/Mips/MipsScheduleGeneric.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsScheduleP5600.td vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsSubtarget.h vendor/llvm-project/master/llvm/lib/Target/Mips/MipsTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/Mips/MipsTargetStreamer.h vendor/llvm-project/master/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/ManagedStringPool.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXISelLowering.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXImageOptimizer.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXLowerAlloca.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/NVVMReflect.cpp vendor/llvm-project/master/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/P9InstrResources.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPC.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPC.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCHazardRecognizers.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCISelLowering.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstr64Bit.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrAltivec.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrHTM.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCInstrVSX.td vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCRegisterInfo.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCSubtarget.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp vendor/llvm-project/master/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCV.td vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVFrameLowering.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVISelLowering.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVInstrInfoA.td vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVInstrInfoD.td vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVRegisterInfo.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVSubtarget.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVSubtarget.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVTargetMachine.h vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp vendor/llvm-project/master/llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.h vendor/llvm-project/master/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/DelaySlotFiller.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/Disassembler/SparcDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/LeonPasses.h vendor/llvm-project/master/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/MCTargetDesc/SparcInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcISelLowering.h vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcInstr64Bit.td vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/Sparc/SparcTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZ.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZCallingConv.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZCallingConv.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZFrameLowering.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZISelLowering.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrFP.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrFormats.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZInstrVector.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZLongBranch.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZMachineFunctionInfo.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZOperands.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZOperators.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZPatterns.td vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZTDC.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/TargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/TargetMachineC.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCAsmInfo.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssembly.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyISD.def vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyInstrFloat.td vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm-project/master/llvm/lib/Target/X86/AsmParser/X86Operand.h vendor/llvm-project/master/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm-project/master/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86IntelInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp vendor/llvm-project/master/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86.h vendor/llvm-project/master/llvm/lib/Target/X86/X86.td vendor/llvm-project/master/llvm/lib/Target/X86/X86AsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86AsmPrinter.h vendor/llvm-project/master/llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86CallFrameOptimization.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86CallLowering.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86CallingConv.td vendor/llvm-project/master/llvm/lib/Target/X86/X86CmovConversion.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86CondBrFolding.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86DomainReassignment.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86EvexToVex.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86ExpandPseudo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FastISel.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FixupBWInsts.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FixupLEAs.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FixupSetCC.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FloatingPoint.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86FrameLowering.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86ISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86ISelLowering.h vendor/llvm-project/master/llvm/lib/Target/X86/X86IndirectBranchTracking.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrAVX512.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrControl.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrFMA.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrFPStack.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrFormats.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrInfo.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrMMX.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrSSE.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstrTSX.td vendor/llvm-project/master/llvm/lib/Target/X86/X86InstructionSelector.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86IntrinsicsInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/X86LegalizerInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86MCInstLower.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86MacroFusion.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86OptimizeLEAs.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86PadShortFunction.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86PfmCounters.td vendor/llvm-project/master/llvm/lib/Target/X86/X86RegisterBankInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86RegisterBankInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/X86RegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86RegisterInfo.td vendor/llvm-project/master/llvm/lib/Target/X86/X86RetpolineThunks.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86ScheduleAtom.td vendor/llvm-project/master/llvm/lib/Target/X86/X86ScheduleSLM.td vendor/llvm-project/master/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86Subtarget.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86Subtarget.h vendor/llvm-project/master/llvm/lib/Target/X86/X86TargetMachine.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86TargetTransformInfo.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86TargetTransformInfo.h vendor/llvm-project/master/llvm/lib/Target/X86/X86VZeroUpper.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86WinAllocaExpander.cpp vendor/llvm-project/master/llvm/lib/Target/X86/X86WinEHState.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/Disassembler/XCoreDisassembler.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/MCTargetDesc/XCoreInstPrinter.h vendor/llvm-project/master/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreISelLowering.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreInstrInfo.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreInstrInfo.h vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreLowerThreadLocal.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp vendor/llvm-project/master/llvm/lib/Target/XCore/XCoreTargetMachine.cpp vendor/llvm-project/master/llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/CoroCleanup.cpp vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/CoroEarly.cpp vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/CoroElide.cpp vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/CoroInternal.h vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/CoroSplit.cpp vendor/llvm-project/master/llvm/lib/Transforms/Coroutines/Coroutines.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/AlwaysInliner.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/Attributor.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/BarrierNoopPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/BlockExtractor.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/ConstantMerge.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/FunctionAttrs.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/FunctionImport.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/GlobalDCE.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/GlobalSplit.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/HotColdSplitting.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/IPO.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/InlineSimple.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/Internalize.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/LoopExtractor.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/LowerTypeTests.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/MergeFunctions.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/PartialInlining.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/PruneEH.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/SCCP.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/SampleProfile.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/StripSymbols.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp vendor/llvm-project/master/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineInternal.h vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp vendor/llvm-project/master/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/PoisonChecking.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp vendor/llvm-project/master/llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp vendor/llvm-project/master/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp vendor/llvm-project/master/llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp vendor/llvm-project/master/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp vendor/llvm-project/master/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/ADCE.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/BDCE.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/ConstantProp.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/DCE.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/DivRemPairs.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/EarlyCSE.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Float2Int.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/GVN.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/GVNHoist.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/GVNSink.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/GuardWidening.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/JumpThreading.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LICM.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopDeletion.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopDistribute.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopFuse.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopInterchange.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopPredication.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopRotation.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopSink.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerAtomic.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/MergeICmps.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/NaryReassociate.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/NewGVN.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Reassociate.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Reg2Mem.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SCCP.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SROA.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Scalar.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Scalarizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/Sink.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp vendor/llvm-project/master/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/AddDiscriminators.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/CodeExtractor.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/GuardUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/InlineFunction.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/InstructionNamer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LCSSA.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/Local.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopSimplify.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopUnroll.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LoopVersioning.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LowerInvoke.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/LowerSwitch.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/Mem2Reg.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/MetaRenamer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/MisExpect.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/ModuleUtils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/NameAnonGlobals.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/PredicateInfo.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/SimplifyCFG.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/SizeOpts.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/StripGCRelocates.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/SymbolRewriter.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp vendor/llvm-project/master/llvm/lib/Transforms/Utils/Utils.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlan.cpp vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlan.h vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanValue.h vendor/llvm-project/master/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp vendor/llvm-project/master/llvm/lib/XRay/InstrumentationMap.cpp vendor/llvm-project/master/llvm/tools/bugpoint/CrashDebugger.cpp vendor/llvm-project/master/llvm/tools/bugpoint/bugpoint.cpp vendor/llvm-project/master/llvm/tools/llc/llc.cpp vendor/llvm-project/master/llvm/tools/lli/RemoteJITUtils.h vendor/llvm-project/master/llvm/tools/lli/lli.cpp vendor/llvm-project/master/llvm/tools/llvm-ar/llvm-ar.cpp vendor/llvm-project/master/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp vendor/llvm-project/master/llvm/tools/llvm-cov/CodeCoverage.cpp vendor/llvm-project/master/llvm/tools/llvm-cov/CoverageExporterJson.cpp vendor/llvm-project/master/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp vendor/llvm-project/master/llvm/tools/llvm-diff/DifferenceEngine.cpp vendor/llvm-project/master/llvm/tools/llvm-dis/llvm-dis.cpp vendor/llvm-project/master/llvm/tools/llvm-dwarfdump/Statistics.cpp vendor/llvm-project/master/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp vendor/llvm-project/master/llvm/tools/llvm-lto2/llvm-lto2.cpp vendor/llvm-project/master/llvm/tools/llvm-mc/Disassembler.cpp vendor/llvm-project/master/llvm/tools/llvm-mc/Disassembler.h vendor/llvm-project/master/llvm/tools/llvm-mc/llvm-mc.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/BottleneckAnalysis.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/DispatchStatistics.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/InstructionInfoView.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/ResourcePressureView.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/RetireControlUnitStatistics.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/SchedulerStatistics.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/SummaryView.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/Views/TimelineView.cpp vendor/llvm-project/master/llvm/tools/llvm-mca/llvm-mca.cpp vendor/llvm-project/master/llvm/tools/llvm-nm/llvm-nm.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/COFF/Object.h vendor/llvm-project/master/llvm/tools/llvm-objcopy/COFF/Reader.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/COFF/Writer.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/CommonOpts.td vendor/llvm-project/master/llvm/tools/llvm-objcopy/CopyConfig.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/CopyConfig.h vendor/llvm-project/master/llvm/tools/llvm-objcopy/ELF/ELFObjcopy.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/ELF/Object.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/ELF/Object.h vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/MachOLayoutBuilder.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/MachOObjcopy.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/MachOReader.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/Object.cpp vendor/llvm-project/master/llvm/tools/llvm-objcopy/MachO/Object.h vendor/llvm-project/master/llvm/tools/llvm-objcopy/llvm-objcopy.cpp vendor/llvm-project/master/llvm/tools/llvm-objdump/ELFDump.cpp vendor/llvm-project/master/llvm/tools/llvm-objdump/MachODump.cpp vendor/llvm-project/master/llvm/tools/llvm-objdump/llvm-objdump.cpp vendor/llvm-project/master/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp vendor/llvm-project/master/llvm/tools/llvm-pdbutil/InputFile.h vendor/llvm-project/master/llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp vendor/llvm-project/master/llvm/tools/llvm-readobj/ELFDumper.cpp vendor/llvm-project/master/llvm/tools/llvm-readobj/ObjDumper.cpp vendor/llvm-project/master/llvm/tools/llvm-readobj/ObjDumper.h vendor/llvm-project/master/llvm/tools/llvm-readobj/Win64EHDumper.cpp vendor/llvm-project/master/llvm/tools/llvm-readobj/XCOFFDumper.cpp vendor/llvm-project/master/llvm/tools/llvm-readobj/llvm-readobj.cpp vendor/llvm-project/master/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp vendor/llvm-project/master/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-account.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-converter.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-extract.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-graph-diff.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-graph.cpp vendor/llvm-project/master/llvm/tools/llvm-xray/xray-stacks.cpp vendor/llvm-project/master/llvm/tools/opt/NewPMDriver.cpp vendor/llvm-project/master/llvm/tools/opt/PassPrinters.cpp vendor/llvm-project/master/llvm/tools/opt/PassPrinters.h vendor/llvm-project/master/llvm/tools/opt/opt.cpp vendor/llvm-project/master/llvm/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/AsmWriterInst.h vendor/llvm-project/master/llvm/utils/TableGen/CodeEmitterGen.cpp vendor/llvm-project/master/llvm/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm-project/master/llvm/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm-project/master/llvm/utils/TableGen/CodeGenInstruction.cpp vendor/llvm-project/master/llvm/utils/TableGen/CodeGenInstruction.h vendor/llvm-project/master/llvm/utils/TableGen/CodeGenIntrinsics.h vendor/llvm-project/master/llvm/utils/TableGen/CodeGenRegisters.h vendor/llvm-project/master/llvm/utils/TableGen/CodeGenTarget.cpp vendor/llvm-project/master/llvm/utils/TableGen/CodeGenTarget.h vendor/llvm-project/master/llvm/utils/TableGen/DAGISelMatcherGen.cpp vendor/llvm-project/master/llvm/utils/TableGen/DFAPacketizerEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/GICombinerEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/GlobalISelEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/InstrDocsEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/InstrInfoEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/IntrinsicEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/OptParserEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/RISCVCompressInstEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/RegisterInfoEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/SearchableTableEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/SequenceToOffsetTable.h vendor/llvm-project/master/llvm/utils/TableGen/TableGen.cpp vendor/llvm-project/master/llvm/utils/TableGen/TableGenBackends.h vendor/llvm-project/master/llvm/utils/TableGen/X86DisassemblerTables.cpp vendor/llvm-project/master/llvm/utils/TableGen/X86FoldTablesEmitter.cpp vendor/llvm-project/master/llvm/utils/TableGen/X86RecognizableInstr.cpp vendor/llvm-project/master/openmp/CREDITS.txt vendor/llvm-project/master/openmp/runtime/src/extractExternal.cpp vendor/llvm-project/master/openmp/runtime/src/i18n/en_US.txt vendor/llvm-project/master/openmp/runtime/src/include/omp_lib.f.var vendor/llvm-project/master/openmp/runtime/src/kmp.h vendor/llvm-project/master/openmp/runtime/src/kmp_affinity.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_alloc.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_atomic.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_barrier.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_csupport.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_dispatch.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_dispatch_hier.h vendor/llvm-project/master/openmp/runtime/src/kmp_ftn_entry.h vendor/llvm-project/master/openmp/runtime/src/kmp_gsupport.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_itt.inl vendor/llvm-project/master/openmp/runtime/src/kmp_lock.h vendor/llvm-project/master/openmp/runtime/src/kmp_os.h vendor/llvm-project/master/openmp/runtime/src/kmp_platform.h vendor/llvm-project/master/openmp/runtime/src/kmp_runtime.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_settings.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_stats.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_str.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_taskdeps.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_tasking.cpp vendor/llvm-project/master/openmp/runtime/src/kmp_wrapper_getpid.h vendor/llvm-project/master/openmp/runtime/src/kmp_wrapper_malloc.h vendor/llvm-project/master/openmp/runtime/src/ompt-event-specific.h vendor/llvm-project/master/openmp/runtime/src/ompt-general.cpp vendor/llvm-project/master/openmp/runtime/src/ompt-specific.h vendor/llvm-project/master/openmp/runtime/src/thirdparty/ittnotify/ittnotify.h vendor/llvm-project/master/openmp/runtime/src/thirdparty/ittnotify/ittnotify_static.cpp vendor/llvm-project/master/openmp/runtime/src/thirdparty/ittnotify/legacy/ittnotify.h vendor/llvm-project/master/openmp/runtime/src/z_Linux_asm.S vendor/llvm-project/master/openmp/runtime/src/z_Linux_util.cpp vendor/llvm-project/master/openmp/runtime/src/z_Windows_NT_util.cpp Modified: vendor/llvm-project/master/clang/include/clang-c/BuildSystem.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/BuildSystem.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/BuildSystem.h Fri Jan 17 20:45:01 2020 (r356843) @@ -14,13 +14,12 @@ #ifndef LLVM_CLANG_C_BUILDSYSTEM_H #define LLVM_CLANG_C_BUILDSYSTEM_H -#include "clang-c/Platform.h" #include "clang-c/CXErrorCode.h" #include "clang-c/CXString.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup BUILD_SYSTEM Build system utilities @@ -148,9 +147,7 @@ CINDEX_LINKAGE void clang_ModuleMapDescriptor_dispose( * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END #endif /* CLANG_C_BUILD_SYSTEM_H */ Modified: vendor/llvm-project/master/clang/include/clang-c/CXCompilationDatabase.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/CXCompilationDatabase.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/CXCompilationDatabase.h Fri Jan 17 20:45:01 2020 (r356843) @@ -15,12 +15,11 @@ #ifndef LLVM_CLANG_C_CXCOMPILATIONDATABASE_H #define LLVM_CLANG_C_CXCOMPILATIONDATABASE_H -#include "clang-c/Platform.h" #include "clang-c/CXString.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** \defgroup COMPILATIONDB CompilationDatabase functions * \ingroup CINDEX @@ -169,8 +168,7 @@ clang_CompileCommand_getMappedSourceContent(CXCompileC * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: vendor/llvm-project/master/clang/include/clang-c/CXErrorCode.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/CXErrorCode.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/CXErrorCode.h Fri Jan 17 20:45:01 2020 (r356843) @@ -14,11 +14,10 @@ #ifndef LLVM_CLANG_C_CXERRORCODE_H #define LLVM_CLANG_C_CXERRORCODE_H +#include "clang-c/ExternC.h" #include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * Error codes returned by libclang routines. @@ -57,8 +56,7 @@ enum CXErrorCode { CXError_ASTReadError = 4 }; -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: vendor/llvm-project/master/clang/include/clang-c/CXString.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/CXString.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/CXString.h Fri Jan 17 20:45:01 2020 (r356843) @@ -14,11 +14,10 @@ #ifndef LLVM_CLANG_C_CXSTRING_H #define LLVM_CLANG_C_CXSTRING_H +#include "clang-c/ExternC.h" #include "clang-c/Platform.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup CINDEX_STRING String manipulation routines @@ -64,8 +63,7 @@ CINDEX_LINKAGE void clang_disposeStringSet(CXStringSet * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: vendor/llvm-project/master/clang/include/clang-c/Documentation.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/Documentation.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/Documentation.h Fri Jan 17 20:45:01 2020 (r356843) @@ -15,11 +15,10 @@ #ifndef LLVM_CLANG_C_DOCUMENTATION_H #define LLVM_CLANG_C_DOCUMENTATION_H +#include "clang-c/ExternC.h" #include "clang-c/Index.h" -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** * \defgroup CINDEX_COMMENT Comment introspection @@ -182,7 +181,12 @@ enum CXCommentInlineCommandRenderKind { * Command argument should be rendered emphasized (typically italic * font). */ - CXCommentInlineCommandRenderKind_Emphasized + CXCommentInlineCommandRenderKind_Emphasized, + + /** + * Command argument should not be rendered (since it only defines an anchor). + */ + CXCommentInlineCommandRenderKind_Anchor }; /** @@ -545,10 +549,7 @@ CINDEX_LINKAGE CXString clang_FullComment_getAsXML(CXC * @} */ - -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END #endif /* CLANG_C_DOCUMENTATION_H */ Added: vendor/llvm-project/master/clang/include/clang-c/ExternC.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/master/clang/include/clang-c/ExternC.h Fri Jan 17 20:45:01 2020 (r356843) @@ -0,0 +1,39 @@ +/*===- clang-c/ExternC.h - Wrapper for 'extern "C"' ---------------*- C -*-===*\ +|* *| +|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| +|* Exceptions. *| +|* See https://llvm.org/LICENSE.txt for license information. *| +|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This file defines an 'extern "C"' wrapper. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_CLANG_C_EXTERN_C_H +#define LLVM_CLANG_C_EXTERN_C_H + +#ifdef __clang__ +#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic error \"-Wstrict-prototypes\"") +#define LLVM_CLANG_C_STRICT_PROTOTYPES_END _Pragma("clang diagnostic pop") +#else +#define LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_STRICT_PROTOTYPES_END +#endif + +#ifdef __cplusplus +#define LLVM_CLANG_C_EXTERN_C_BEGIN \ + extern "C" { \ + LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_EXTERN_C_END \ + LLVM_CLANG_C_STRICT_PROTOTYPES_END \ + } +#else +#define LLVM_CLANG_C_EXTERN_C_BEGIN LLVM_CLANG_C_STRICT_PROTOTYPES_BEGIN +#define LLVM_CLANG_C_EXTERN_C_END LLVM_CLANG_C_STRICT_PROTOTYPES_END +#endif + +#endif Modified: vendor/llvm-project/master/clang/include/clang-c/FatalErrorHandler.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/FatalErrorHandler.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/FatalErrorHandler.h Fri Jan 17 20:45:01 2020 (r356843) @@ -10,10 +10,10 @@ #ifndef LLVM_CLANG_C_FATAL_ERROR_HANDLER_H #define LLVM_CLANG_C_FATAL_ERROR_HANDLER_H -#ifdef __cplusplus -extern "C" { -#endif +#include "clang-c/ExternC.h" +LLVM_CLANG_C_EXTERN_C_BEGIN + /** * Installs error handler that prints error message to stderr and calls abort(). * Replaces currently installed error handler (if any). @@ -27,7 +27,6 @@ void clang_install_aborting_llvm_fatal_error_handler(v */ void clang_uninstall_llvm_fatal_error_handler(void); -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: vendor/llvm-project/master/clang/include/clang-c/Index.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/Index.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/Index.h Fri Jan 17 20:45:01 2020 (r356843) @@ -18,10 +18,11 @@ #include -#include "clang-c/Platform.h" +#include "clang-c/BuildSystem.h" #include "clang-c/CXErrorCode.h" #include "clang-c/CXString.h" -#include "clang-c/BuildSystem.h" +#include "clang-c/ExternC.h" +#include "clang-c/Platform.h" /** * The version constants for the libclang API. @@ -51,9 +52,7 @@ CINDEX_VERSION_MAJOR, \ CINDEX_VERSION_MINOR) -#ifdef __cplusplus -extern "C" { -#endif +LLVM_CLANG_C_EXTERN_C_BEGIN /** \defgroup CINDEX libclang: C Interface to Clang * @@ -2567,9 +2566,16 @@ enum CXCursorKind { */ CXCursor_OMPMasterTaskLoopSimdDirective = 283, + /** OpenMP parallel master taskloop simd directive. + */ + CXCursor_OMPParallelMasterTaskLoopSimdDirective = 284, - CXCursor_LastStmt = CXCursor_OMPMasterTaskLoopSimdDirective, + /** OpenMP parallel master directive. + */ + CXCursor_OMPParallelMasterDirective = 285, + CXCursor_LastStmt = CXCursor_OMPParallelMasterDirective, + /** * Cursor that represents the translation unit itself. * @@ -6771,7 +6777,6 @@ CINDEX_LINKAGE unsigned clang_Type_visitFields(CXType * @} */ -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Modified: vendor/llvm-project/master/clang/include/clang-c/Platform.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang-c/Platform.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang-c/Platform.h Fri Jan 17 20:45:01 2020 (r356843) @@ -14,10 +14,10 @@ #ifndef LLVM_CLANG_C_PLATFORM_H #define LLVM_CLANG_C_PLATFORM_H -#ifdef __cplusplus -extern "C" { -#endif +#include "clang-c/ExternC.h" +LLVM_CLANG_C_EXTERN_C_BEGIN + /* MSVC DLL import/export. */ #ifdef _MSC_VER #ifdef _CINDEX_LIB_ @@ -39,7 +39,6 @@ extern "C" { #endif #endif -#ifdef __cplusplus -} -#endif +LLVM_CLANG_C_EXTERN_C_END + #endif Added: vendor/llvm-project/master/clang/include/clang/AST/ASTConcept.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTConcept.h Fri Jan 17 20:45:01 2020 (r356843) @@ -0,0 +1,177 @@ +//===--- ASTConcept.h - Concepts Related AST Data Structures ----*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// +/// \file +/// \brief This file provides AST data structures related to concepts. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_AST_ASTCONCEPT_H +#define LLVM_CLANG_AST_ASTCONCEPT_H +#include "clang/AST/Expr.h" +#include "clang/Basic/SourceLocation.h" +#include "llvm/ADT/PointerUnion.h" +#include "llvm/ADT/SmallVector.h" +#include +#include +namespace clang { +class ConceptDecl; + +/// \brief The result of a constraint satisfaction check, containing the +/// necessary information to diagnose an unsatisfied constraint. +struct ConstraintSatisfaction { + using SubstitutionDiagnostic = std::pair; + using Detail = llvm::PointerUnion; + + bool IsSatisfied = false; + + /// \brief Pairs of unsatisfied atomic constraint expressions along with the + /// substituted constraint expr, if the template arguments could be + /// substituted into them, or a diagnostic if substitution resulted in an + /// invalid expression. + llvm::SmallVector, 4> Details; + + // This can leak if used in an AST node, use ASTConstraintSatisfaction + // instead. + void *operator new(size_t bytes, ASTContext &C) = delete; +}; + +/// Pairs of unsatisfied atomic constraint expressions along with the +/// substituted constraint expr, if the template arguments could be +/// substituted into them, or a diagnostic if substitution resulted in +/// an invalid expression. +using UnsatisfiedConstraintRecord = + std::pair *>>; + +/// \brief The result of a constraint satisfaction check, containing the +/// necessary information to diagnose an unsatisfied constraint. +/// +/// This is safe to store in an AST node, as opposed to ConstraintSatisfaction. +struct ASTConstraintSatisfaction final : + llvm::TrailingObjects { + std::size_t NumRecords; + bool IsSatisfied : 1; + + const UnsatisfiedConstraintRecord *begin() const { + return getTrailingObjects(); + } + + const UnsatisfiedConstraintRecord *end() const { + return getTrailingObjects() + NumRecords; + } + + ASTConstraintSatisfaction(const ASTContext &C, + const ConstraintSatisfaction &Satisfaction); + + static ASTConstraintSatisfaction * + Create(const ASTContext &C, const ConstraintSatisfaction &Satisfaction); +}; + +/// \brief Common data class for constructs that reference concepts with +/// template arguments. +class ConceptReference { +protected: + // \brief The optional nested name specifier used when naming the concept. + NestedNameSpecifierLoc NestedNameSpec; + + /// \brief The location of the template keyword, if specified when naming the + /// concept. + SourceLocation TemplateKWLoc; + + /// \brief The concept name used. + DeclarationNameInfo ConceptName; + + /// \brief The declaration found by name lookup when the expression was + /// created. + /// Can differ from NamedConcept when, for example, the concept was found + /// through a UsingShadowDecl. + NamedDecl *FoundDecl; + + /// \brief The concept named. + ConceptDecl *NamedConcept; + + /// \brief The template argument list source info used to specialize the + /// concept. + const ASTTemplateArgumentListInfo *ArgsAsWritten; + +public: + + ConceptReference(NestedNameSpecifierLoc NNS, SourceLocation TemplateKWLoc, + DeclarationNameInfo ConceptNameInfo, NamedDecl *FoundDecl, + ConceptDecl *NamedConcept, + const ASTTemplateArgumentListInfo *ArgsAsWritten) : + NestedNameSpec(NNS), TemplateKWLoc(TemplateKWLoc), + ConceptName(ConceptNameInfo), FoundDecl(FoundDecl), + NamedConcept(NamedConcept), ArgsAsWritten(ArgsAsWritten) {} + + ConceptReference() : NestedNameSpec(), TemplateKWLoc(), ConceptName(), + FoundDecl(nullptr), NamedConcept(nullptr), ArgsAsWritten(nullptr) {} + + const NestedNameSpecifierLoc &getNestedNameSpecifierLoc() const { + return NestedNameSpec; + } + + const DeclarationNameInfo &getConceptNameInfo() const { return ConceptName; } + + SourceLocation getConceptNameLoc() const { + return getConceptNameInfo().getLoc(); + } + + SourceLocation getTemplateKWLoc() const { return TemplateKWLoc; } + + NamedDecl *getFoundDecl() const { + return FoundDecl; + } + + ConceptDecl *getNamedConcept() const { + return NamedConcept; + } + + const ASTTemplateArgumentListInfo *getTemplateArgsAsWritten() const { + return ArgsAsWritten; + } + + /// \brief Whether or not template arguments were explicitly specified in the + /// concept reference (they might not be in type constraints, for example) + bool hasExplicitTemplateArgs() const { + return ArgsAsWritten != nullptr; + } +}; + +class TypeConstraint : public ConceptReference { + /// \brief The immediately-declared constraint expression introduced by this + /// type-constraint. + Expr *ImmediatelyDeclaredConstraint = nullptr; + +public: + TypeConstraint(NestedNameSpecifierLoc NNS, + DeclarationNameInfo ConceptNameInfo, NamedDecl *FoundDecl, + ConceptDecl *NamedConcept, + const ASTTemplateArgumentListInfo *ArgsAsWritten, + Expr *ImmediatelyDeclaredConstraint) : + ConceptReference(NNS, /*TemplateKWLoc=*/SourceLocation(), ConceptNameInfo, + FoundDecl, NamedConcept, ArgsAsWritten), + ImmediatelyDeclaredConstraint(ImmediatelyDeclaredConstraint) {} + + /// \brief Get the immediately-declared constraint expression introduced by + /// this type-constraint, that is - the constraint expression that is added to + /// the associated constraints of the enclosing declaration in practice. + Expr *getImmediatelyDeclaredConstraint() const { + return ImmediatelyDeclaredConstraint; + } + + void print(llvm::raw_ostream &OS, PrintingPolicy Policy) const; +}; + +} // clang + +#endif // LLVM_CLANG_AST_ASTCONCEPT_H \ No newline at end of file Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTConsumer.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTConsumer.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTConsumer.h Fri Jan 17 20:45:01 2020 (r356843) @@ -102,6 +102,11 @@ class ASTConsumer { (public) /// modified by the introduction of an implicit zero initializer. virtual void CompleteTentativeDefinition(VarDecl *D) {} + /// CompleteExternalDeclaration - Callback invoked at the end of a translation + /// unit to notify the consumer that the given external declaration should be + /// completed. + virtual void CompleteExternalDeclaration(VarDecl *D) {} + /// Callback invoked when an MSInheritanceAttr has been attached to a /// CXXRecordDecl. virtual void AssignInheritanceModel(CXXRecordDecl *RD) {} Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTContext.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTContext.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTContext.h Fri Jan 17 20:45:01 2020 (r356843) @@ -22,7 +22,6 @@ #include "clang/AST/Decl.h" #include "clang/AST/DeclBase.h" #include "clang/AST/DeclarationName.h" -#include "clang/AST/Expr.h" #include "clang/AST/ExternalASTSource.h" #include "clang/AST/NestedNameSpecifier.h" #include "clang/AST/PrettyPrinter.h" @@ -96,6 +95,7 @@ class CXXRecordDecl; class DiagnosticsEngine; class Expr; class FixedPointSemantics; +class GlobalDecl; class MangleContext; class MangleNumberingContext; class MaterializeTemporaryExpr; @@ -113,9 +113,11 @@ class ObjCPropertyDecl; class ObjCPropertyImplDecl; class ObjCProtocolDecl; class ObjCTypeParamDecl; +struct ParsedTargetAttr; class Preprocessor; class Stmt; class StoredDeclsMap; +class TargetAttr; class TemplateDecl; class TemplateParameterList; class TemplateTemplateParmDecl; @@ -124,6 +126,7 @@ class UnresolvedSetIterator; class UsingShadowDecl; class VarTemplateDecl; class VTableContextBase; +struct BlockVarCopyInit; namespace Builtin { @@ -145,6 +148,10 @@ class Context; } // namespace interp +namespace serialization { +template class AbstractTypeReader; +} // namespace serialization + struct TypeInfo { uint64_t Width = 0; unsigned Align = 0; @@ -158,22 +165,6 @@ struct TypeInfo { /// Holds long-lived AST nodes (such as types and decls) that can be /// referred to throughout the semantic analysis of a file. class ASTContext : public RefCountedBase { -public: - /// Copy initialization expr of a __block variable and a boolean flag that - /// indicates whether the expression can throw. - struct BlockVarCopyInit { - BlockVarCopyInit() = default; - BlockVarCopyInit(Expr *CopyExpr, bool CanThrow) - : ExprAndFlag(CopyExpr, CanThrow) {} - void setExprAndFlag(Expr *CopyExpr, bool CanThrow) { - ExprAndFlag.setPointerAndInt(CopyExpr, CanThrow); - } - Expr *getCopyExpr() const { return ExprAndFlag.getPointer(); } - bool canThrow() const { return ExprAndFlag.getInt(); } - llvm::PointerIntPair ExprAndFlag; - }; - -private: friend class NestedNameSpecifier; mutable SmallVector Types; @@ -272,12 +263,6 @@ class ASTContext : public RefCountedBase { /// Mapping from __block VarDecls to BlockVarCopyInit. llvm::DenseMap BlockVarCopyInits; - /// Mapping from materialized temporaries with static storage duration - /// that appear in constant initializers to their evaluated values. These are - /// allocated in a std::map because their address must be stable. - llvm::DenseMap - MaterializedTemporaryValues; - /// Used to cleanups APValues stored in the AST. mutable llvm::SmallVector APValueCleanups; @@ -298,12 +283,16 @@ class ASTContext : public RefCountedBase { TemplateTemplateParmDecl *getParam() const { return Parm; } - void Profile(llvm::FoldingSetNodeID &ID) { Profile(ID, Parm); } + void Profile(llvm::FoldingSetNodeID &ID, const ASTContext &C) { + Profile(ID, C, Parm); + } static void Profile(llvm::FoldingSetNodeID &ID, + const ASTContext &C, TemplateTemplateParmDecl *Parm); }; - mutable llvm::FoldingSet + mutable llvm::ContextualFoldingSet CanonTemplateTemplateParms; TemplateTemplateParmDecl * @@ -435,6 +424,7 @@ class ASTContext : public RefCountedBase { friend class ASTDeclReader; friend class ASTReader; friend class ASTWriter; + template friend class serialization::AbstractTypeReader; friend class CXXRecordDecl; /// A mapping to contain the template or declaration that @@ -575,7 +565,17 @@ class ASTContext : public RefCountedBase { clang::PrintingPolicy PrintingPolicy; std::unique_ptr InterpContext; + ast_type_traits::TraversalKind Traversal = ast_type_traits::TK_AsIs; + public: + ast_type_traits::TraversalKind getTraversalKind() const { return Traversal; } + void setTraversalKind(ast_type_traits::TraversalKind TK) { Traversal = TK; } + + const Expr *traverseIgnored(const Expr *E) const; + Expr *traverseIgnored(Expr *E) const; + ast_type_traits::DynTypedNode + traverseIgnored(const ast_type_traits::DynTypedNode &N) const; + IdentifierTable &Idents; SelectorTable &Selectors; Builtin::Context &BuiltinInfo; @@ -1162,6 +1162,10 @@ class ASTContext : public RefCountedBase { /// attribute. QualType getObjCGCQualType(QualType T, Qualifiers::GC gcAttr) const; + /// Remove the existing address space on the type if it is a pointer size + /// address space and return the type with qualifiers intact. + QualType removePtrSizeAddrSpace(QualType T) const; + /// Return the uniqued reference to the type for a \c restrict /// qualified type. /// @@ -1216,6 +1220,15 @@ class ASTContext : public RefCountedBase { const FunctionProtoType::ExceptionSpecInfo &ESI, bool AsWritten = false); + /// Get a function type and produce the equivalent function type where + /// pointer size address spaces in the return type and parameter tyeps are + /// replaced with the default address space. + QualType getFunctionTypeWithoutPtrSizes(QualType T); + + /// Determine whether two function types are the same, ignoring pointer sizes + /// in the return type and parameter types. + bool hasSameFunctionTypeIgnoringPtrSizes(QualType T, QualType U); + /// Return the uniqued reference to the type for a complex /// number with the specified element type. QualType getComplexType(QualType T) const; @@ -2827,16 +2840,20 @@ class ASTContext : public RefCountedBase { /// index of the parameter when it exceeds the size of the normal bitfield. unsigned getParameterIndex(const ParmVarDecl *D) const; - /// Get the storage for the constant value of a materialized temporary - /// of static storage duration. - APValue *getMaterializedTemporaryValue(const MaterializeTemporaryExpr *E, - bool MayCreate); - /// Return a string representing the human readable name for the specified /// function declaration or file name. Used by SourceLocExpr and /// PredefinedExpr to cache evaluated results. StringLiteral *getPredefinedStringLiteralFromCache(StringRef Key) const; + /// Parses the target attributes passed in, and returns only the ones that are + /// valid feature names. + ParsedTargetAttr filterFunctionTargetAttrs(const TargetAttr *TD) const; + + void getFunctionFeatureMap(llvm::StringMap &FeatureMap, + const FunctionDecl *) const; + void getFunctionFeatureMap(llvm::StringMap &FeatureMap, + GlobalDecl GD) const; + //===--------------------------------------------------------------------===// // Statistics //===--------------------------------------------------------------------===// @@ -3007,7 +3024,7 @@ OPT_LIST(V) (private) std::vector TraversalScope; class ParentMap; - std::unique_ptr Parents; + std::map> Parents; std::unique_ptr VTContext; @@ -3050,6 +3067,22 @@ inline Selector GetUnarySelector(StringRef name, ASTCo IdentifierInfo* II = &Ctx.Idents.get(name); return Ctx.Selectors.getSelector(1, &II); } + +class TraversalKindScope { + ASTContext &Ctx; + ast_type_traits::TraversalKind TK = ast_type_traits::TK_AsIs; + +public: + TraversalKindScope(ASTContext &Ctx, + llvm::Optional ScopeTK) + : Ctx(Ctx) { + TK = Ctx.getTraversalKind(); + if (ScopeTK) + Ctx.setTraversalKind(*ScopeTK); + } + + ~TraversalKindScope() { Ctx.setTraversalKind(TK); } +}; } // namespace clang Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTFwd.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTFwd.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTFwd.h Fri Jan 17 20:45:01 2020 (r356843) @@ -26,6 +26,10 @@ class Type; #define TYPE(DERIVED, BASE) class DERIVED##Type; #include "clang/AST/TypeNodes.inc" class CXXCtorInitializer; +class OMPClause; +#define OPENMP_CLAUSE(KIND, CLASSNAME) class CLASSNAME; +#include "clang/Basic/OpenMPKinds.def" + } // end namespace clang Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTImporter.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTImporter.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTImporter.h Fri Jan 17 20:45:01 2020 (r356843) @@ -60,8 +60,12 @@ class TypeSourceInfo; static char ID; - ImportError() : Error(Unknown) { } - ImportError(const ImportError &Other) : Error(Other.Error) { } + ImportError() : Error(Unknown) {} + ImportError(const ImportError &Other) : Error(Other.Error) {} + ImportError &operator=(const ImportError &Other) { + Error = Other.Error; + return *this; + } ImportError(ErrorKind Error) : Error(Error) { } std::string toString() const; Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTLambda.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTLambda.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTLambda.h Fri Jan 17 20:45:01 2020 (r356843) @@ -64,6 +64,17 @@ inline bool isGenericLambdaCallOperatorSpecialization( dyn_cast(DC)); } +inline bool isGenericLambdaCallOperatorOrStaticInvokerSpecialization( + DeclContext *DC) { + CXXMethodDecl *MD = dyn_cast(DC); + if (!MD) return false; + const CXXRecordDecl *LambdaClass = MD->getParent(); + if (LambdaClass && LambdaClass->isGenericLambda()) + return (isLambdaCallOperator(MD) || MD->isLambdaStaticInvoker()) && + MD->isFunctionTemplateSpecialization(); + return false; +} + // This returns the parent DeclContext ensuring that the correct // parent DeclContext is returned for Lambdas Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTNodeTraverser.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTNodeTraverser.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTNodeTraverser.h Fri Jan 17 20:45:01 2020 (r356843) @@ -65,6 +65,9 @@ class ASTNodeTraverser /// not already been loaded. bool Deserialize = false; + ast_type_traits::TraversalKind Traversal = + ast_type_traits::TraversalKind::TK_AsIs; + NodeDelegateType &getNodeDelegate() { return getDerived().doGetNodeDelegate(); } @@ -74,6 +77,8 @@ class ASTNodeTraverser void setDeserialize(bool D) { Deserialize = D; } bool getDeserialize() const { return Deserialize; } + void SetTraversalKind(ast_type_traits::TraversalKind TK) { Traversal = TK; } + void Visit(const Decl *D) { getNodeDelegate().AddChild([=] { getNodeDelegate().Visit(D); @@ -97,8 +102,23 @@ class ASTNodeTraverser }); } - void Visit(const Stmt *S, StringRef Label = {}) { + void Visit(const Stmt *Node, StringRef Label = {}) { getNodeDelegate().AddChild(Label, [=] { + const Stmt *S = Node; + + if (auto *E = dyn_cast_or_null(S)) { + switch (Traversal) { + case ast_type_traits::TK_AsIs: + break; + case ast_type_traits::TK_IgnoreImplicitCastsAndParentheses: + S = E->IgnoreParenImpCasts(); + break; + case ast_type_traits::TK_IgnoreUnlessSpelledInSource: + S = E->IgnoreUnlessSpelledInSource(); + break; + } + } + getNodeDelegate().Visit(S); if (!S) { @@ -108,10 +128,13 @@ class ASTNodeTraverser ConstStmtVisitor::Visit(S); // Some statements have custom mechanisms for dumping their children. - if (isa(S) || isa(S)) { + if (isa(S) || isa(S)) return; - } + if (isa(S) && + Traversal == ast_type_traits::TK_IgnoreUnlessSpelledInSource) + return; + for (const Stmt *SubStmt : S->children()) Visit(SubStmt); }); @@ -361,6 +384,9 @@ class ASTNodeTraverser for (const auto *Parameter : D->parameters()) Visit(Parameter); + if (const Expr *TRC = D->getTrailingRequiresClause()) + Visit(TRC); + if (const auto *C = dyn_cast(D)) for (const auto *I : C->inits()) Visit(I); @@ -511,6 +537,10 @@ class ASTNodeTraverser } void VisitTemplateTypeParmDecl(const TemplateTypeParmDecl *D) { + if (const auto *TC = D->getTypeConstraint()) + if (TC->hasExplicitTemplateArgs()) + for (const auto &ArgLoc : TC->getTemplateArgsAsWritten()->arguments()) + dumpTemplateArgumentLoc(ArgLoc); if (D->hasDefaultArgument()) Visit(D->getDefaultArgument(), SourceRange(), D->getDefaultArgStorage().getInheritedFrom(), @@ -518,6 +548,8 @@ class ASTNodeTraverser } void VisitNonTypeTemplateParmDecl(const NonTypeTemplateParmDecl *D) { + if (const auto *TC = D->getPlaceholderTypeConstraint()) + Visit(TC->getImmediatelyDeclaredConstraint()); if (D->hasDefaultArgument()) Visit(D->getDefaultArgument(), SourceRange(), D->getDefaultArgStorage().getInheritedFrom(), @@ -620,13 +652,29 @@ class ASTNodeTraverser Visit(E->getControllingExpr()); Visit(E->getControllingExpr()->getType()); // FIXME: remove - for (const auto &Assoc : E->associations()) { + for (const auto Assoc : E->associations()) { Visit(Assoc); } } void VisitLambdaExpr(const LambdaExpr *Node) { - Visit(Node->getLambdaClass()); + if (Traversal == ast_type_traits::TK_IgnoreUnlessSpelledInSource) { + for (unsigned I = 0, N = Node->capture_size(); I != N; ++I) { + const auto *C = Node->capture_begin() + I; + if (!C->isExplicit()) + continue; + if (Node->isInitCapture(C)) + Visit(C->getCapturedVar()); + else + Visit(Node->capture_init_begin()[I]); + } + dumpTemplateParameters(Node->getTemplateParameterList()); + for (const auto *P : Node->getCallOperator()->parameters()) + Visit(P); + Visit(Node->getBody()); + } else { + return Visit(Node->getLambdaClass()); + } } void VisitSizeOfPackExpr(const SizeOfPackExpr *Node) { Modified: vendor/llvm-project/master/clang/include/clang/AST/ASTTypeTraits.h ============================================================================== --- vendor/llvm-project/master/clang/include/clang/AST/ASTTypeTraits.h Fri Jan 17 20:30:08 2020 (r356842) +++ vendor/llvm-project/master/clang/include/clang/AST/ASTTypeTraits.h Fri Jan 17 20:45:01 2020 (r356843) @@ -16,10 +16,7 @@ #define LLVM_CLANG_AST_ASTTYPETRAITS_H #include "clang/AST/ASTFwd.h" -#include "clang/AST/Decl.h" #include "clang/AST/NestedNameSpecifier.h" -#include "clang/AST/OpenMPClause.h" -#include "clang/AST/Stmt.h" #include "clang/AST/TemplateBase.h" #include "clang/AST/TypeLoc.h" #include "clang/Basic/LLVM.h" @@ -46,7 +43,10 @@ enum TraversalKind { /// Will not traverse implicit casts and parentheses. /// Corresponds to Expr::IgnoreParenImpCasts() - TK_IgnoreImplicitCastsAndParentheses + TK_IgnoreImplicitCastsAndParentheses, + + /// Ignore AST nodes not written in the source + TK_IgnoreUnlessSpelledInSource }; /// Kind identifier. Added: vendor/llvm-project/master/clang/include/clang/AST/AbstractBasicReader.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/llvm-project/master/clang/include/clang/AST/AbstractBasicReader.h Fri Jan 17 20:45:01 2020 (r356843) @@ -0,0 +1,263 @@ +//==--- AbstractBasiceReader.h - Abstract basic value deserialization -----===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef CLANG_AST_ABSTRACTBASICREADER_H +#define CLANG_AST_ABSTRACTBASICREADER_H + +#include "clang/AST/DeclTemplate.h" + +namespace clang { +namespace serialization { + +template +inline T makeNullableFromOptional(const Optional &value) { + return (value ? *value : T()); +} + +template +inline T *makePointerFromOptional(Optional value) { + return (value ? *value : nullptr); +} + +// PropertyReader is a class concept that requires the following method: +// BasicReader find(llvm::StringRef propertyName); +// where BasicReader is some class conforming to the BasicReader concept. +// An abstract AST-node reader is created with a PropertyReader and +// performs a sequence of calls like so: +// propertyReader.find(propertyName).read##TypeName() +// to read the properties of the node it is deserializing. + +// BasicReader is a class concept that requires methods like: +// ValueType read##TypeName(); +// where TypeName is the name of a PropertyType node from PropertiesBase.td +// and ValueType is the corresponding C++ type name. The read method may +// require one or more buffer arguments. +// +// In addition to the concrete type names, BasicReader is expected to +// implement these methods: +// +// template +// void writeEnum(T value); +// +// Reads an enum value from the current property. EnumType will always +// be an enum type. Only necessary if the BasicReader doesn't provide +// type-specific readers for all the enum types. +// +// template +// Optional writeOptional(); +// +// Reads an optional value from the current property. +// +// template +// ArrayRef readArray(llvm::SmallVectorImpl &buffer); +// +// Reads an array of values from the current property. +// +// PropertyReader readObject(); +// +// Reads an object from the current property; the returned property +// reader will be subjected to a sequence of property reads and then +// discarded before any other properties are reader from the "outer" +// property reader (which need not be the same type). The sub-reader +// will be used as if with the following code: +// +// { +// auto &&widget = W.find("widget").readObject(); +// auto kind = widget.find("kind").readWidgetKind(); +// auto declaration = widget.find("declaration").readDeclRef(); +// return Widget(kind, declaration); +// } + +// ReadDispatcher does type-based forwarding to one of the read methods +// on the BasicReader passed in: +// +// template +// struct ReadDispatcher { +// template +// static ValueType read(BasicReader &R, BufferTypes &&...); +// }; + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@freebsd.org Fri Jan 17 20:46:34 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 70A1F1FA590; Fri, 17 Jan 2020 20:46:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ztQL2NGFz44dD; Fri, 17 Jan 2020 20:46:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4CE7CEC8D; Fri, 17 Jan 2020 20:46:34 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HKkY9o089525; Fri, 17 Jan 2020 20:46:34 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HKkYcO089524; Fri, 17 Jan 2020 20:46:34 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172046.00HKkYcO089524@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 20:46:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356844 - vendor/llvm-project/llvmorg-10-init-17466-ge26a78e7085 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/llvmorg-10-init-17466-ge26a78e7085 X-SVN-Commit-Revision: 356844 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:46:34 -0000 Author: dim Date: Fri Jan 17 20:46:33 2020 New Revision: 356844 URL: https://svnweb.freebsd.org/changeset/base/356844 Log: Tag llvm-project master e26a78e70, the last commit before the llvmorg-11-init tag, from which release/10.x was branched. Added: vendor/llvm-project/llvmorg-10-init-17466-ge26a78e7085/ - copied from r356843, vendor/llvm-project/master/ From owner-svn-src-all@freebsd.org Fri Jan 17 20:50:00 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BA1271FA623; Fri, 17 Jan 2020 20:50:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47ztVJ4Qhbz44mT; Fri, 17 Jan 2020 20:50:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7922EEC94; Fri, 17 Jan 2020 20:50:00 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HKo05I089789; Fri, 17 Jan 2020 20:50:00 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HKo0d4089788; Fri, 17 Jan 2020 20:50:00 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172050.00HKo0d4089788@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 20:50:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356845 - vendor/llvm-project/release-10.x X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/release-10.x X-SVN-Commit-Revision: 356845 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 20:50:00 -0000 Author: dim Date: Fri Jan 17 20:50:00 2020 New Revision: 356845 URL: https://svnweb.freebsd.org/changeset/base/356845 Log: Branch vendor/llvm-project/master to vendor/llvm-project/release-10.x, to allow for independent merges of the upstream master and release-10.x branches. Added: vendor/llvm-project/release-10.x/ - copied from r356844, vendor/llvm-project/master/ From owner-svn-src-all@freebsd.org Fri Jan 17 21:20:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 46FFD1FAEEC; Fri, 17 Jan 2020 21:20:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zv9D1D24z46Nq; Fri, 17 Jan 2020 21:20:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2518DF2BE; Fri, 17 Jan 2020 21:20:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HLKGYl007876; Fri, 17 Jan 2020 21:20:16 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HLKFP3007874; Fri, 17 Jan 2020 21:20:15 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172120.00HLKFP3007874@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 21:20:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356846 - in vendor/llvm-project/release-10.x/clang: include/clang/Driver lib/Driver tools/driver X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/llvm-project/release-10.x/clang: include/clang/Driver lib/Driver tools/driver X-SVN-Commit-Revision: 356846 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 21:20:16 -0000 Author: dim Date: Fri Jan 17 21:20:15 2020 New Revision: 356846 URL: https://svnweb.freebsd.org/changeset/base/356846 Log: Vendor import of llvm-project release/10.x c4a134a51. Modified: vendor/llvm-project/release-10.x/clang/include/clang/Driver/Options.td vendor/llvm-project/release-10.x/clang/lib/Driver/Driver.cpp vendor/llvm-project/release-10.x/clang/tools/driver/driver.cpp Modified: vendor/llvm-project/release-10.x/clang/include/clang/Driver/Options.td ============================================================================== --- vendor/llvm-project/release-10.x/clang/include/clang/Driver/Options.td Fri Jan 17 20:50:00 2020 (r356845) +++ vendor/llvm-project/release-10.x/clang/include/clang/Driver/Options.td Fri Jan 17 21:20:15 2020 (r356846) @@ -2855,6 +2855,14 @@ def fintegrated_as : Flag<["-"], "fintegrated-as">, Fl def fno_integrated_as : Flag<["-"], "fno-integrated-as">, Flags<[CC1Option, DriverOption]>, Group, HelpText<"Disable the integrated assembler">; + +def fintegrated_cc1 : Flag<["-"], "fintegrated-cc1">, + Flags<[CoreOption, DriverOption]>, Group, + HelpText<"Run cc1 in-process">; +def fno_integrated_cc1 : Flag<["-"], "fno-integrated-cc1">, + Flags<[CoreOption, DriverOption]>, Group, + HelpText<"Spawn a separate process for each cc1">; + def : Flag<["-"], "integrated-as">, Alias, Flags<[DriverOption]>; def : Flag<["-"], "no-integrated-as">, Alias, Flags<[CC1Option, DriverOption]>; Modified: vendor/llvm-project/release-10.x/clang/lib/Driver/Driver.cpp ============================================================================== --- vendor/llvm-project/release-10.x/clang/lib/Driver/Driver.cpp Fri Jan 17 20:50:00 2020 (r356845) +++ vendor/llvm-project/release-10.x/clang/lib/Driver/Driver.cpp Fri Jan 17 21:20:15 2020 (r356846) @@ -1035,6 +1035,10 @@ Compilation *Driver::BuildCompilation(ArrayRef argv) { +CreateAndPopulateDiagOpts(ArrayRef argv, bool &UseNewCC1Process) { auto *DiagOpts = new DiagnosticOptions; unsigned MissingArgIndex, MissingArgCount; InputArgList Args = getDriverOptTable().ParseArgs( @@ -303,6 +282,12 @@ CreateAndPopulateDiagOpts(ArrayRef argv) // Any errors that would be diagnosed here will also be diagnosed later, // when the DiagnosticsEngine actually exists. (void)ParseDiagnosticArgs(*DiagOpts, Args); + + UseNewCC1Process = + Args.hasFlag(clang::driver::options::OPT_fno_integrated_cc1, + clang::driver::options::OPT_fintegrated_cc1, + /*Default=*/CLANG_SPAWN_CC1); + return DiagOpts; } @@ -330,7 +315,7 @@ static void SetInstallDir(SmallVectorImpl argv) { // If we call the cc1 tool from the clangDriver library (through - // Driver::CC1Main), we need to cleanup the options usage count. The options + // Driver::CC1Main), we need to clean up the options usage count. The options // are currently global, and they might have been used previously by the // driver. llvm::cl::ResetAllOptionOccurrences(); @@ -413,6 +398,8 @@ int main(int argc_, const char **argv_) { return ExecuteCC1Tool(argv); } + // Handle options that need handling before the real command line parsing in + // Driver::BuildCompilation() bool CanonicalPrefixes = true; for (int i = 1, size = argv.size(); i < size; ++i) { // Skip end-of-line response file markers @@ -457,8 +444,14 @@ int main(int argc_, const char **argv_) { std::string Path = GetExecutablePath(argv[0], CanonicalPrefixes); + // Whether the cc1 tool should be called inside the current process, or if we + // should spawn a new clang subprocess (old behavior). + // Not having an additional process saves some execution time of Windows, + // and makes debugging and profiling easier. + bool UseNewCC1Process; + IntrusiveRefCntPtr DiagOpts = - CreateAndPopulateDiagOpts(argv); + CreateAndPopulateDiagOpts(argv, UseNewCC1Process); TextDiagnosticPrinter *DiagClient = new TextDiagnosticPrinter(llvm::errs(), &*DiagOpts); @@ -485,6 +478,12 @@ int main(int argc_, const char **argv_) { insertTargetAndModeArgs(TargetAndMode, argv, SavedStrings); SetBackdoorDriverOutputsFromEnvVars(TheDriver); + + if (!UseNewCC1Process) { + TheDriver.CC1Main = &ExecuteCC1Tool; + // Ensure the CC1Command actually catches cc1 crashes + llvm::CrashRecoveryContext::Enable(); + } std::unique_ptr C(TheDriver.BuildCompilation(argv)); int Res = 1; From owner-svn-src-all@freebsd.org Fri Jan 17 21:22:12 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 842F01FB0C7; Fri, 17 Jan 2020 21:22:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zvCS302gz46c1; Fri, 17 Jan 2020 21:22:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 48C07F45D; Fri, 17 Jan 2020 21:22:12 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HLMCFI012476; Fri, 17 Jan 2020 21:22:12 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HLMC6R012475; Fri, 17 Jan 2020 21:22:12 GMT (envelope-from dim@FreeBSD.org) Message-Id: <202001172122.00HLMC6R012475@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Fri, 17 Jan 2020 21:22:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r356847 - vendor/llvm-project/llvmorg-10-init-17468-gc4a134a5107 X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: vendor/llvm-project/llvmorg-10-init-17468-gc4a134a5107 X-SVN-Commit-Revision: 356847 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 21:22:12 -0000 Author: dim Date: Fri Jan 17 21:22:11 2020 New Revision: 356847 URL: https://svnweb.freebsd.org/changeset/base/356847 Log: Tag llvm-project release/10.x c4a134a51. Added: vendor/llvm-project/llvmorg-10-init-17468-gc4a134a5107/ - copied from r356846, vendor/llvm-project/release-10.x/ From owner-svn-src-all@freebsd.org Fri Jan 17 21:39:28 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DE3861FB439; Fri, 17 Jan 2020 21:39:28 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zvbN5dlxz47RL; Fri, 17 Jan 2020 21:39:28 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCD19F69A; Fri, 17 Jan 2020 21:39:28 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HLdSkQ019497; Fri, 17 Jan 2020 21:39:28 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HLdSak019496; Fri, 17 Jan 2020 21:39:28 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001172139.00HLdSak019496@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Fri, 17 Jan 2020 21:39:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356849 - head/sys/arm/broadcom/bcm2835 X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: head/sys/arm/broadcom/bcm2835 X-SVN-Commit-Revision: 356849 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 21:39:28 -0000 Author: kevans Date: Fri Jan 17 21:39:28 2020 New Revision: 356849 URL: https://svnweb.freebsd.org/changeset/base/356849 Log: bcm2835_vcbus: unifdef all platform definitions Raspberry Pi are all over the board, and the reality is that there's no harm in including all of the definitions by default but plenty of harm in the current situation. This change is safe because we match a definition by root /compatible in the FDT, so there will be no false-positives because of it. The main array of definitions grows, but it's only walked exactly once to determine which we need to use. Modified: head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Modified: head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c ============================================================================== --- head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Fri Jan 17 21:29:20 2020 (r356848) +++ head/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c Fri Jan 17 21:39:28 2020 (r356849) @@ -35,9 +35,6 @@ __FBSDID("$FreeBSD$"); * mappings for use in DMA/mailbox interactions. This is only used for the * arm64 SoC because the 32-bit SoC used the same mappings. */ -#if defined (__aarch64__) -#include "opt_soc.h" -#endif #include #include @@ -67,7 +64,6 @@ struct bcm283x_memory_mapping { vm_paddr_t vcbus_start; }; -#ifdef SOC_BCM2835 static struct bcm283x_memory_mapping bcm2835_memmap[] = { { /* SDRAM */ @@ -83,9 +79,7 @@ static struct bcm283x_memory_mapping bcm2835_memmap[] }, { 0, 0, 0 }, }; -#endif -#ifdef SOC_BCM2836 static struct bcm283x_memory_mapping bcm2836_memmap[] = { { /* SDRAM */ @@ -101,9 +95,7 @@ static struct bcm283x_memory_mapping bcm2836_memmap[] }, { 0, 0, 0 }, }; -#endif -#ifdef SOC_BRCM_BCM2837 static struct bcm283x_memory_mapping bcm2837_memmap[] = { { /* SDRAM */ @@ -119,10 +111,7 @@ static struct bcm283x_memory_mapping bcm2837_memmap[] }, { 0, 0, 0 }, }; -#endif -#ifdef SOC_BRCM_BCM2838 - /* * The BCM2838 supports up to 4GB of SDRAM, but unfortunately we can still only * map the first 1GB into the "legacy master view" (vcbus) address space. Thus, @@ -144,14 +133,12 @@ static struct bcm283x_memory_mapping bcm2838_memmap[] }, { 0, 0, 0 }, }; -#endif static struct bcm283x_memory_soc_cfg { struct bcm283x_memory_mapping *memmap; const char *soc_compat; bus_addr_t busdma_lowaddr; } bcm283x_memory_configs[] = { -#ifdef SOC_BCM2835 /* Legacy */ { .memmap = bcm2835_memmap, @@ -164,8 +151,6 @@ static struct bcm283x_memory_soc_cfg { .soc_compat = "brcm,bcm2835", .busdma_lowaddr = BUS_SPACE_MAXADDR_32BIT, }, -#endif -#ifdef SOC_BCM2836 /* Legacy */ { .memmap = bcm2836_memmap, @@ -178,16 +163,11 @@ static struct bcm283x_memory_soc_cfg { .soc_compat = "brcm,bcm2836", .busdma_lowaddr = BUS_SPACE_MAXADDR_32BIT, }, - -#endif -#ifdef SOC_BRCM_BCM2837 { .memmap = bcm2837_memmap, .soc_compat = "brcm,bcm2837", .busdma_lowaddr = BUS_SPACE_MAXADDR_32BIT, }, -#endif -#ifdef SOC_BRCM_BCM2838 { .memmap = bcm2838_memmap, .soc_compat = "brcm,bcm2711", @@ -198,7 +178,6 @@ static struct bcm283x_memory_soc_cfg { .soc_compat = "brcm,bcm2838", .busdma_lowaddr = BCM2838_PERIPH_MAXADDR, }, -#endif }; static struct bcm283x_memory_soc_cfg *booted_soc_memcfg; From owner-svn-src-all@freebsd.org Fri Jan 17 21:57:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 0F4BB1FC0A7; Fri, 17 Jan 2020 21:57:06 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zvzj6k3Gz48h7; Fri, 17 Jan 2020 21:57:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D8FCFFA88; Fri, 17 Jan 2020 21:57:05 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HLv5JA031413; Fri, 17 Jan 2020 21:57:05 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HLv5kW031412; Fri, 17 Jan 2020 21:57:05 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001172157.00HLv5kW031412@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 17 Jan 2020 21:57:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356850 - stable/12/sys/riscv/include X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/sys/riscv/include X-SVN-Commit-Revision: 356850 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 21:57:06 -0000 Author: jhb Date: Fri Jan 17 21:57:05 2020 New Revision: 356850 URL: https://svnweb.freebsd.org/changeset/base/356850 Log: MFC 353931: Fix atomic_*cmpset32 on riscv64 with clang. The lr.w instruction used to read the value from memory sign-extends the value read from memory. GCC sign-extends the 32-bit comparison value passed in whereas clang currently does not. As a result, if the value being compared has the MSB set, the comparison fails for matching 32-bit values when compiled with clang. Use a cast to explicitly sign-extend the unsigned comparison value. This works with both GCC and clang. There is commentary in the RISC-V spec that suggests that GCC's approach is more correct, but it is not clear if the commentary in the RISC-V spec is binding. Sponsored by: DARPA Modified: stable/12/sys/riscv/include/atomic.h Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/riscv/include/atomic.h ============================================================================== --- stable/12/sys/riscv/include/atomic.h Fri Jan 17 21:39:28 2020 (r356849) +++ stable/12/sys/riscv/include/atomic.h Fri Jan 17 21:57:05 2020 (r356850) @@ -116,7 +116,7 @@ atomic_cmpset_32(volatile uint32_t *p, uint32_t cmpval "bnez %1, 0b\n" "1:" : "=&r" (tmp), "=&r" (res), "+A" (*p) - : "rJ" (cmpval), "rJ" (newval) + : "rJ" ((long)(int32_t)cmpval), "rJ" (newval) : "memory"); return (!res); @@ -141,7 +141,7 @@ atomic_fcmpset_32(volatile uint32_t *p, uint32_t *cmpv "sw %0, %3\n" /* Save old value */ "2:" : "=&r" (tmp), "=&r" (res), "+A" (*p), "+A" (*cmpval) - : "rJ" (*cmpval), "rJ" (newval) + : "rJ" ((long)(int32_t)*cmpval), "rJ" (newval) : "memory"); return (!res); From owner-svn-src-all@freebsd.org Fri Jan 17 22:02:35 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D01691FC348; Fri, 17 Jan 2020 22:02:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zw6358qjz498y; Fri, 17 Jan 2020 22:02:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id ABD83FC65; Fri, 17 Jan 2020 22:02:35 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HM2ZJp037041; Fri, 17 Jan 2020 22:02:35 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HM2ZKs037040; Fri, 17 Jan 2020 22:02:35 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001172202.00HM2ZKs037040@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Fri, 17 Jan 2020 22:02:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356851 - stable/12 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12 X-SVN-Commit-Revision: 356851 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 22:02:35 -0000 Author: jhb Date: Fri Jan 17 22:02:35 2020 New Revision: 356851 URL: https://svnweb.freebsd.org/changeset/base/356851 Log: MFC 353932: Strip "sf" suffix when generating a target triple. This fixes the target triple used when compiling riscv64sf with clang. Sponsored by: DARPA Modified: stable/12/Makefile.inc1 Directory Properties: stable/12/ (props changed) Modified: stable/12/Makefile.inc1 ============================================================================== --- stable/12/Makefile.inc1 Fri Jan 17 21:57:05 2020 (r356850) +++ stable/12/Makefile.inc1 Fri Jan 17 22:02:35 2020 (r356851) @@ -126,9 +126,9 @@ TARGET_ABI= gnueabi .endif .endif MACHINE_ABI?= unknown -MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd12.1 +MACHINE_TRIPLE?=${MACHINE_ARCH:S/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${MACHINE_ABI}-freebsd12.1 TARGET_ABI?= unknown -TARGET_TRIPLE?= ${TARGET_ARCH:S/amd64/x86_64/:C/hf$//:S/mipsn32/mips64/}-${TARGET_ABI}-freebsd12.1 +TARGET_TRIPLE?= ${TARGET_ARCH:S/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${TARGET_ABI}-freebsd12.1 KNOWN_ARCHES?= aarch64/arm64 \ amd64 \ arm \ From owner-svn-src-all@freebsd.org Fri Jan 17 22:04:11 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id F35871FC3E7; Fri, 17 Jan 2020 22:04:11 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zw7v65nCz49JY; Fri, 17 Jan 2020 22:04:11 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CC97EFC67; Fri, 17 Jan 2020 22:04:11 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HM4Bkq037162; Fri, 17 Jan 2020 22:04:11 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HM4BWK037161; Fri, 17 Jan 2020 22:04:11 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202001172204.00HM4BWK037161@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Fri, 17 Jan 2020 22:04:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356852 - head/sys/net80211 X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/net80211 X-SVN-Commit-Revision: 356852 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 22:04:12 -0000 Author: cem Date: Fri Jan 17 22:04:11 2020 New Revision: 356852 URL: https://svnweb.freebsd.org/changeset/base/356852 Log: net80211: Move rate printing in amrr_node_stats() to a separate method This makes amrr_node_stats() cleaner and allows the rate printing to be reusable. Submitted by: Neel Chauhan Reviewed by: adrian Differential Revision: https://reviews.freebsd.org/D22318 Modified: head/sys/net80211/ieee80211_amrr.c Modified: head/sys/net80211/ieee80211_amrr.c ============================================================================== --- head/sys/net80211/ieee80211_amrr.c Fri Jan 17 22:02:35 2020 (r356851) +++ head/sys/net80211/ieee80211_amrr.c Fri Jan 17 22:04:11 2020 (r356852) @@ -477,18 +477,12 @@ amrr_sysctlattach(struct ieee80211vap *vap, } static void -amrr_node_stats(struct ieee80211_node *ni, struct sbuf *s) +amrr_print_node_rate(struct ieee80211_amrr_node *amn, + struct ieee80211_node *ni, struct sbuf *s) { int rate; - struct ieee80211_amrr_node *amn = ni->ni_rctls; struct ieee80211_rateset *rs; - /* XXX TODO: check locking? */ - - if (!amn) - return; - - /* XXX TODO: this should be a method */ if (amrr_node_is_11n(ni)) { rs = (struct ieee80211_rateset *) &ni->ni_htrates; rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL; @@ -498,7 +492,19 @@ amrr_node_stats(struct ieee80211_node *ni, struct sbuf rate = rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL; sbuf_printf(s, "rate: %d Mbit\n", rate / 2); } +} +static void +amrr_node_stats(struct ieee80211_node *ni, struct sbuf *s) +{ + struct ieee80211_amrr_node *amn = ni->ni_rctls; + + /* XXX TODO: check locking? */ + + if (!amn) + return; + + amrr_print_node_rate(amn, ni, s); sbuf_printf(s, "ticks: %d\n", amn->amn_ticks); sbuf_printf(s, "txcnt: %u\n", amn->amn_txcnt); sbuf_printf(s, "success: %u\n", amn->amn_success); From owner-svn-src-all@freebsd.org Fri Jan 17 22:21:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2E4531FC9FC; Fri, 17 Jan 2020 22:21:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zwX30RtWz4B9b; Fri, 17 Jan 2020 22:21:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0ABF0FFB6; Fri, 17 Jan 2020 22:21:39 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HMLcVa045027; Fri, 17 Jan 2020 22:21:38 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HMLcxj045026; Fri, 17 Jan 2020 22:21:38 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001172221.00HMLcxj045026@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 17 Jan 2020 22:21:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356853 - stable/12/sys/arm/conf X-SVN-Group: stable-12 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/12/sys/arm/conf X-SVN-Commit-Revision: 356853 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 22:21:39 -0000 Author: ian Date: Fri Jan 17 22:21:38 2020 New Revision: 356853 URL: https://svnweb.freebsd.org/changeset/base/356853 Log: MFC r356295: Add the xdma framework and pl330 dma drivers to arm lint build. Modified: stable/12/sys/arm/conf/NOTES Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/arm/conf/NOTES ============================================================================== --- stable/12/sys/arm/conf/NOTES Fri Jan 17 22:04:11 2020 (r356852) +++ stable/12/sys/arm/conf/NOTES Fri Jan 17 22:21:38 2020 (r356853) @@ -42,3 +42,7 @@ nodevice mps # Add devices which are specific to various arm platforms... device twsi # i2c controller on Marvel and Allwinner + +device pl330 # ARM PL330 dma controller +device xdma # xDMA framework for SoC on-chip dma controllers + From owner-svn-src-all@freebsd.org Fri Jan 17 22:24:57 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 389571FCAA7; Fri, 17 Jan 2020 22:24:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zwbs0pSJz4BTG; Fri, 17 Jan 2020 22:24:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 16D221800B; Fri, 17 Jan 2020 22:24:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HMOuoP049808; Fri, 17 Jan 2020 22:24:56 GMT (envelope-from ian@FreeBSD.org) Received: (from ian@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HMOuDZ049807; Fri, 17 Jan 2020 22:24:56 GMT (envelope-from ian@FreeBSD.org) Message-Id: <202001172224.00HMOuDZ049807@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org using -f From: Ian Lepore Date: Fri, 17 Jan 2020 22:24:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356854 - stable/12/sys/cddl/dev/dtrace/arm X-SVN-Group: stable-12 X-SVN-Commit-Author: ian X-SVN-Commit-Paths: stable/12/sys/cddl/dev/dtrace/arm X-SVN-Commit-Revision: 356854 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 22:24:57 -0000 Author: ian Date: Fri Jan 17 22:24:56 2020 New Revision: 356854 URL: https://svnweb.freebsd.org/changeset/base/356854 Log: MFC r356574: Remove scary-looking printf output that happens when you kldload dtrace on arm. Replace it with a comment block explaining why the function is empty on 32-bit arm. Modified: stable/12/sys/cddl/dev/dtrace/arm/dtrace_subr.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/cddl/dev/dtrace/arm/dtrace_subr.c ============================================================================== --- stable/12/sys/cddl/dev/dtrace/arm/dtrace_subr.c Fri Jan 17 22:21:38 2020 (r356853) +++ stable/12/sys/cddl/dev/dtrace/arm/dtrace_subr.c Fri Jan 17 22:24:56 2020 (r356854) @@ -123,7 +123,18 @@ dtrace_invop_remove(int (*func)(uintptr_t, struct trap void dtrace_toxic_ranges(void (*func)(uintptr_t base, uintptr_t limit)) { - printf("IMPLEMENT ME: dtrace_toxic_ranges\n"); + + /* + * There are no ranges to exclude that are common to all 32-bit arm + * platforms. This function only needs to exclude ranges "... in + * which it is impossible to recover from such a load after it has been + * attempted." -- i.e., accessing within the range causes some sort + * fault in the system which is not handled by the normal arm + * exception-handling mechanisms. If systems exist where that is the + * case, a method to handle this functionality would have to be added to + * the platform_if interface so that those systems could provide their + * specific toxic range(s). + */ } void From owner-svn-src-all@freebsd.org Fri Jan 17 22:26:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2D1261FCB53; Fri, 17 Jan 2020 22:26:42 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zwdt0Lbbz4BcG; Fri, 17 Jan 2020 22:26:42 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 06F6B1800D; Fri, 17 Jan 2020 22:26:42 +0000 (UTC) (envelope-from woodsb02@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HMQfbD049948; Fri, 17 Jan 2020 22:26:41 GMT (envelope-from woodsb02@FreeBSD.org) Received: (from woodsb02@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HMQfix049947; Fri, 17 Jan 2020 22:26:41 GMT (envelope-from woodsb02@FreeBSD.org) Message-Id: <202001172226.00HMQfix049947@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: woodsb02 set sender to woodsb02@FreeBSD.org using -f From: Ben Woods Date: Fri, 17 Jan 2020 22:26:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356855 - head/usr.sbin/bsdinstall/partedit X-SVN-Group: head X-SVN-Commit-Author: woodsb02 X-SVN-Commit-Paths: head/usr.sbin/bsdinstall/partedit X-SVN-Commit-Revision: 356855 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 22:26:42 -0000 Author: woodsb02 (ports committer) Date: Fri Jan 17 22:26:41 2020 New Revision: 356855 URL: https://svnweb.freebsd.org/changeset/base/356855 Log: Fix regression in bsdinstall post r356740 - partedit errno(2) 21 EISDIR This resulted in the partitioning step failing if either of the "Auto (UFS)" or "Manual" options were selected. Reason: partedit was attempting to open a directory (TMPDIR) read/write, which resulted in errno(2) 21 - EISDIR - Is a directory. Reported by: Clay Daniels Reviewed by: Ryan Moeller Approved by: emaste, bcran Differential Revision: https://reviews.freebsd.org/D23232 Modified: head/usr.sbin/bsdinstall/partedit/partedit.c Modified: head/usr.sbin/bsdinstall/partedit/partedit.c ============================================================================== --- head/usr.sbin/bsdinstall/partedit/partedit.c Fri Jan 17 22:24:56 2020 (r356854) +++ head/usr.sbin/bsdinstall/partedit/partedit.c Fri Jan 17 22:26:41 2020 (r356855) @@ -93,7 +93,7 @@ main(int argc, const char **argv) tmpdir = getenv("TMPDIR"); if (tmpdir == NULL) tmpdir = "/tmp"; - tmpdfd = open(tmpdir, O_RDWR | O_DIRECTORY); + tmpdfd = open(tmpdir, O_DIRECTORY); if (tmpdfd < 0) err(EX_OSERR, "%s", tmpdir); unlinkat(tmpdfd, "bsdinstall-esps", 0); From owner-svn-src-all@freebsd.org Fri Jan 17 23:41:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 8BF671FE369; Fri, 17 Jan 2020 23:41:36 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47zyJJ3GFlz4GDY; Fri, 17 Jan 2020 23:41:36 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6AEC518D75; Fri, 17 Jan 2020 23:41:36 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00HNfaDC095050; Fri, 17 Jan 2020 23:41:36 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00HNfaRw095049; Fri, 17 Jan 2020 23:41:36 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202001172341.00HNfaRw095049@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Fri, 17 Jan 2020 23:41:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356856 - head/sys/powerpc/powerpc X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/sys/powerpc/powerpc X-SVN-Commit-Revision: 356856 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Fri, 17 Jan 2020 23:41:36 -0000 Author: bdragon Date: Fri Jan 17 23:41:35 2020 New Revision: 356856 URL: https://svnweb.freebsd.org/changeset/base/356856 Log: [PowerPC] Save a dword in the powerpc64 signal trampoline In r291668, an instruction was added to sigcode64.S without the nop pad at the end being taken out. Due to alignment, this means that a dword is being wasted on the shared page for no reason. Take out this nop, and add some comments while I'm here. Reviewed by: jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23055 Modified: head/sys/powerpc/powerpc/sigcode64.S Modified: head/sys/powerpc/powerpc/sigcode64.S ============================================================================== --- head/sys/powerpc/powerpc/sigcode64.S Fri Jan 17 22:26:41 2020 (r356855) +++ head/sys/powerpc/powerpc/sigcode64.S Fri Jan 17 23:41:35 2020 (r356856) @@ -63,9 +63,13 @@ CNAME(sigcode64_elfv2): addi 3,1,112+SF_UC /* restore sp, and get &frame->sf_uc */ li 0,SYS_sigreturn sc /* sigreturn(scp) */ + /* + * If we get back to here, it means sigreturn failed. + * As such, we are now stuck in the wrong context. + * Exit immediately without touching the stack. + */ li 0,SYS_exit sc /* exit(errno) */ - nop /* align to doubleword */ endsigcode64: .data From owner-svn-src-all@freebsd.org Sat Jan 18 01:22:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 59E96221EDF; Sat, 18 Jan 2020 01:22:55 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4800YC1g70z4MDH; Sat, 18 Jan 2020 01:22:55 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3479A1A1DC; Sat, 18 Jan 2020 01:22:55 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I1Mt7F059965; Sat, 18 Jan 2020 01:22:55 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I1MtF9059964; Sat, 18 Jan 2020 01:22:55 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202001180122.00I1MtF9059964@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Sat, 18 Jan 2020 01:22:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356857 - head/sys/powerpc/booke X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: head/sys/powerpc/booke X-SVN-Commit-Revision: 356857 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 01:22:55 -0000 Author: bdragon Date: Sat Jan 18 01:22:54 2020 New Revision: 356857 URL: https://svnweb.freebsd.org/changeset/base/356857 Log: [PowerPC] Fix Book-E direct map for >=16G ram on e5500 It turns out the maximum TLB1 page size on e5500 is 4G, despite the format being defined for up to 1TB. So, we need to clamp the DMAP TLB1 entries to not attempt to create 16G or larger entries. Fixes boot on my X5000 in which I just installed 16G of RAM. Reviewed by: jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23244 Modified: head/sys/powerpc/booke/pmap.c Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Fri Jan 17 23:41:35 2020 (r356856) +++ head/sys/powerpc/booke/pmap.c Sat Jan 18 01:22:54 2020 (r356857) @@ -4028,7 +4028,22 @@ tlb1_mapin_region(vm_offset_t va, vm_paddr_t pa, vm_si sz >>= 2; } while (va % sz != 0); } - /* Now align from there to VA */ +#ifdef __powerpc64__ + /* + * Clamp TLB1 entries to 4G. + * + * While the e6500 supports up to 1TB mappings, the e5500 + * only supports up to 4G mappings. (0b1011) + * + * If any e6500 machines capable of supporting a very + * large amount of memory appear in the future, we can + * revisit this. + * + * For now, though, since we have plenty of space in TLB1, + * always avoid creating entries larger than 4GB. + */ + sz = MIN(sz, 1UL << 32); +#endif if (bootverbose) printf("Wiring VA=%p to PA=%jx (size=%lx)\n", (void *)va, (uintmax_t)pa, (long)sz); From owner-svn-src-all@freebsd.org Sat Jan 18 01:26:55 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D282222214C; Sat, 18 Jan 2020 01:26:55 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4800dq5DJMz4MQH; Sat, 18 Jan 2020 01:26:55 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id AEA4C1A1F2; Sat, 18 Jan 2020 01:26:55 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I1Qt5n060201; Sat, 18 Jan 2020 01:26:55 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I1QsjE060194; Sat, 18 Jan 2020 01:26:54 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001180126.00I1QsjE060194@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 18 Jan 2020 01:26:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356858 - in head/sys/powerpc: include ofw powernv powerpc X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys/powerpc: include ofw powernv powerpc X-SVN-Commit-Revision: 356858 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 01:26:55 -0000 Author: jhibbits Date: Sat Jan 18 01:26:54 2020 New Revision: 356858 URL: https://svnweb.freebsd.org/changeset/base/356858 Log: powerpc: Fix the NUMA domain list on powernv Summary: Consolidate the NUMA associativity handling into a platform function. Non-NUMA platforms will just fall back to the default (0). Currently only implemented for powernv, which uses a lookup table to map the device tree associativity into a system NUMA domain. Fixes hangs on powernv after r356534, and corrects a fairly longstanding bug in powernv's NUMA handling, which ended up using domains 1 and 2 for devices and memory on power9, while CPUs were bound to domains 0 and 1. Reviewed by: bdragon, luporl Differential Revision: https://reviews.freebsd.org/D23220 Modified: head/sys/powerpc/include/ofw_machdep.h head/sys/powerpc/include/platform.h head/sys/powerpc/ofw/ofw_machdep.c head/sys/powerpc/ofw/ofw_pcibus.c head/sys/powerpc/powernv/platform_powernv.c head/sys/powerpc/powerpc/platform.c head/sys/powerpc/powerpc/platform_if.m Modified: head/sys/powerpc/include/ofw_machdep.h ============================================================================== --- head/sys/powerpc/include/ofw_machdep.h Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/include/ofw_machdep.h Sat Jan 18 01:26:54 2020 (r356858) @@ -37,6 +37,9 @@ #include #include +struct mem_region; +struct numa_mem_region; + typedef uint32_t cell_t; void OF_getetheraddr(device_t dev, u_char *addr); Modified: head/sys/powerpc/include/platform.h ============================================================================== --- head/sys/powerpc/include/platform.h Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/include/platform.h Sat Jan 18 01:26:54 2020 (r356858) @@ -37,6 +37,7 @@ #ifndef _MACHINE_PLATFORM_H_ #define _MACHINE_PLATFORM_H_ +#include #include #include @@ -66,6 +67,7 @@ int platform_smp_start_cpu(struct pcpu *); void platform_smp_timebase_sync(u_long tb, int ap); void platform_smp_ap_init(void); void platform_smp_probe_threads(void); +int platform_node_numa_domain(phandle_t); const char *installed_platform(void); void platform_probe_and_attach(void); Modified: head/sys/powerpc/ofw/ofw_machdep.c ============================================================================== --- head/sys/powerpc/ofw/ofw_machdep.c Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/ofw/ofw_machdep.c Sat Jan 18 01:26:54 2020 (r356858) @@ -466,9 +466,8 @@ void ofw_numa_mem_regions(struct numa_mem_region *memp, int *memsz) { phandle_t phandle; - int res, count, msz; + int count, msz; char name[31]; - cell_t associativity[5]; struct numa_mem_region *curmemp; msz = 0; @@ -486,13 +485,8 @@ ofw_numa_mem_regions(struct numa_mem_region *memp, int if (count == 0) continue; curmemp = &memp[msz]; - res = OF_getproplen(phandle, "ibm,associativity"); - if (res <= 0) - continue; MPASS(count == 1); - OF_getencprop(phandle, "ibm,associativity", - associativity, res); - curmemp->mr_domain = associativity[3]; + curmemp->mr_domain = platform_node_numa_domain(phandle); if (bootverbose) printf("%s %#jx-%#jx domain(%ju)\n", name, (uintmax_t)curmemp->mr_start, Modified: head/sys/powerpc/ofw/ofw_pcibus.c ============================================================================== --- head/sys/powerpc/ofw/ofw_pcibus.c Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/ofw/ofw_pcibus.c Sat Jan 18 01:26:54 2020 (r356858) @@ -385,39 +385,13 @@ ofw_pcibus_get_devinfo(device_t bus, device_t dev) return (&dinfo->opd_obdinfo); } -static int -ofw_pcibus_parse_associativity(device_t dev, int *domain) -{ - phandle_t node; - cell_t associativity[5]; - int res; - - if ((node = ofw_bus_get_node(dev)) == -1) { - if (bootverbose) - device_printf(dev, "no ofw node found\n"); - return (ENXIO); - } - res = OF_getproplen(node, "ibm,associativity"); - if (res <= 0) - return (ENXIO); - OF_getencprop(node, "ibm,associativity", - associativity, res); - - *domain = associativity[3]; - if (bootverbose) - device_printf(dev, "domain(%d)\n", *domain); - return (0); -} - int ofw_pcibus_get_cpus(device_t dev, device_t child, enum cpu_sets op, size_t setsize, cpuset_t *cpuset) { int d, error; - error = ofw_pcibus_parse_associativity(child, &d); - if (error) - return (bus_generic_get_cpus(dev, child, op, setsize, cpuset)); + d = platform_node_numa_domain(ofw_bus_get_node(dev)); switch (op) { case LOCAL_CPUS: @@ -450,12 +424,7 @@ ofw_pcibus_get_cpus(device_t dev, device_t child, enum int ofw_pcibus_get_domain(device_t dev, device_t child, int *domain) { - int d, error; + *domain = platform_node_numa_domain(ofw_bus_get_node(child)); - error = ofw_pcibus_parse_associativity(child, &d); - /* No ofw node; go up a level */ - if (error) - return (bus_generic_get_domain(dev, child, domain)); - *domain = d; return (0); } Modified: head/sys/powerpc/powernv/platform_powernv.c ============================================================================== --- head/sys/powerpc/powernv/platform_powernv.c Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/powernv/platform_powernv.c Sat Jan 18 01:26:54 2020 (r356858) @@ -79,6 +79,7 @@ static struct cpu_group *powernv_smp_topo(platform_t p static void powernv_reset(platform_t); static void powernv_cpu_idle(sbintime_t sbt); static int powernv_cpuref_init(void); +static int powernv_node_numa_domain(platform_t platform, phandle_t node); static platform_method_t powernv_methods[] = { PLATFORMMETHOD(platform_probe, powernv_probe), @@ -96,6 +97,7 @@ static platform_method_t powernv_methods[] = { PLATFORMMETHOD(platform_smp_probe_threads, powernv_smp_probe_threads), PLATFORMMETHOD(platform_smp_topo, powernv_smp_topo), #endif + PLATFORMMETHOD(platform_node_numa_domain, powernv_node_numa_domain), PLATFORMMETHOD(platform_reset, powernv_reset), @@ -111,6 +113,7 @@ static platform_def_t powernv_platform = { static struct cpuref platform_cpuref[MAXCPU]; static int platform_cpuref_cnt; static int platform_cpuref_valid; +static int platform_associativity; PLATFORM_DEF(powernv_platform); @@ -131,8 +134,10 @@ powernv_attach(platform_t plat) uint32_t nptlp, shift = 0, slb_encoding = 0; int32_t lp_size, lp_encoding; char buf[255]; + pcell_t refpoints[3]; pcell_t prop; phandle_t cpu; + phandle_t opal; int res, len, idx; register_t msr; @@ -144,7 +149,14 @@ powernv_attach(platform_t plat) #else opal_call(OPAL_REINIT_CPUS, 1 /* Big endian */); #endif + opal = OF_finddevice("/ibm,opal"); + platform_associativity = 4; /* Skiboot default. */ + if (OF_getencprop(opal, "ibm,associativity-reference-points", refpoints, + sizeof(refpoints)) > 0) { + platform_associativity = refpoints[0]; + } + if (cpu_idle_hook == NULL) cpu_idle_hook = powernv_cpu_idle; @@ -328,7 +340,8 @@ powernv_cpuref_init(void) for (a = 0; a < res/sizeof(cell_t); a++) { tmp_cpuref[tmp_cpuref_cnt].cr_hwref = interrupt_servers[a]; tmp_cpuref[tmp_cpuref_cnt].cr_cpuid = tmp_cpuref_cnt; - tmp_cpuref[tmp_cpuref_cnt].cr_domain = interrupt_servers[a] >> 11; + tmp_cpuref[tmp_cpuref_cnt].cr_domain = + powernv_node_numa_domain(NULL, cpu); if (interrupt_servers[a] == (uint32_t)powernv_boot_pir) bsp = tmp_cpuref_cnt; @@ -493,6 +506,40 @@ powernv_smp_ap_init(platform_t platform) static void powernv_cpu_idle(sbintime_t sbt) { +} + +static int +powernv_node_numa_domain(platform_t platform, phandle_t node) +{ + /* XXX: Is locking necessary in here? */ + static int numa_domains[MAXMEMDOM]; + static int numa_max_domain; + cell_t associativity[5]; + int i, res; + + res = OF_getproplen(node, "ibm,associativity"); + + /* If already at the root, use default domain. */ + if (res == 0) + return (0); + else if (res < 0) + /* If this node doesn't have associativity, check its parent. */ + return (powernv_node_numa_domain(platform, OF_parent(node))); + + OF_getencprop(node, "ibm,associativity", + associativity, res); + + for (i = 0; i < numa_max_domain; i++) { + if (numa_domains[i] == associativity[platform_associativity]) + return (i); + } + if (i < MAXMEMDOM) + numa_domains[numa_max_domain++] = + associativity[platform_associativity]; + else + i = 0; + + return (i); } /* Set up the Nest MMU on POWER9 relatively early, but after pmap is setup. */ Modified: head/sys/powerpc/powerpc/platform.c ============================================================================== --- head/sys/powerpc/powerpc/platform.c Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/powerpc/platform.c Sat Jan 18 01:26:54 2020 (r356858) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -309,6 +310,12 @@ cpu_topo(void) return (PLATFORM_SMP_TOPO(plat_obj)); } #endif + +int +platform_node_numa_domain(phandle_t node) +{ + return (PLATFORM_NODE_NUMA_DOMAIN(plat_obj, node)); +} /* * Reset back to firmware. Modified: head/sys/powerpc/powerpc/platform_if.m ============================================================================== --- head/sys/powerpc/powerpc/platform_if.m Sat Jan 18 01:22:54 2020 (r356857) +++ head/sys/powerpc/powerpc/platform_if.m Sat Jan 18 01:26:54 2020 (r356858) @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -88,6 +89,11 @@ CODE { { return; } + static int platform_null_node_numa_domain(platform_t plat, + phandle_t node) + { + return (0); + } }; /** @@ -255,3 +261,12 @@ METHOD void smp_timebase_sync { int _ap; }; +/** + * @brief Return the NUMA domain for the given device tree node. Always returns + * a valid domain. + * + */ +METHOD int node_numa_domain { + platform_t _plat; + phandle_t _node; +} DEFAULT platform_null_node_numa_domain; From owner-svn-src-all@freebsd.org Sat Jan 18 01:29:03 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 93B402222E3; Sat, 18 Jan 2020 01:29:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4800hH3Pxdz4MZM; Sat, 18 Jan 2020 01:29:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6F38F1A202; Sat, 18 Jan 2020 01:29:03 +0000 (UTC) (envelope-from mjg@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I1T3aa060339; Sat, 18 Jan 2020 01:29:03 GMT (envelope-from mjg@FreeBSD.org) Received: (from mjg@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I1T3vK060338; Sat, 18 Jan 2020 01:29:03 GMT (envelope-from mjg@FreeBSD.org) Message-Id: <202001180129.00I1T3vK060338@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org using -f From: Mateusz Guzik Date: Sat, 18 Jan 2020 01:29:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356859 - head/sys/kern X-SVN-Group: head X-SVN-Commit-Author: mjg X-SVN-Commit-Paths: head/sys/kern X-SVN-Commit-Revision: 356859 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 01:29:03 -0000 Author: mjg Date: Sat Jan 18 01:29:02 2020 New Revision: 356859 URL: https://svnweb.freebsd.org/changeset/base/356859 Log: vfs: distribute freevnodes counter per-cpu It gets rolled up to the global when deferred requeueing is performed. A dedicated read routine makes sure to return a value only off by a certain amount. This soothes a global serialisation point for all 0<->1 hold count transitions. Reviewed by: jeff Differential Revision: https://reviews.freebsd.org/D23235 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c ============================================================================== --- head/sys/kern/vfs_subr.c Sat Jan 18 01:26:54 2020 (r356858) +++ head/sys/kern/vfs_subr.c Sat Jan 18 01:29:02 2020 (r356859) @@ -191,10 +191,11 @@ static struct vnode *vnode_list_reclaim_marker; * E.g., 9% of 75% of MAXVNODES is more than 566000 vnodes to reclaim * whenever vnlru_proc() becomes active. */ -static u_long wantfreevnodes; -static u_long __exclusive_cache_line freevnodes; +static long wantfreevnodes; +static long __exclusive_cache_line freevnodes; SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD, &freevnodes, 0, "Number of \"free\" vnodes"); +static long freevnodes_old; static counter_u64_t recycles_count; SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count, @@ -299,6 +300,7 @@ SYSCTL_INT(_debug, OID_AUTO, rush_requests, CTLFLAG_RW #define VDBATCH_SIZE 8 struct vdbatch { u_int index; + long freevnodes; struct mtx lock; struct vnode *tab[VDBATCH_SIZE]; }; @@ -323,6 +325,8 @@ static u_long vlowat; /* minimal extras before expans static u_long vstir; /* nonzero to stir non-free vnodes */ static volatile int vsmalltrigger = 8; /* pref to keep if > this many pages */ +static u_long vnlru_read_freevnodes(void); + /* * Note that no attempt is made to sanitize these parameters. */ @@ -1205,15 +1209,17 @@ SYSCTL_INT(_debug, OID_AUTO, max_vnlru_free, CTLFLAG_R /* * Attempt to reduce the free list by the requested amount. */ -static void +static int vnlru_free_locked(int count, struct vfsops *mnt_op) { struct vnode *vp, *mvp; struct mount *mp; + int ocount; mtx_assert(&vnode_list_mtx, MA_OWNED); if (count > max_vnlru_free) count = max_vnlru_free; + ocount = count; mvp = vnode_list_free_marker; restart: vp = mvp; @@ -1254,6 +1260,7 @@ restart: mtx_lock(&vnode_list_mtx); goto restart; } + return (ocount - count); } void @@ -1283,6 +1290,38 @@ vnlru_recalc(void) static struct proc *vnlruproc; static int vnlruproc_sig; +/* + * The main freevnodes counter is only updated when threads requeue their vnode + * batches. CPUs are conditionally walked to compute a more accurate total. + * + * Limit how much of a slop are we willing to tolerate. Note: the actual value + * at any given moment can still exceed slop, but it should not be by significant + * margin in practice. + */ +#define VNLRU_FREEVNODES_SLOP 128 + +static u_long +vnlru_read_freevnodes(void) +{ + struct vdbatch *vd; + long slop; + int cpu; + + mtx_assert(&vnode_list_mtx, MA_OWNED); + if (freevnodes > freevnodes_old) + slop = freevnodes - freevnodes_old; + else + slop = freevnodes_old - freevnodes; + if (slop < VNLRU_FREEVNODES_SLOP) + return (freevnodes >= 0 ? freevnodes : 0); + freevnodes_old = freevnodes; + CPU_FOREACH(cpu) { + vd = DPCPU_ID_PTR((cpu), vd); + freevnodes_old += vd->freevnodes; + } + return (freevnodes_old >= 0 ? freevnodes_old : 0); +} + static bool vnlru_under(u_long rnumvnodes, u_long limit) { @@ -1293,6 +1332,23 @@ vnlru_under(u_long rnumvnodes, u_long limit) space = desiredvnodes - rnumvnodes; if (space < limit) { + rfreevnodes = vnlru_read_freevnodes(); + if (rfreevnodes > wantfreevnodes) + space += rfreevnodes - wantfreevnodes; + } + return (space < limit); +} + +static bool +vnlru_under_unlocked(u_long rnumvnodes, u_long limit) +{ + long rfreevnodes, space; + + if (__predict_false(rnumvnodes > desiredvnodes)) + return (true); + + space = desiredvnodes - rnumvnodes; + if (space < limit) { rfreevnodes = atomic_load_long(&freevnodes); if (rfreevnodes > wantfreevnodes) space += rfreevnodes - wantfreevnodes; @@ -1317,16 +1373,23 @@ vnlru_proc(void) u_long rnumvnodes, rfreevnodes, target; unsigned long onumvnodes; int done, force, trigger, usevnodes; - bool reclaim_nc_src; + bool reclaim_nc_src, want_reread; EVENTHANDLER_REGISTER(shutdown_pre_sync, kproc_shutdown, vnlruproc, SHUTDOWN_PRI_FIRST); force = 0; + want_reread = false; for (;;) { kproc_suspend_check(vnlruproc); mtx_lock(&vnode_list_mtx); rnumvnodes = atomic_load_long(&numvnodes); + + if (want_reread) { + force = vnlru_under(numvnodes, vhiwat) ? 1 : 0; + want_reread = false; + } + /* * If numvnodes is too large (due to desiredvnodes being * adjusted using its sysctl, or emergency growth), first @@ -1354,7 +1417,7 @@ vnlru_proc(void) PVFS|PDROP, "vlruwt", hz); continue; } - rfreevnodes = atomic_load_long(&freevnodes); + rfreevnodes = vnlru_read_freevnodes(); onumvnodes = rnumvnodes; /* @@ -1397,16 +1460,14 @@ vnlru_proc(void) force = 3; continue; } + want_reread = true; force = 0; vnlru_nowhere++; tsleep(vnlruproc, PPAUSE, "vlrup", hz * 3); - } else + } else { + want_reread = true; kern_yield(PRI_USER); - /* - * After becoming active to expand above low water, keep - * active until above high water. - */ - force = vnlru_under(numvnodes, vhiwat) ? 1 : 0; + } } } @@ -1510,7 +1571,7 @@ vn_alloc_hard(struct mount *mp) vn_alloc_cyclecount = 0; goto alloc; } - rfreevnodes = atomic_load_long(&freevnodes); + rfreevnodes = vnlru_read_freevnodes(); if (vn_alloc_cyclecount++ >= rfreevnodes) { vn_alloc_cyclecount = 0; vstir = 1; @@ -1525,10 +1586,8 @@ vn_alloc_hard(struct mount *mp) * should be chosen so that we never wait or even reclaim from * the free list to below its target minimum. */ - if (rfreevnodes > 0) { - vnlru_free_locked(1, NULL); + if (vnlru_free_locked(1, NULL) > 0) goto alloc; - } if (mp == NULL || (mp->mnt_kern_flag & MNTK_SUSPEND) == 0) { /* * Wait for space for a new vnode. @@ -1536,7 +1595,7 @@ vn_alloc_hard(struct mount *mp) vnlru_kick(); msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, "vlruwk", hz); if (atomic_load_long(&numvnodes) + 1 > desiredvnodes && - atomic_load_long(&freevnodes) > 1) + vnlru_read_freevnodes() > 1) vnlru_free_locked(1, NULL); } alloc: @@ -1555,7 +1614,7 @@ vn_alloc(struct mount *mp) if (__predict_false(vn_alloc_cyclecount != 0)) return (vn_alloc_hard(mp)); rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1; - if (__predict_false(vnlru_under(rnumvnodes, vlowat))) { + if (__predict_false(vnlru_under_unlocked(rnumvnodes, vlowat))) { atomic_subtract_long(&numvnodes, 1); return (vn_alloc_hard(mp)); } @@ -3177,13 +3236,17 @@ vunref(struct vnode *vp) static void vhold_activate(struct vnode *vp) { + struct vdbatch *vd; ASSERT_VI_LOCKED(vp, __func__); VNASSERT(vp->v_holdcnt == 0, vp, ("%s: wrong hold count", __func__)); VNASSERT(vp->v_op != NULL, vp, ("%s: vnode already reclaimed.", __func__)); - atomic_subtract_long(&freevnodes, 1); + critical_enter(); + vd = DPCPU_PTR(vd); + vd->freevnodes--; + critical_exit(); refcount_acquire(&vp->v_holdcnt); } @@ -3233,9 +3296,12 @@ vdbatch_process(struct vdbatch *vd) int i; mtx_assert(&vd->lock, MA_OWNED); + MPASS(curthread->td_pinned > 0); MPASS(vd->index == VDBATCH_SIZE); mtx_lock(&vnode_list_mtx); + critical_enter(); + freevnodes += vd->freevnodes; for (i = 0; i < VDBATCH_SIZE; i++) { vp = vd->tab[i]; TAILQ_REMOVE(&vnode_list, vp, v_vnodelist); @@ -3244,6 +3310,8 @@ vdbatch_process(struct vdbatch *vd) vp->v_dbatchcpu = NOCPU; } mtx_unlock(&vnode_list_mtx); + critical_exit(); + vd->freevnodes = 0; bzero(vd->tab, sizeof(vd->tab)); vd->index = 0; } @@ -3257,20 +3325,24 @@ vdbatch_enqueue(struct vnode *vp) VNASSERT(!VN_IS_DOOMED(vp), vp, ("%s: deferring requeue of a doomed vnode", __func__)); + critical_enter(); + vd = DPCPU_PTR(vd); + vd->freevnodes++; if (vp->v_dbatchcpu != NOCPU) { VI_UNLOCK(vp); + critical_exit(); return; } - /* - * A hack: pin us to the current CPU so that we know what to put in - * ->v_dbatchcpu. - */ sched_pin(); - vd = DPCPU_PTR(vd); + critical_exit(); mtx_lock(&vd->lock); MPASS(vd->index < VDBATCH_SIZE); MPASS(vd->tab[vd->index] == NULL); + /* + * A hack: we depend on being pinned so that we know what to put in + * ->v_dbatchcpu. + */ vp->v_dbatchcpu = curcpu; vd->tab[vd->index] = vp; vd->index++; @@ -3355,7 +3427,6 @@ vdrop_deactivate(struct vnode *vp) mp->mnt_lazyvnodelistsize--; mtx_unlock(&mp->mnt_listmtx); } - atomic_add_long(&freevnodes, 1); vdbatch_enqueue(vp); } From owner-svn-src-all@freebsd.org Sat Jan 18 02:39:39 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 3D127224A28; Sat, 18 Jan 2020 02:39:39 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4802Fl0jRgz4QZ6; Sat, 18 Jan 2020 02:39:39 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 138DE1AF75; Sat, 18 Jan 2020 02:39:39 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I2dcpi001813; Sat, 18 Jan 2020 02:39:38 GMT (envelope-from jhibbits@FreeBSD.org) Received: (from jhibbits@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I2dc3D001810; Sat, 18 Jan 2020 02:39:38 GMT (envelope-from jhibbits@FreeBSD.org) Message-Id: <202001180239.00I2dc3D001810@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhibbits set sender to jhibbits@FreeBSD.org using -f From: Justin Hibbits Date: Sat, 18 Jan 2020 02:39:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356860 - in head/sys: powerpc/aim powerpc/powerpc tools X-SVN-Group: head X-SVN-Commit-Author: jhibbits X-SVN-Commit-Paths: in head/sys: powerpc/aim powerpc/powerpc tools X-SVN-Commit-Revision: 356860 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 02:39:39 -0000 Author: jhibbits Date: Sat Jan 18 02:39:38 2020 New Revision: 356860 URL: https://svnweb.freebsd.org/changeset/base/356860 Log: Add a 'SINGLETON' directive to kobj interface definition Summary: This makes the interface described in the definition file act like a pseudo-IFUNC service, by caching the found method locally. Applying this to the PowerPC MMU definitions, it yields a significant (15-20%) performance improvement, seen in both a 'make buildworld' and a parallel build of LLVM, on a POWER9 system. Reviewed By: imp Differential Revision: https://reviews.freebsd.org/D23245 Modified: head/sys/powerpc/aim/moea64_if.m head/sys/powerpc/powerpc/mmu_if.m head/sys/tools/makeobjops.awk Modified: head/sys/powerpc/aim/moea64_if.m ============================================================================== --- head/sys/powerpc/aim/moea64_if.m Sat Jan 18 01:29:02 2020 (r356859) +++ head/sys/powerpc/aim/moea64_if.m Sat Jan 18 02:39:38 2020 (r356860) @@ -43,6 +43,7 @@ */ INTERFACE moea64; +SINGLETON; CODE { static moea64_pte_replace_t moea64_pte_replace_default; Modified: head/sys/powerpc/powerpc/mmu_if.m ============================================================================== --- head/sys/powerpc/powerpc/mmu_if.m Sat Jan 18 01:29:02 2020 (r356859) +++ head/sys/powerpc/powerpc/mmu_if.m Sat Jan 18 02:39:38 2020 (r356860) @@ -46,6 +46,7 @@ */ INTERFACE mmu; +SINGLETON; # # Default implementations of some methods Modified: head/sys/tools/makeobjops.awk ============================================================================== --- head/sys/tools/makeobjops.awk Sat Jan 18 01:29:02 2020 (r356859) +++ head/sys/tools/makeobjops.awk Sat Jan 18 02:39:38 2020 (r356860) @@ -325,13 +325,18 @@ function handle_method (static, doc) line_width, length(prototype))); } printh("{"); - printh("\tkobjop_t _m;"); + if (singleton) + printh("\tstatic kobjop_t _m;"); + else + printh("\tkobjop_t _m;"); if (ret != "void") printh("\t" ret " rc;"); if (!static) firstvar = "((kobj_t)" firstvar ")"; if (prolog != "") printh(prolog); + if (singleton) + printh("\tif (_m == NULL)"); printh("\tKOBJOPLOOKUP(" firstvar "->ops," mname ");"); rceq = (ret != "void") ? "rc = " : ""; printh("\t" rceq "((" mname "_t *) _m)(" varname_list ");"); @@ -453,6 +458,7 @@ for (file_i = 0; file_i < num_files; file_i++) { lastdoc = ""; prolog = ""; epilog = ""; + singleton = 0; while (!error && (getline < src) > 0) { lineno++; @@ -497,6 +503,8 @@ for (file_i = 0; file_i < num_files; file_i++) { prolog = handle_code(); else if (/^EPILOG[ ]*{$/) epilog = handle_code(); + else if (/^SINGLETON/) + singleton = 1; else { debug($0); warnsrc("Invalid line encountered"); From owner-svn-src-all@freebsd.org Sat Jan 18 03:33:44 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EFE67226217; Sat, 18 Jan 2020 03:33:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4803S867tpz4Tk3; Sat, 18 Jan 2020 03:33:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id CE0011BB0E; Sat, 18 Jan 2020 03:33:44 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I3XiWn039402; Sat, 18 Jan 2020 03:33:44 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I3XibB039401; Sat, 18 Jan 2020 03:33:44 GMT (envelope-from cem@FreeBSD.org) Message-Id: <202001180333.00I3XibB039401@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Sat, 18 Jan 2020 03:33:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356861 - head/sys/geom/label X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: head/sys/geom/label X-SVN-Commit-Revision: 356861 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 03:33:45 -0000 Author: cem Date: Sat Jan 18 03:33:44 2020 New Revision: 356861 URL: https://svnweb.freebsd.org/changeset/base/356861 Log: GEOM label: strip leading/trailing space synthesizing devfs names %20%20%20 is ugly and doesn't really help make human-readable devfs names. PR: 243318 Reported by: Peter Eriksson Relnotes: yes Modified: head/sys/geom/label/g_label.c Modified: head/sys/geom/label/g_label.c ============================================================================== --- head/sys/geom/label/g_label.c Sat Jan 18 02:39:38 2020 (r356860) +++ head/sys/geom/label/g_label.c Sat Jan 18 03:33:44 2020 (r356861) @@ -179,9 +179,25 @@ g_label_mangle_name(char *label, size_t size) { struct sbuf *sb; const u_char *c; + size_t len, i; + /* Trim trailing whitespace. */ + len = strlen(label); + for (i = len; i > 0; i--) { + if (isspace(label[i - 1])) + label[i - 1] = '\0'; + else + break; + } + if (*label == '\0') + return; + + sb = sbuf_new(NULL, NULL, size, SBUF_FIXEDLEN); for (c = label; *c != '\0'; c++) { + /* Trim leading whitespace. */ + if (isspace(*c) && sbuf_len(sb) == 0) + continue; if (!isprint(*c) || isspace(*c) || *c =='"' || *c == '%') sbuf_printf(sb, "%%%02X", *c); else From owner-svn-src-all@freebsd.org Sat Jan 18 04:12:42 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 9B1DC226E2B; Sat, 18 Jan 2020 04:12:42 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4804K63X5Jz4WPP; Sat, 18 Jan 2020 04:12:42 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 745511C29D; Sat, 18 Jan 2020 04:12:42 +0000 (UTC) (envelope-from bdragon@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I4CgkE063382; Sat, 18 Jan 2020 04:12:42 GMT (envelope-from bdragon@FreeBSD.org) Received: (from bdragon@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I4CfMe063379; Sat, 18 Jan 2020 04:12:41 GMT (envelope-from bdragon@FreeBSD.org) Message-Id: <202001180412.00I4CfMe063379@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bdragon set sender to bdragon@FreeBSD.org using -f From: Brandon Bergren Date: Sat, 18 Jan 2020 04:12:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356862 - in head/sys/powerpc: aim include X-SVN-Group: head X-SVN-Commit-Author: bdragon X-SVN-Commit-Paths: in head/sys/powerpc: aim include X-SVN-Commit-Revision: 356862 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 04:12:42 -0000 Author: bdragon Date: Sat Jan 18 04:12:41 2020 New Revision: 356862 URL: https://svnweb.freebsd.org/changeset/base/356862 Log: D23057: [PowerPC] Fix offset calculations in bridge mode In rS354701, I replaced text relocations with offsets from &generictrap. Unfortunately, the magic variable I was using doesn't actually mean the address of &generictrap, in bridge mode it actually means &generictrap64. So, for bridge mode to work, it is necessary to differentiate between "where do we need to branch to to handle a trap" and "where is &generictrap for purposes of doing relative math". Introduce a new TRAP_ENTRY and use it instead of TRAP_GENTRAP for doing actual calls to the generic trap handler. Reported by: Mark Millard Reviewed by: jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23057 > Description of fields to fill in above: 76 columns --| > PR: If and which Problem Report is related. > Submitted by: If someone else sent in the change. > Reported by: If someone else reported the issue. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > MFH: Ports tree branch name. Request approval for merge. > Relnotes: Set to 'yes' for mention in release notes. > Security: Vulnerability reference (one per line) or description. > Sponsored by: If the change was sponsored by an organization (each collaborator). > Differential Revision: https://reviews.freebsd.org/D### (*full* phabric URL needed). > Empty fields above will be automatically removed. M sys/powerpc/aim/aim_machdep.c M sys/powerpc/aim/trap_subr32.S M sys/powerpc/aim/trap_subr64.S M sys/powerpc/include/trap.h Modified: head/sys/powerpc/aim/aim_machdep.c head/sys/powerpc/aim/trap_subr32.S head/sys/powerpc/aim/trap_subr64.S head/sys/powerpc/include/trap.h Modified: head/sys/powerpc/aim/aim_machdep.c ============================================================================== --- head/sys/powerpc/aim/aim_machdep.c Sat Jan 18 03:33:44 2020 (r356861) +++ head/sys/powerpc/aim/aim_machdep.c Sat Jan 18 04:12:41 2020 (r356862) @@ -388,16 +388,18 @@ aim_cpu_init(vm_offset_t toc) bcopy(&dsitrap, (void *)(EXC_DSI + trap_offset), (size_t)&dsiend - (size_t)&dsitrap); + /* Set address of generictrap for self-reloc calculations */ + *((void **)TRAP_GENTRAP) = &generictrap; #ifdef __powerpc64__ /* Set TOC base so that the interrupt code can get at it */ - *((void **)TRAP_GENTRAP) = &generictrap; + *((void **)TRAP_ENTRY) = &generictrap; *((register_t *)TRAP_TOCBASE) = toc; #else /* Set branch address for trap code */ if (cpu_features & PPC_FEATURE_64) - *((void **)TRAP_GENTRAP) = &generictrap64; + *((void **)TRAP_ENTRY) = &generictrap64; else - *((void **)TRAP_GENTRAP) = &generictrap; + *((void **)TRAP_ENTRY) = &generictrap; *((void **)TRAP_TOCBASE) = _GLOBAL_OFFSET_TABLE_; /* G2-specific TLB miss helper handlers */ Modified: head/sys/powerpc/aim/trap_subr32.S ============================================================================== --- head/sys/powerpc/aim/trap_subr32.S Sat Jan 18 03:33:44 2020 (r356861) +++ head/sys/powerpc/aim/trap_subr32.S Sat Jan 18 04:12:41 2020 (r356862) @@ -348,7 +348,7 @@ CNAME(trapcode): mtsprg1 %r1 /* save SP */ mflr %r1 /* Save the old LR in r1 */ mtsprg2 %r1 /* And then in SPRG2 */ - lwz %r1, TRAP_GENTRAP(0) /* Get branch address */ + lwz %r1, TRAP_ENTRY(0) /* Get branch address */ mtlr %r1 li %r1, 0xe0 /* How to get the vector from LR */ blrl /* LR & (0xff00 | r1) is exception # */ @@ -908,7 +908,7 @@ CNAME(dblow): mflr %r1 /* save LR */ mtsprg2 %r1 /* And then in SPRG2 */ - lwz %r1, TRAP_GENTRAP(0) /* Get branch address */ + lwz %r1, TRAP_ENTRY(0) /* Get branch address */ mtlr %r1 li %r1, 0 /* How to get the vector from LR */ blrl /* LR & (0xff00 | r1) is exception # */ Modified: head/sys/powerpc/aim/trap_subr64.S ============================================================================== --- head/sys/powerpc/aim/trap_subr64.S Sat Jan 18 03:33:44 2020 (r356861) +++ head/sys/powerpc/aim/trap_subr64.S Sat Jan 18 04:12:41 2020 (r356862) @@ -318,7 +318,7 @@ CNAME(rstcode): * It is software reset when 46:47 = 0b00 */ /* 0x00 */ - ld %r2,TRAP_GENTRAP(0) /* Real-mode &generictrap */ + ld %r2,TRAP_ENTRY(0) /* Real-mode &generictrap */ mfsrr1 %r9 /* Load SRR1 into r9 */ andis. %r9,%r9,0x3 /* Logic AND with 46:47 bits */ @@ -446,7 +446,7 @@ CNAME(trapcode): mtsprg1 %r1 /* save SP */ mflr %r1 /* Save the old LR in r1 */ mtsprg2 %r1 /* And then in SPRG2 */ - ld %r1,TRAP_GENTRAP(0) + ld %r1,TRAP_ENTRY(0) mtlr %r1 li %r1, 0xe0 /* How to get the vector from LR */ blrl /* Branch to generictrap */ @@ -493,7 +493,7 @@ CNAME(slbtrap): mflr %r1 /* 0x30 */ mtsprg2 %r1 /* save LR in SPRG2 */ - ld %r1,TRAP_GENTRAP(0) /* real-mode &generictrap */ + ld %r1,TRAP_ENTRY(0) /* real-mode &generictrap */ mtlr %r1 li %r1, 0x80 /* How to get the vector from LR */ /* 0x40 */ @@ -955,7 +955,7 @@ CNAME(dblow): mflr %r1 /* save LR */ mtsprg2 %r1 /* And then in SPRG2 */ - ld %r1, TRAP_GENTRAP(0) /* Get branch address */ + ld %r1, TRAP_ENTRY(0) /* Get branch address */ mtlr %r1 li %r1, 0 /* How to get the vector from LR */ blrl /* Branch to generictrap */ Modified: head/sys/powerpc/include/trap.h ============================================================================== --- head/sys/powerpc/include/trap.h Sat Jan 18 03:33:44 2020 (r356861) +++ head/sys/powerpc/include/trap.h Sat Jan 18 04:12:41 2020 (r356862) @@ -147,8 +147,9 @@ #define EXC_DTRACE 0x7ffff808 /* Magic pointer to store TOC base and other info for trap handlers on ppc64 */ -#define TRAP_GENTRAP 0x1f0 -#define TRAP_TOCBASE 0x1f8 +#define TRAP_ENTRY 0x1e8 +#define TRAP_GENTRAP 0x1f0 +#define TRAP_TOCBASE 0x1f8 #ifndef LOCORE struct trapframe; From owner-svn-src-all@freebsd.org Sat Jan 18 04:48:06 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7EC10227B7C; Sat, 18 Jan 2020 04:48:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48055y2bSYz4Y7B; Sat, 18 Jan 2020 04:48:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 504F41C8E8; Sat, 18 Jan 2020 04:48:06 +0000 (UTC) (envelope-from eugen@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00I4m6DG082234; Sat, 18 Jan 2020 04:48:06 GMT (envelope-from eugen@FreeBSD.org) Received: (from eugen@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00I4m6rO082233; Sat, 18 Jan 2020 04:48:06 GMT (envelope-from eugen@FreeBSD.org) Message-Id: <202001180448.00I4m6rO082233@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: eugen set sender to eugen@FreeBSD.org using -f From: Eugene Grosbein Date: Sat, 18 Jan 2020 04:48:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356863 - head/sys/net X-SVN-Group: head X-SVN-Commit-Author: eugen X-SVN-Commit-Paths: head/sys/net X-SVN-Commit-Revision: 356863 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 04:48:06 -0000 Author: eugen Date: Sat Jan 18 04:48:05 2020 New Revision: 356863 URL: https://svnweb.freebsd.org/changeset/base/356863 Log: ifa_maintain_loopback_route: adjust debugging output Correction after r333476: - write this as LOG_DEBUG again instead of LOG_INFO; - get back function name into the message; - error may be ESRCH if an address is removed in process (by carp f.e.), not only ENOENT; - expression complexity grows, so try making it more readable. MFC after: 1 week Modified: head/sys/net/if.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Sat Jan 18 04:12:41 2020 (r356862) +++ head/sys/net/if.c Sat Jan 18 04:48:05 2020 (r356863) @@ -1867,10 +1867,13 @@ ifa_maintain_loopback_route(int cmd, const char *otype if (rti_ifa != NULL) ifa_free(rti_ifa); - if (error != 0 && - !(cmd == RTM_ADD && error == EEXIST) && - !(cmd == RTM_DELETE && error == ENOENT)) - if_printf(ifp, "%s failed: %d\n", otype, error); + if (error == 0 || + (cmd == RTM_ADD && error == EEXIST) || + (cmd == RTM_DELETE && (error == ENOENT || error == ESRCH))) + return (error); + + log(LOG_DEBUG, "%s: %s failed for interface %s: %u\n", + __func__, otype, if_name(ifp), error); return (error); } From owner-svn-src-all@freebsd.org Sat Jan 18 10:44:33 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id BEFFE22FA95; Sat, 18 Jan 2020 10:44:33 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480F1F4Syjz3LBc; Sat, 18 Jan 2020 10:44:33 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9488520BC8; Sat, 18 Jan 2020 10:44:33 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IAiXdM095623; Sat, 18 Jan 2020 10:44:33 GMT (envelope-from syrinx@FreeBSD.org) Received: (from syrinx@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IAiXJU095621; Sat, 18 Jan 2020 10:44:33 GMT (envelope-from syrinx@FreeBSD.org) Message-Id: <202001181044.00IAiXJU095621@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: syrinx set sender to syrinx@FreeBSD.org using -f From: Shteryana Shopova Date: Sat, 18 Jan 2020 10:44:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356864 - stable/12/usr.sbin/bsnmpd/modules/snmp_pf X-SVN-Group: stable-12 X-SVN-Commit-Author: syrinx X-SVN-Commit-Paths: stable/12/usr.sbin/bsnmpd/modules/snmp_pf X-SVN-Commit-Revision: 356864 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 10:44:33 -0000 Author: syrinx Date: Sat Jan 18 10:44:32 2020 New Revision: 356864 URL: https://svnweb.freebsd.org/changeset/base/356864 Log: MFC r349264: Unbreak snmp_pf(3) after the changes introduced in r338209 PR: 237011 Event: Vienna Hackathon 2019 Modified: stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c ============================================================================== --- stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c Sat Jan 18 04:48:05 2020 (r356863) +++ stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c Sat Jan 18 10:44:32 2020 (r356864) @@ -907,7 +907,7 @@ pf_tbladdr(struct snmp_context __unused *ctx, struct s } int -pf_altq(struct snmp_context __unused *ctx, struct snmp_value *val, +pf_altq_num(struct snmp_context __unused *ctx, struct snmp_value *val, u_int sub, u_int __unused vindex, enum snmp_op op) { asn_subid_t which = val->var.subs[sub - 1]; Modified: stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def ============================================================================== --- stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def Sat Jan 18 04:48:05 2020 (r356863) +++ stable/12/usr.sbin/bsnmpd/modules/snmp_pf/pf_tree.def Sat Jan 18 10:44:32 2020 (r356864) @@ -174,7 +174,7 @@ ) ) (10 pfAltq - (1 pfAltqQueueNumber INTEGER32 pf_altq GET) + (1 pfAltqQueueNumber INTEGER32 pf_altq_num GET) (2 pfAltqQueueTable (1 pfAltqQueueEntry : INTEGER32 pf_altqq (1 pfAltqQueueIndex INTEGER32) From owner-svn-src-all@freebsd.org Sat Jan 18 10:55:38 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E55C822FE28; Sat, 18 Jan 2020 10:55:38 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480FG25hCFz3Lk9; Sat, 18 Jan 2020 10:55:38 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BCDC820DA1; Sat, 18 Jan 2020 10:55:38 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IAtcwP002090; Sat, 18 Jan 2020 10:55:38 GMT (envelope-from syrinx@FreeBSD.org) Received: (from syrinx@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IAtcG0002089; Sat, 18 Jan 2020 10:55:38 GMT (envelope-from syrinx@FreeBSD.org) Message-Id: <202001181055.00IAtcG0002089@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: syrinx set sender to syrinx@FreeBSD.org using -f From: Shteryana Shopova Date: Sat, 18 Jan 2020 10:55:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356865 - stable/12/usr.sbin/bsnmpd/modules/snmp_lm75 X-SVN-Group: stable-12 X-SVN-Commit-Author: syrinx X-SVN-Commit-Paths: stable/12/usr.sbin/bsnmpd/modules/snmp_lm75 X-SVN-Commit-Revision: 356865 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 10:55:39 -0000 Author: syrinx Date: Sat Jan 18 10:55:38 2020 New Revision: 356865 URL: https://svnweb.freebsd.org/changeset/base/356865 Log: MFC r349265: No need for each bsnmpd(1) module to open connection to syslog bsnmpd(1) main does that early on init and the connection is available to all loaded modules PR: 233431 , 221487 Event: Vienna Hackathon 2019 Modified: stable/12/usr.sbin/bsnmpd/modules/snmp_lm75/snmp_lm75.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bsnmpd/modules/snmp_lm75/snmp_lm75.c ============================================================================== --- stable/12/usr.sbin/bsnmpd/modules/snmp_lm75/snmp_lm75.c Sat Jan 18 10:44:32 2020 (r356864) +++ stable/12/usr.sbin/bsnmpd/modules/snmp_lm75/snmp_lm75.c Sat Jan 18 10:55:38 2020 (r356865) @@ -100,7 +100,6 @@ lm75_init(struct lmodule *mod, int argc __unused, char module = mod; lm75_sensors = 0; - openlog("snmp_lm75", LOG_NDELAY | LOG_PID, LOG_DAEMON); return(0); } From owner-svn-src-all@freebsd.org Sat Jan 18 18:25:37 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B88BC1FD45D; Sat, 18 Jan 2020 18:25:37 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480RFF4YLtz4FfQ; Sat, 18 Jan 2020 18:25:37 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 978EE2617F; Sat, 18 Jan 2020 18:25:37 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IIPb97084394; Sat, 18 Jan 2020 18:25:37 GMT (envelope-from gallatin@FreeBSD.org) Received: (from gallatin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IIPb27084393; Sat, 18 Jan 2020 18:25:37 GMT (envelope-from gallatin@FreeBSD.org) Message-Id: <202001181825.00IIPb27084393@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gallatin set sender to gallatin@FreeBSD.org using -f From: Andrew Gallatin Date: Sat, 18 Jan 2020 18:25:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356866 - head/sys/vm X-SVN-Group: head X-SVN-Commit-Author: gallatin X-SVN-Commit-Paths: head/sys/vm X-SVN-Commit-Revision: 356866 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 18:25:37 -0000 Author: gallatin Date: Sat Jan 18 18:25:37 2020 New Revision: 356866 URL: https://svnweb.freebsd.org/changeset/base/356866 Log: pcpu_page_alloc: guard against empty NUMA domains Some systems, such as higher end Threadripper, may have NUMA domains with no physical memory, Don't allocate from these domains. This fixes a "panic: vm_wait in early boot" on my 2990WX desktop Reviewed by: jeff Sponsored by: Netflix Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sat Jan 18 10:55:38 2020 (r356865) +++ head/sys/vm/uma_core.c Sat Jan 18 18:25:37 2020 (r356866) @@ -1521,7 +1521,11 @@ pcpu_page_alloc(uma_zone_t zone, vm_size_t bytes, int p = vm_page_alloc(NULL, 0, flags); #else pc = pcpu_find(cpu); - p = vm_page_alloc_domain(NULL, 0, pc->pc_domain, flags); + if (__predict_false(VM_DOMAIN_EMPTY(pc->pc_domain))) + p = NULL; + else + p = vm_page_alloc_domain(NULL, 0, + pc->pc_domain, flags); if (__predict_false(p == NULL)) p = vm_page_alloc(NULL, 0, flags); #endif From owner-svn-src-all@freebsd.org Sat Jan 18 20:19:08 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 2CAB022470C; Sat, 18 Jan 2020 20:19:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480TmD0Pxyz4NyZ; Sat, 18 Jan 2020 20:19:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 04BB42760F; Sat, 18 Jan 2020 20:19:08 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IKJ7Ak054387; Sat, 18 Jan 2020 20:19:07 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IKJ7EE054386; Sat, 18 Jan 2020 20:19:07 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001182019.00IKJ7EE054386@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sat, 18 Jan 2020 20:19:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356867 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356867 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 20:19:08 -0000 Author: emaste Date: Sat Jan 18 20:19:07 2020 New Revision: 356867 URL: https://svnweb.freebsd.org/changeset/base/356867 Log: Cirrus-CI: bump VM image to FreeBSD 12.1 12.0 will be EOL. Sponsored by: The FreeBSD Foundation Modified: head/.cirrus.yml Modified: head/.cirrus.yml ============================================================================== --- head/.cirrus.yml Sat Jan 18 18:25:37 2020 (r356866) +++ head/.cirrus.yml Sat Jan 18 20:19:07 2020 (r356867) @@ -1,7 +1,7 @@ # $FreeBSD$ freebsd_instance: - image: freebsd-12-0-release-amd64 + image: freebsd-12-1-release-amd64 cpu: 8 memory: 24G From owner-svn-src-all@freebsd.org Sat Jan 18 20:37:47 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DBFF8226028; Sat, 18 Jan 2020 20:37:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480V9l5TX6z4Psx; Sat, 18 Jan 2020 20:37:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B7393279DF; Sat, 18 Jan 2020 20:37:47 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IKbldc066357; Sat, 18 Jan 2020 20:37:47 GMT (envelope-from kevans@FreeBSD.org) Received: (from kevans@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IKbjqs066347; Sat, 18 Jan 2020 20:37:45 GMT (envelope-from kevans@FreeBSD.org) Message-Id: <202001182037.00IKbjqs066347@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: kevans set sender to kevans@FreeBSD.org using -f From: Kyle Evans Date: Sat, 18 Jan 2020 20:37:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356868 - in head/sys: amd64/linux amd64/linux32 arm/linux arm64/linux compat/cloudabi32 compat/cloudabi64 compat/freebsd32 conf i386/linux kern X-SVN-Group: head X-SVN-Commit-Author: kevans X-SVN-Commit-Paths: in head/sys: amd64/linux amd64/linux32 arm/linux arm64/linux compat/cloudabi32 compat/cloudabi64 compat/freebsd32 conf i386/linux kern X-SVN-Commit-Revision: 356868 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 20:37:47 -0000 Author: kevans Date: Sat Jan 18 20:37:45 2020 New Revision: 356868 URL: https://svnweb.freebsd.org/changeset/base/356868 Log: sysent targets: further cleanup and deduplication r355473 vastly improved the readability and cleanliness of these Makefiles. Every single one of them follows the same pattern and duplicates the exact same logic. Now that we have GENERATED/SRCS, split SRCS up into the two parameters we'll use for ${MAKESYSCALLS} rather than assuming a specific ordering of SRCS and include a common sysent.mk to handle the rest. This makes it less tedious to make sweeping changes. Some default values are provided for GENERATED/SYSENT_*; almost all of these just use a 'syscalls.master' and 'syscalls.conf' in cwd, and they all use effectively the same filenames with an arbitrary prefix. Most ABIs will be able to get away with just setting GENERATED_PREFIX and including ^/sys/conf/sysent.mk, while others only need light additions. kern/Makefile is the notable exception, as it doesn't take a SYSENT_CONF and the generated files are spread out between ^/sys/kern and ^/sys/sys, but it otherwise fits the pattern enough to use the common version. Reviewed by: brooks, imp Nice!: emaste Differential Revision: https://reviews.freebsd.org/D23197 Added: head/sys/conf/sysent.mk - copied, changed from r356867, head/sys/kern/Makefile Modified: head/sys/amd64/linux/Makefile head/sys/amd64/linux32/Makefile head/sys/arm/linux/Makefile head/sys/arm64/linux/Makefile head/sys/compat/cloudabi32/Makefile head/sys/compat/cloudabi64/Makefile head/sys/compat/freebsd32/Makefile head/sys/i386/linux/Makefile head/sys/kern/Makefile Modified: head/sys/amd64/linux/Makefile ============================================================================== --- head/sys/amd64/linux/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/amd64/linux/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,27 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= linux_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - syscalls.master -GENERATED= linux_proto.h \ - linux_syscall.h \ - linux_syscalls.c \ - linux_sysent.c \ - linux_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/amd64/linux32/Makefile ============================================================================== --- head/sys/amd64/linux32/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/amd64/linux32/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,27 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= linux32_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - syscalls.master -GENERATED= linux32_proto.h \ - linux32_syscall.h \ - linux32_syscalls.c \ - linux32_sysent.c \ - linux32_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/arm/linux/Makefile ============================================================================== --- head/sys/arm/linux/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/arm/linux/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,27 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= linux_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - syscalls.master -GENERATED= linux_proto.h \ - linux_syscall.h \ - linux_syscalls.c \ - linux_sysent.c \ - linux_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/arm64/linux/Makefile ============================================================================== --- head/sys/arm64/linux/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/arm64/linux/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,27 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= linux_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - syscalls.master -GENERATED= linux_proto.h \ - linux_syscall.h \ - linux_syscalls.c \ - linux_sysent.c \ - linux_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/compat/cloudabi32/Makefile ============================================================================== --- head/sys/compat/cloudabi32/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/compat/cloudabi32/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -1,27 +1,6 @@ # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +SYSENT_FILE= ${SYSDIR}/contrib/cloudabi/syscalls32.master +GENERATED_PREFIX= cloudabi32_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - ../../contrib/cloudabi/syscalls32.master -GENERATED= cloudabi32_proto.h \ - cloudabi32_syscall.h \ - cloudabi32_syscalls.c \ - cloudabi32_sysent.c \ - cloudabi32_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} \ - ../../contrib/cloudabi/syscalls32.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/compat/cloudabi64/Makefile ============================================================================== --- head/sys/compat/cloudabi64/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/compat/cloudabi64/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -1,27 +1,6 @@ # $FreeBSD$ -.include +SYSENT_FILE= ${SYSDIR}/contrib/cloudabi/syscalls64.master +GENERATED_PREFIX= cloudabi64_ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - ../../contrib/cloudabi/syscalls64.master -GENERATED= cloudabi64_proto.h \ - cloudabi64_syscall.h \ - cloudabi64_syscalls.c \ - cloudabi64_sysent.c \ - cloudabi64_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} \ - ../../contrib/cloudabi/syscalls64.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/compat/freebsd32/Makefile ============================================================================== --- head/sys/compat/freebsd32/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/compat/freebsd32/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,28 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= freebsd32_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= ../../kern/capabilities.conf \ - syscalls.conf \ - syscalls.master -GENERATED= freebsd32_proto.h \ - freebsd32_syscall.h \ - freebsd32_syscalls.c \ - freebsd32_sysent.c \ - freebsd32_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Copied and modified: head/sys/conf/sysent.mk (from r356867, head/sys/kern/Makefile) ============================================================================== --- head/sys/kern/Makefile Sat Jan 18 20:19:07 2020 (r356867, copy source) +++ head/sys/conf/sysent.mk Sat Jan 18 20:37:45 2020 (r356868) @@ -1,23 +1,28 @@ -# @(#)Makefile 8.2 (Berkeley) 3/21/94 # $FreeBSD$ -# -# Makefile for init_sysent # Don't use an OBJDIR .OBJDIR: ${.CURDIR} +.include .include -MAKESYSCALLS= ../tools/makesyscalls.lua -SRCS= capabilities.conf \ - syscalls.master -GENERATED= init_sysent.c \ - syscalls.c \ - systrace_args.c \ - ../sys/syscall.h \ - ../sys/syscall.mk \ - ../sys/sysproto.h +COMMON_GENERATED= proto.h \ + syscall.h \ + syscalls.c \ + sysent.c \ + systrace_args.c +GENERATED_PREFIX?= +GENERATED?= ${COMMON_GENERATED:S/^/${GENERATED_PREFIX}/} +SYSENT_FILE?= syscalls.master +SYSENT_CONF?= syscalls.conf + +# Including Makefile should override SYSENT_FILE and SYSENT_CONF as needed, +# and set GENERATED. +SRCS+= ${SYSENT_FILE} +SRCS+= ${SYSENT_CONF} +MAKESYSCALLS= ${SYSDIR}/tools/makesyscalls.lua + all: @echo "make sysent only" @@ -27,4 +32,4 @@ all: sysent: ${GENERATED} ${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master + ${LUA} ${MAKESYSCALLS} ${SYSENT_FILE} ${SYSENT_CONF} Modified: head/sys/i386/linux/Makefile ============================================================================== --- head/sys/i386/linux/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/i386/linux/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -2,27 +2,6 @@ # # $FreeBSD$ -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +GENERATED_PREFIX= linux_ -.include - -MAKESYSCALLS= ../../tools/makesyscalls.lua -SRCS= syscalls.conf \ - syscalls.master -GENERATED= linux_proto.h \ - linux_syscall.h \ - linux_syscalls.c \ - linux_sysent.c \ - linux_systrace_args.c - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master syscalls.conf +.include "../../conf/sysent.mk" Modified: head/sys/kern/Makefile ============================================================================== --- head/sys/kern/Makefile Sat Jan 18 20:19:07 2020 (r356867) +++ head/sys/kern/Makefile Sat Jan 18 20:37:45 2020 (r356868) @@ -3,28 +3,12 @@ # # Makefile for init_sysent -# Don't use an OBJDIR -.OBJDIR: ${.CURDIR} +SYSENT_CONF= +GENERATED= init_sysent.c \ + syscalls.c \ + systrace_args.c \ + ${SYSDIR}/sys/syscall.h \ + ${SYSDIR}/sys/syscall.mk \ + ${SYSDIR}/sys/sysproto.h -.include - -MAKESYSCALLS= ../tools/makesyscalls.lua -SRCS= capabilities.conf \ - syscalls.master -GENERATED= init_sysent.c \ - syscalls.c \ - systrace_args.c \ - ../sys/syscall.h \ - ../sys/syscall.mk \ - ../sys/sysproto.h - -all: - @echo "make sysent only" - -# We .ORDER these explicitly so that we only run MAKESYSCALLS once, rather than -# potentially once for each ${GENERATED} file. -.ORDER: ${GENERATED} -sysent: ${GENERATED} - -${GENERATED}: ${MAKESYSCALLS} ${SRCS} - ${LUA} ${MAKESYSCALLS} syscalls.master +.include "../conf/sysent.mk" From owner-svn-src-all@freebsd.org Sat Jan 18 22:58:32 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E304E233254; Sat, 18 Jan 2020 22:58:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480YJ85YtQz4XJZ; Sat, 18 Jan 2020 22:58:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B54411437; Sat, 18 Jan 2020 22:58:32 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00IMwWiJ050252; Sat, 18 Jan 2020 22:58:32 GMT (envelope-from emaste@FreeBSD.org) Received: (from emaste@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00IMwWRo050251; Sat, 18 Jan 2020 22:58:32 GMT (envelope-from emaste@FreeBSD.org) Message-Id: <202001182258.00IMwWRo050251@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: emaste set sender to emaste@FreeBSD.org using -f From: Ed Maste Date: Sat, 18 Jan 2020 22:58:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356869 - head X-SVN-Group: head X-SVN-Commit-Author: emaste X-SVN-Commit-Paths: head X-SVN-Commit-Revision: 356869 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 22:58:32 -0000 Author: emaste Date: Sat Jan 18 22:58:32 2020 New Revision: 356869 URL: https://svnweb.freebsd.org/changeset/base/356869 Log: pkgbase: cache pkg ABI for all world/kernel packages Rather than invoking `pkg config ABI` repeatedly. Reviewed by: manu Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D23255 Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sat Jan 18 20:37:45 2020 (r356868) +++ head/Makefile.inc1 Sat Jan 18 22:58:32 2020 (r356869) @@ -1925,6 +1925,10 @@ create-world-packages: _pkgbootstrap .PHONY .include "${WSTAGEDIR}/packages.mk" .endif +.if make(create-world-packages-jobs) || make(create-kernel-packages*) +PKG_ABI!=${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI +.endif + create-world-packages-jobs: .PHONY .for pkgname in ${_PKGS} create-world-packages-jobs: create-world-package-${pkgname} @@ -1942,7 +1946,7 @@ create-world-package-${pkgname}: .PHONY create -M ${WSTAGEDIR}/${pkgname}.ucl \ -p ${WSTAGEDIR}/${pkgname}.plist \ -r ${WSTAGEDIR} \ - -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION} + -o ${REPODIR}/${PKG_ABI}/${PKG_VERSION} .endfor _default_flavor= -default @@ -1974,7 +1978,7 @@ create-kernel-packages-flavor${flavor:C,^""$,${_defaul create -M ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.ucl \ -p ${KSTAGEDIR}/${DISTDIR}/kernel.${INSTALLKERNEL}${flavor}.plist \ -r ${KSTAGEDIR}/${DISTDIR} \ - -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION} + -o ${REPODIR}/${PKG_ABI}/${PKG_VERSION} . endfor .endif .if ${BUILDKERNELS:[#]} > 1 && ${NO_INSTALLEXTRAKERNELS} != "yes" @@ -2006,7 +2010,7 @@ create-kernel-packages-extra-flavor${flavor:C,^""$,${_ create -M ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.ucl \ -p ${KSTAGEDIR}/kernel.${_kernel}/kernel.${_kernel}${flavor}.plist \ -r ${KSTAGEDIR}/kernel.${_kernel} \ - -o ${REPODIR}/$$(${PKG_CMD} -o ABI_FILE=${WSTAGEDIR}/usr/bin/uname config ABI)/${PKG_VERSION} + -o ${REPODIR}/${PKG_ABI}/${PKG_VERSION} . endfor . endif . endfor From owner-svn-src-all@freebsd.org Sat Jan 18 23:26:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7E7A923568D; Sat, 18 Jan 2020 23:26:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480Yw82l01z4YQ9; Sat, 18 Jan 2020 23:26:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5915319B9; Sat, 18 Jan 2020 23:26:16 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INQGsY068375; Sat, 18 Jan 2020 23:26:16 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INQGtt068374; Sat, 18 Jan 2020 23:26:16 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182326.00INQGtt068374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:26:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356870 - stable/12/usr.sbin/bhyve X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/usr.sbin/bhyve X-SVN-Commit-Revision: 356870 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:26:16 -0000 Author: jhb Date: Sat Jan 18 23:26:15 2020 New Revision: 356870 URL: https://svnweb.freebsd.org/changeset/base/356870 Log: MFC 355634: Emulate reads of the PCI command register for passthrough devices. VFs return zero for the memory enable bit even if it has been set by a prior write. After r348779 this caused the annoying behavior that a guest OS would unintentionally disable memory decoding on a future read-modify-write operation on the command register. Instead, return the shadow value of the command register for reads. This ensures that the guest will only toggle the state of the memory enable bit when it specifically intends to do so. Sponsored by: Chelsio Communications Modified: stable/12/usr.sbin/bhyve/pci_passthru.c Directory Properties: stable/12/ (props changed) Modified: stable/12/usr.sbin/bhyve/pci_passthru.c ============================================================================== --- stable/12/usr.sbin/bhyve/pci_passthru.c Sat Jan 18 22:58:32 2020 (r356869) +++ stable/12/usr.sbin/bhyve/pci_passthru.c Sat Jan 18 23:26:15 2020 (r356870) @@ -806,6 +806,19 @@ passthru_cfgread(struct vmctx *ctx, int vcpu, struct p } #endif + /* + * Emulate the command register. If a single read reads both the + * command and status registers, read the status register from the + * device's config space. + */ + if (coff == PCIR_COMMAND) { + if (bytes <= 2) + return (-1); + *rv = pci_get_cfgdata16(pi, PCIR_COMMAND) << 16 | + read_config(&sc->psc_sel, PCIR_STATUS, 2); + return (0); + } + /* Everything else just read from the device's config space */ *rv = read_config(&sc->psc_sel, coff, bytes); From owner-svn-src-all@freebsd.org Sat Jan 18 23:30:43 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 78785235BF9; Sat, 18 Jan 2020 23:30:43 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480Z1H3HHKz4YXr; Sat, 18 Jan 2020 23:30:43 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6BC7619CB; Sat, 18 Jan 2020 23:30:43 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INUhOY068674; Sat, 18 Jan 2020 23:30:43 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INUhVO068673; Sat, 18 Jan 2020 23:30:43 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182330.00INUhVO068673@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:30:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356871 - in stable/12/share/man: man4 man9 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: in stable/12/share/man: man4 man9 X-SVN-Commit-Revision: 356871 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:30:43 -0000 Author: jhb Date: Sat Jan 18 23:30:42 2020 New Revision: 356871 URL: https://svnweb.freebsd.org/changeset/base/356871 Log: MFC 355866,355871: Update the crypto(4) and crypto(9) manpages. 355866: Update the crypto(4) and crypto(9) manpages. There are probably bits that are still wrong, but this fixes some things at least: - Add named arguments to the functions in crypto(9). - Add missing algorithms. - Don't mention arguments that don't exist in crypto_register. - Add CIOGSESSION2. - Remove CIOCNFSESSION. - Clarify some stale language that assumed an fd had only one sesson. - Note that you have to use CRIOGET and add a note in BUGS lamenting that one has to use CRIOGET. - Various other cleanups. 355871: Bump Dd for changes in r355866. Sponsored by: Chelsio Communications Modified: stable/12/share/man/man4/crypto.4 stable/12/share/man/man9/crypto.9 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man4/crypto.4 ============================================================================== --- stable/12/share/man/man4/crypto.4 Sat Jan 18 23:26:15 2020 (r356870) +++ stable/12/share/man/man4/crypto.4 Sat Jan 18 23:30:42 2020 (r356871) @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 21, 2017 +.Dd December 17, 2019 .Dt CRYPTO 4 .Os .Sh NAME @@ -78,7 +78,7 @@ The .Nm driver gives user-mode applications access to hardware-accelerated -cryptographic transforms, as implemented by the +cryptographic transforms as implemented by the .Xr crypto 9 in-kernel interface. .Pp @@ -87,15 +87,15 @@ The special device provides an .Xr ioctl 2 based interface. -User-mode applications should open the special device, +User-mode applications open the special device and then issue .Xr ioctl 2 calls on the descriptor. User-mode access to .Pa /dev/crypto -is controlled by three +is controlled by two .Xr sysctl 8 -variables, +variables: .Ic kern.userasymcrypto and .Ic kern.cryptodevallowsoft . @@ -103,8 +103,8 @@ and The .Nm device provides two distinct modes of operation: one mode for -symmetric-keyed cryptographic requests, and a second mode for -both asymmetric-key (public-key/private-key) requests, and for +symmetric-keyed cryptographic requests and digests, and a second mode for +both asymmetric-key (public-key/private-key) requests and modular arithmetic (for Diffie-Hellman key exchange and other cryptographic protocols). The two modes are described separately below. @@ -113,12 +113,22 @@ Regardless of whether symmetric-key or asymmetric-key to be performed, use of the device requires a basic series of steps: .Bl -enum .It -Open a file descriptor for the device. -See -.Xr open 2 . +Open the +.Pa /dev/crypto +device. .It -If any symmetric operation will be performed, -create one session, with +Create a new cryptography file descriptor via +.Dv CRIOGET +to use for all subsequent +.Xr ioctl 2 +commands. +.It +Close the +.Pa /dev/crypto +device. +.It +If any symmetric-keyed cryptographic or digest operations will be performed, +create a session with .Dv CIOCGSESSION . Most applications will require at least one symmetric session. Since cipher and MAC keys are tied to sessions, many @@ -134,11 +144,13 @@ or .Dv CIOCKEY (asymmetric). .It -Destroy one session with +Optionally destroy a session with .Dv CIOCFSESSION . .It -Close the device with +Close the cryptography file descriptor with .Xr close 2 . +This will automatically close any remaining sessions associated with the +file desriptor. .El .Sh SYMMETRIC-KEY OPERATION The symmetric-key operation mode provides a context-based API @@ -196,9 +208,9 @@ struct session_op { u_int32_t mac; /* e.g. CRYPTO_MD5_HMAC */ u_int32_t keylen; /* cipher key */ - void * key; + const void *key; int mackeylen; /* mac key */ - void * mackey; + const void *mackey; u_int32_t ses; /* returns: ses # */ }; @@ -241,12 +253,36 @@ and the key value in the octets addressed by .Fa sessp-\*[Gt]mackeylen . .\" .Pp -Support for a specific combination of fused privacy and +Support for a specific combination of fused privacy and integrity-check algorithms depends on whether the underlying hardware supports that combination. Not all combinations are supported by all hardware, even if the hardware supports each operation as a stand-alone non-fused operation. +.It Dv CIOCGSESSION2 Fa struct session2_op *sessp +.Bd -literal +struct session2_op { + u_int32_t cipher; /* e.g. CRYPTO_DES_CBC */ + u_int32_t mac; /* e.g. CRYPTO_MD5_HMAC */ + + u_int32_t keylen; /* cipher key */ + const void *key; + int mackeylen; /* mac key */ + const void *mackey; + + u_int32_t ses; /* returns: ses # */ + int crid; /* driver id + flags (rw) */ + int pad[4]; /* for future expansion */ +}; + +.Ed +This request is similar to CIOGSESSION except that +.Fa sessp-\*[Gt]crid +requests either a specific crypto device or a class of devices (software vs +hardware). +The +.Fa sessp-\*[Gt]pad +field must be initialized to zero. .It Dv CIOCCRYPT Fa struct crypt_op *cr_op .Bd -literal struct crypt_op { @@ -261,9 +297,6 @@ struct crypt_op { .Ed Request a symmetric-key (or hash) operation. -The file descriptor argument to -.Xr ioctl 2 -must have been bound to a valid session. To encrypt, set .Fa cr_op-\*[Gt]op to @@ -315,21 +348,8 @@ but provides additional data in .Fa cr_aead-\*[Gt]aad to include in the authentication mode. .It Dv CIOCFSESSION Fa u_int32_t ses_id -Destroys the /dev/crypto session associated with the file-descriptor -argument. -.It Dv CIOCNFSESSION Fa struct crypt_sfop *sfop ; -.Bd -literal -struct crypt_sfop { - size_t count; - u_int32_t *sesid; -}; - -.Ed -Destroys the -.Fa sfop-\*[Gt]count -sessions specified by the -.Fa sfop -array of session identifiers. +Destroys the session identified by +.Fa ses_id . .El .\" .Sh ASYMMETRIC-KEY OPERATION @@ -435,8 +455,10 @@ algorithm, you must supply a suitably-sized buffer. .Pp The scheme for passing arguments for asymmetric requests is baroque. .Pp -The naming inconsistency between .Dv CRIOGET -and the various +should not exist. +It should be possible to use the .Dv CIOC Ns \&* -names is an unfortunate historical artifact. +commands directly on a +.Pa /dev/crypto +file descriptor. Modified: stable/12/share/man/man9/crypto.9 ============================================================================== --- stable/12/share/man/man9/crypto.9 Sat Jan 18 23:26:15 2020 (r356870) +++ stable/12/share/man/man9/crypto.9 Sat Jan 18 23:30:42 2020 (r356871) @@ -17,7 +17,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 17, 2018 +.Dd December 17, 2019 .Dt CRYPTO 9 .Os .Sh NAME @@ -26,35 +26,35 @@ .Sh SYNOPSIS .In opencrypto/cryptodev.h .Ft int32_t -.Fn crypto_get_driverid device_t size_t int +.Fn crypto_get_driverid "device_t dev" "size_t session_size" "int flags" .Ft int -.Fn crypto_register uint32_t int uint16_t uint32_t "int \*[lp]*\*[rp]\*[lp]void *, uint32_t *, struct cryptoini *\*[rp]" "int \*[lp]*\*[rp]\*[lp]void *, uint64_t\*[rp]" "int \*[lp]*\*[rp]\*[lp]void *, struct cryptop *\*[rp]" "void *" +.Fn crypto_register "uint32_t driverid" "int alg" "uint16_t maxoplen" "uint32_t flags" .Ft int -.Fn crypto_kregister uint32_t int uint32_t "int \*[lp]*\*[rp]\*[lp]void *, struct cryptkop *\*[rp]" "void *" +.Fn crypto_kregister "uint32_t driverid" "int kalg" "uint32_t flags" .Ft int -.Fn crypto_unregister uint32_t int +.Fn crypto_unregister "uint32_t driverid" "int alg" .Ft int -.Fn crypto_unregister_all uint32_t +.Fn crypto_unregister_all "uint32_t driverid" .Ft void -.Fn crypto_done "struct cryptop *" +.Fn crypto_done "struct cryptop *crp" .Ft void -.Fn crypto_kdone "struct cryptkop *" +.Fn crypto_kdone "struct cryptkop *krp" .Ft int -.Fn crypto_find_driver "const char *" +.Fn crypto_find_driver "const char *match" .Ft int -.Fn crypto_newsession "crypto_session_t *" "struct cryptoini *" int +.Fn crypto_newsession "crypto_session_t *cses" "struct cryptoini *cri" "int crid" .Ft int -.Fn crypto_freesession crypto_session_t +.Fn crypto_freesession "crypto_session_t cses" .Ft int -.Fn crypto_dispatch "struct cryptop *" +.Fn crypto_dispatch "struct cryptop *crp" .Ft int -.Fn crypto_kdispatch "struct cryptkop *" +.Fn crypto_kdispatch "struct cryptkop *krp" .Ft int -.Fn crypto_unblock uint32_t int +.Fn crypto_unblock "uint32_t driverid" "int what" .Ft "struct cryptop *" -.Fn crypto_getreq int +.Fn crypto_getreq "int num" .Ft void -.Fn crypto_freereq void +.Fn crypto_freereq "struct cryptop *crp" .Bd -literal #define CRYPTO_SYMQ 0x1 #define CRYPTO_ASYMQ 0x2 @@ -160,33 +160,48 @@ For session initialization and teardown no callback me .Pp The .Fn crypto_find_driver -function may be called to return the specific id of the provided name. -If the specified driver could not be found, the returned id is -1. +returns the driver id of the device whose name matches +.Fa match . +.Fa match +can either be the exact name of a device including the unit +or the driver name without a unit. +In the latter case, +the id of the first device with the matching driver name is returned. +If no matching device is found, +the value -1 is returned. .Pp The .Fn crypto_newsession routine is called by consumers of cryptographic services (such as the .Xr ipsec 4 stack) that wish to establish a new session with the framework. -The second argument contains all the necessary information for +The +.Fa cri +argument points to a +.Vt cryptoini +structure containing all the necessary information for the driver to establish the session. -The third argument is either a specific driver id, or one or both -of +The +.Fa crid +argument is either a specific driver id or a bitmask of flags. +The flags are .Dv CRYPTOCAP_F_HARDWARE , to select hardware devices, or .Dv CRYPTOCAP_F_SOFTWARE , to select software devices. -If both are specified, a hardware device will be returned -before a software device will be. -On success, the value pointed to by the first argument will be the opaque -session handle. -The various fields in the +If both are specified, hardware devices are preferred over software +devices. +On success, the opaque session handle of the new session will be stored in +.Fa *cses . +The .Vt cryptoini -structure are: +structure pointed to by +.Fa cri +contains these fields: .Bl -tag -width ".Va cri_next" .It Va cri_alg -Contains an algorithm identifier. +An algorithm identifier. Currently supported algorithms are: .Pp .Bl -tag -width ".Dv CRYPTO_RIPEMD160_HMAC" -compact @@ -194,14 +209,19 @@ Currently supported algorithms are: .It Dv CRYPTO_AES_192_NIST_GMAC .It Dv CRYPTO_AES_256_NIST_GMAC .It Dv CRYPTO_AES_CBC +.It Dv CRYPTO_AES_CCM_16 +.It Dv CRYPTO_AES_CCM_CBC_MAC .It Dv CRYPTO_AES_ICM .It Dv CRYPTO_AES_NIST_GCM_16 .It Dv CRYPTO_AES_NIST_GMAC .It Dv CRYPTO_AES_XTS .It Dv CRYPTO_ARC4 +.It Dv CRYPTO_BLAKE2B +.It Dv CRYPTO_BLAKE2S .It Dv CRYPTO_BLF_CBC .It Dv CRYPTO_CAMELLIA_CBC .It Dv CRYPTO_CAST_CBC +.It Dv CRYPTO_CHACHA20 .It Dv CRYPTO_DEFLATE_COMP .It Dv CRYPTO_DES_CBC .It Dv CRYPTO_3DES_CBC @@ -210,43 +230,52 @@ Currently supported algorithms are: .It Dv CRYPTO_MD5_KPDK .It Dv CRYPTO_NULL_HMAC .It Dv CRYPTO_NULL_CBC +.It Dv CRYPTO_POLY1305 +.It Dv CRYPTO_RIPEMD160 .It Dv CRYPTO_RIPEMD160_HMAC .It Dv CRYPTO_SHA1 .It Dv CRYPTO_SHA1_HMAC .It Dv CRYPTO_SHA1_KPDK +.It Dv CRYPTO_SHA2_224 +.It Dv CRYPTO_SHA2_224_HMAC +.It Dv CRYPTO_SHA2_256 .It Dv CRYPTO_SHA2_256_HMAC +.It Dv CRYPTO_SHA2_384 .It Dv CRYPTO_SHA2_384_HMAC +.It Dv CRYPTO_SHA2_512 .It Dv CRYPTO_SHA2_512_HMAC .It Dv CRYPTO_SKIPJACK_CBC .El .It Va cri_klen -Specifies the length of the key in bits, for variable-size key -algorithms. +For variable-size key algorithms, the length of the key in bits. .It Va cri_mlen -Specifies how many bytes from the calculated hash should be copied back. -0 means entire hash. +If non-zero, truncate the calculated hash to this many bytes. .It Va cri_key -Contains the key to be used with the algorithm. +The key to be used. .It Va cri_iv -Contains an explicit initialization vector (IV), if it does not prefix +An explicit initialization vector if it does not prefix the data. This field is ignored during initialization .Pq Nm crypto_newsession . If no IV is explicitly passed (see below on details), a random IV is used by the device driver processing the request. .It Va cri_next -Contains a pointer to another +Pointer to another .Vt cryptoini structure. -Multiple such structures may be linked to establish multi-algorithm sessions -.Xr ( ipsec 4 -is an example consumer of such a feature). +This is used to establish dual-algorithm sessions, such as combining a +cipher with a MAC. .El .Pp The .Vt cryptoini -structure and its contents will not be modified by the framework (or -the drivers used). +structure and its contents will not be modified or referenced by the +framework or any cryptographic drivers. +The memory associated with +.Fa cri +can be released once +.Fn crypto_newsession +returns. .Pp .Fn crypto_freesession is called with the session handle returned by @@ -260,28 +289,22 @@ The various fields in the structure are: .Bl -tag -width ".Va crp_callback" .It Va crp_session -Contains the session handle. +The session handle. .It Va crp_ilen -Indicates the total length in bytes of the buffer to be processed. +The total length in bytes of the buffer to be processed. .It Va crp_olen On return, contains the total length of the result. For symmetric crypto operations, this will be the same as the input length. This will be used if the framework needs to allocate a new buffer for the result (or for re-formatting the input). .It Va crp_callback -This routine is invoked upon completion of the request, whether -successful or not. -It is invoked through the -.Fn crypto_done -routine. -If the request was not successful, an error code is set in the +Callback routine invoked when a request is completed via +.Fn crypto_done . +The callback routine should inspect the .Va crp_etype -field. -It is the responsibility of the callback routine to set the appropriate -.Xr spl 9 -level. +to determine if the request was successfully completed. .It Va crp_etype -Contains the error type, if any errors were encountered, or zero if +The error type, if any errors were encountered, or zero if the request was successfully processed. If the .Er EAGAIN @@ -296,8 +319,7 @@ This mechanism is used by the framework to perform session migration (move a session from one driver to another, because of availability, performance, or other considerations). .Pp -Note that this field only makes sense when examined by -the callback routine specified in +This field is only valid in the context of the callback routine specified by .Va crp_callback . Errors are returned to the invoker of .Fn crypto_process @@ -306,19 +328,17 @@ routine (i.e., if the pointer passed is .Dv NULL or if no callback routine was specified). .It Va crp_flags -Is a bitmask of flags associated with this request. +A bitmask of flags associated with this request. Currently defined flags are: .Bl -tag -width ".Dv CRYPTO_F_CBIFSYNC" .It Dv CRYPTO_F_IMBUF -The buffer pointed to by -.Va crp_buf -is an mbuf chain. +The buffer is an mbuf chain pointed to by +.Va crp_mbuf . .It Dv CRYPTO_F_IOV -The buffer pointed to by -.Va crp_buf -is an +The buffer is a .Vt uio -structure. +structure pointed to by +.Va crp_uio . .It Dv CRYPTO_F_BATCH Batch operation if possible. .It Dv CRYPTO_F_CBIMM @@ -344,18 +364,31 @@ Only relevant if the flag is set and if the operation is synchronous. .El .It Va crp_buf -Points to the input buffer. -On return (when the callback is invoked), -it contains the result of the request. -The input buffer may be an mbuf -chain or a contiguous buffer, -depending on +Data buffer unless +.Dv CRYPTO_F_IMBUF +or +.Dv CRYPTO_F_IOV +is set in .Va crp_flags . +The length in bytes is set in +.Va crp_ilen . +.It Va crp_mbuf +Data buffer mbuf chain when +.Dv CRYPTO_F_IMBUF +is set in +.Va crp_flags . +.It Va crp_uio +.Vt struct uio +data buffer when +.Dv CRYPTO_F_IOV +is set in +.Va crp_flags . .It Va crp_opaque -This is passed through the crypto framework untouched and is +Cookie passed through the crypto framework untouched. +It is intended for the invoking application's use. .It Va crp_desc -This is a linked list of descriptors. +A linked list of descriptors. Each descriptor provides information about what type of cryptographic operation should be done on the input buffer. @@ -429,9 +462,7 @@ operations the offset of the IV is provided by the field. This flag is typically used when the IV is calculated .Dq "on the fly" -by the consumer, and does not precede the data (some -.Xr ipsec 4 -configurations, and the encrypted swap are two such examples). +by the consumer, and does not precede the data. .It Dv CRD_F_KEY_EXPLICIT For encryption and authentication (MAC) algorithms, this bit is set when the key is explicitly provided by the consumer in the @@ -468,9 +499,10 @@ block of data. .Fn crypto_getreq allocates a .Vt cryptop -structure with a linked list of as many +structure with a linked list of +.Fa num .Vt cryptodesc -structures as were specified in the argument passed to it. +structures. .Pp .Fn crypto_freereq deallocates a structure @@ -500,10 +532,10 @@ This variable indicates whether lower level reasons for operation failure. .It Va krp_iparams -Number if input parameters to the specified operation. +Number of input parameters to the specified operation. Note that each operation has a (typically hardwired) number of such parameters. .It Va krp_oparams -Number if output parameters from the specified operation. +Number of output parameters from the specified operation. Note that each operation has a (typically hardwired) number of such parameters. .It Va krp_kvp An array of kernel memory blocks containing the parameters. @@ -540,7 +572,7 @@ The .Dv CRYPTOCAP_F_SYNC may also be specified, and should be specified if the driver does all of it's operations synchronously. -Drivers must pass the size of their session struct as the second argument. +Drivers must pass the size of their session structure as the second argument. An appropriately sized memory will be allocated by the framework, zeroed, and passed to the driver's .Fn newsession @@ -551,14 +583,6 @@ For each algorithm the driver supports, it must then c The first two arguments are the driver and algorithm identifiers. The next two arguments specify the largest possible operator length (in bits, important for public key operations) and flags for this algorithm. -The last four arguments must be provided in the first call to -.Fn crypto_register -and are ignored in all subsequent calls. -They are pointers to three -driver-provided functions that the framework may call to establish new -cryptographic context with the driver, free already established -context, and ask for a request to be processed (encrypt, decrypt, -etc.); and an opaque parameter to pass when calling each of these routines. .Pp .Fn crypto_unregister is called by drivers that wish to withdraw support for an algorithm. From owner-svn-src-all@freebsd.org Sat Jan 18 23:42:58 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 781EA236D0C; Sat, 18 Jan 2020 23:42:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480ZHQ2ZjBz4ZDv; Sat, 18 Jan 2020 23:42:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 53CFB1D3D; Sat, 18 Jan 2020 23:42:58 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INgwo4079941; Sat, 18 Jan 2020 23:42:58 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INgwXQ079940; Sat, 18 Jan 2020 23:42:58 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182342.00INgwXQ079940@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:42:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356872 - stable/12/share/man/man7 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/share/man/man7 X-SVN-Commit-Revision: 356872 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:42:58 -0000 Author: jhb Date: Sat Jan 18 23:42:57 2020 New Revision: 356872 URL: https://svnweb.freebsd.org/changeset/base/356872 Log: MFC 356209: Formatting fixes for tables, no content changes. - Add missing .Pp after the end of some lists so that there is a blank line before the subsequent paragraph. - Use a more typical '-tag' bullet list of the make variable descriptions at the end. This adds separation between bullets and is the formatting typically used in manpages for this sort of list. Modified: stable/12/share/man/man7/arch.7 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man7/arch.7 ============================================================================== --- stable/12/share/man/man7/arch.7 Sat Jan 18 23:30:42 2020 (r356871) +++ stable/12/share/man/man7/arch.7 Sat Jan 18 23:42:57 2020 (r356872) @@ -139,6 +139,7 @@ and .Vt void * are 8 bytes. .El +.Pp Compilers define the .Dv _LP64 symbol when compiling for an @@ -162,6 +163,7 @@ Examples are: .It Dv powerpc64 Ta Dv powerpc .It Dv mips64* Ta Dv mips* .El +.Pp .Dv aarch64 currently does not support execution of .Dv armv6 @@ -181,6 +183,7 @@ On all supported architectures: .It float Ta 4 .It double Ta 8 .El +.Pp Integers are represented in two's complement. Alignment of integer and pointer types is natural, that is, the address of the variable must be congruent to zero modulo the type size. @@ -396,8 +399,9 @@ Most of the externally settable variables are defined man page. These variables are not otherwise documented and are used extensively in the build system. -.Bl -column -offset indent "Sy Variable" "Sy Meaning and usage" -.It Dv MACHINE Represent the hardware platform. +.Bl -tag -width "MACHINE_CPUARCH" +.It Dv MACHINE +Represent the hardware platform. This is the same as the native platform's .Xr uname 1 .Fl m @@ -432,7 +436,8 @@ Generally, .Dv MACHINE should only be used in src/sys and src/stand or in system imagers or installers. -.It Dv MACHINE_ARCH Represents the CPU processor architecture. +.It Dv MACHINE_ARCH +Represents the CPU processor architecture. This is the same as the native platforms .Xr uname 1 .Fl p @@ -463,7 +468,8 @@ It is unfortunate that amd64 specifies the 64-bit evol platform (it matches the 'first rule') as everybody else uses x86_64. There is no standard name for the processor: each OS selects its own conventions. -.It Dv MACHINE_CPUARCH Represents the source location for a given +.It Dv MACHINE_CPUARCH +Represents the source location for a given .Dv MACHINE_ARCH . For example, .Dv MACHINE_CPUARCH @@ -475,25 +481,29 @@ The FreeBSD source base supports amd64 and i386 with t distinct source bases living in subdirectories named amd64 and i386 (though behind the scenes there's some sharing that fits into this framework). -.It Dv CPUTYPE Sets the flavor of +.It Dv CPUTYPE +Sets the flavor of .Dv MACHINE_ARCH to build. It is used to optimize the build for a specific CPU / core that the binaries run on. Generally, this does not change the ABI, though it can be a fine line between optimization for specific cases. -.It Dv TARGET Used to set +.It Dv TARGET +Used to set .Dv MACHINE in the top level Makefile for cross building. Unused outside of that scope. It is not passed down to the rest of the build. Makefiles outside of the top level should not use it at all (though some have their own private copy for hysterical raisons). -.It Dv TARGET_ARCH Used to set +.It Dv TARGET_ARCH +Used to set .Dv MACHINE_ARCH by the top level Makefile for cross building. Like -.Dv TARGET , it is unused outside of that scope. +.Dv TARGET , +it is unused outside of that scope. .El .Sh SEE ALSO .Xr src.conf 5 , From owner-svn-src-all@freebsd.org Sat Jan 18 23:43:36 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id B6142236D78; Sat, 18 Jan 2020 23:43:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480ZJ84Qdzz4ZLr; Sat, 18 Jan 2020 23:43:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9311C1D3F; Sat, 18 Jan 2020 23:43:36 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INhaPM080017; Sat, 18 Jan 2020 23:43:36 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INha4e080016; Sat, 18 Jan 2020 23:43:36 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182343.00INha4e080016@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:43:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356873 - stable/11/share/man/man7 X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/11/share/man/man7 X-SVN-Commit-Revision: 356873 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:43:36 -0000 Author: jhb Date: Sat Jan 18 23:43:36 2020 New Revision: 356873 URL: https://svnweb.freebsd.org/changeset/base/356873 Log: MFC 356209: Formatting fixes for tables, no content changes. - Add missing .Pp after the end of some lists so that there is a blank line before the subsequent paragraph. Modified: stable/11/share/man/man7/arch.7 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man7/arch.7 ============================================================================== --- stable/11/share/man/man7/arch.7 Sat Jan 18 23:42:57 2020 (r356872) +++ stable/11/share/man/man7/arch.7 Sat Jan 18 23:43:36 2020 (r356873) @@ -138,6 +138,7 @@ and .Vt void * are 8 bytes. .El +.Pp Compilers define the .Dv _LP64 symbol when compiling for an @@ -161,6 +162,7 @@ Examples are: .It Dv powerpc64 Ta Dv powerpc .It Dv mips64* Ta Dv mips* .El +.Pp .Dv aarch64 currently does not support execution of .Dv armv6 @@ -178,6 +180,7 @@ On all supported architectures: .It float Ta 4 .It double Ta 8 .El +.Pp Integers are represented in two's complement. Alignment of integer and pointer types is natural, that is, the address of the variable must be congruent to zero modulo the type size. From owner-svn-src-all@freebsd.org Sat Jan 18 23:46:30 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D38ED237156; Sat, 18 Jan 2020 23:46:30 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480ZMV5DD3z4ZTY; Sat, 18 Jan 2020 23:46:30 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A9AB31D40; Sat, 18 Jan 2020 23:46:30 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INkUWR080258; Sat, 18 Jan 2020 23:46:30 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INkULd080257; Sat, 18 Jan 2020 23:46:30 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182346.00INkULd080257@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:46:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r356874 - stable/12/share/man/man7 X-SVN-Group: stable-12 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/12/share/man/man7 X-SVN-Commit-Revision: 356874 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:46:30 -0000 Author: jhb Date: Sat Jan 18 23:46:30 2020 New Revision: 356874 URL: https://svnweb.freebsd.org/changeset/base/356874 Log: MFC 356274: Some minor tweaks to arch(7). - Drop mention of _LP64. FreeBSD's source generally uses __LP64__ instead of _LP64, and the relevant macros are better covered in the "Predefined Macros" section. - Fix a noun/verb disagreement. Modified: stable/12/share/man/man7/arch.7 Directory Properties: stable/12/ (props changed) Modified: stable/12/share/man/man7/arch.7 ============================================================================== --- stable/12/share/man/man7/arch.7 Sat Jan 18 23:43:36 2020 (r356873) +++ stable/12/share/man/man7/arch.7 Sat Jan 18 23:46:30 2020 (r356874) @@ -140,12 +140,6 @@ and are 8 bytes. .El .Pp -Compilers define the -.Dv _LP64 -symbol when compiling for an -.Dv LP64 -ABI. -.Pp Some machines support more than one .Fx ABI. @@ -401,7 +395,7 @@ These variables are not otherwise documented and are u in the build system. .Bl -tag -width "MACHINE_CPUARCH" .It Dv MACHINE -Represent the hardware platform. +Represents the hardware platform. This is the same as the native platform's .Xr uname 1 .Fl m From owner-svn-src-all@freebsd.org Sat Jan 18 23:46:50 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id C02F32371AC; Sat, 18 Jan 2020 23:46:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 480ZMt4fmdz4ZbF; Sat, 18 Jan 2020 23:46:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9B3861D41; Sat, 18 Jan 2020 23:46:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 00INkohM080314; Sat, 18 Jan 2020 23:46:50 GMT (envelope-from jhb@FreeBSD.org) Received: (from jhb@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 00INkobT080313; Sat, 18 Jan 2020 23:46:50 GMT (envelope-from jhb@FreeBSD.org) Message-Id: <202001182346.00INkobT080313@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jhb set sender to jhb@FreeBSD.org using -f From: John Baldwin Date: Sat, 18 Jan 2020 23:46:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org Subject: svn commit: r356875 - stable/11/share/man/man7 X-SVN-Group: stable-11 X-SVN-Commit-Author: jhb X-SVN-Commit-Paths: stable/11/share/man/man7 X-SVN-Commit-Revision: 356875 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 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: Sat, 18 Jan 2020 23:46:50 -0000 Author: jhb Date: Sat Jan 18 23:46:50 2020 New Revision: 356875 URL: https://svnweb.freebsd.org/changeset/base/356875 Log: MFC 356274: Some minor tweaks to arch(7). - Drop mention of _LP64. FreeBSD's source generally uses __LP64__ instead of _LP64, and the relevant macros are better covered in the "Predefined Macros" section. Modified: stable/11/share/man/man7/arch.7 Directory Properties: stable/11/ (props changed) Modified: stable/11/share/man/man7/arch.7 ============================================================================== --- stable/11/share/man/man7/arch.7 Sat Jan 18 23:46:30 2020 (r356874) +++ stable/11/share/man/man7/arch.7 Sat Jan 18 23:46:50 2020 (r356875) @@ -139,12 +139,6 @@ and are 8 bytes. .El .Pp -Compilers define the -.Dv _LP64 -symbol when compiling for an -.Dv LP64 -ABI. -.Pp Some machines support more that one .Fx ABI.